modelos

inclusionAI: Ling 3.1 Flash

Markdown · JSON

inclusionAI: Ling 3.1 Flash

Ling 3.1 Flash é o modelo de raciocínio híbrido da inclusionAI para trabalho de escritório, desenvolvimento de software prolongado e agentes complexos. A sua arquitetura esparsa de 560 mil milhões de parâmetros ativa cerca de 25 mil milhões por token, suportando planeamento em vários passos, interação com ferramentas e revisões a partir de resultados intermédios.

Sobre o modelo

Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.

Ling 3.1 Flash é o modelo de linguagem de raciocínio híbrido da inclusionAI para tarefas que envolvem várias etapas, em vez de uma única resposta curta. O fabricante posiciona-o para trabalho de escritório quotidiano, engenharia de software prolongada e fluxos de trabalho de agentes complexos. Utiliza uma arquitetura de mistura de especialistas com aproximadamente 560 mil milhões de parâmetros totais e cerca de 25 mil milhões ativos por token, equilibrando uma grande capacidade de modelo com uma quantidade menor de computação ativa.

O seu principal objetivo de conceção é manter o estado da tarefa e corrigir o rumo de trabalhos mais longos. Num fluxo de trabalho ligado a ferramentas, o modelo pode planear vários passos, interpretar resultados intermédios e rever o passo seguinte quando as evidências mudam. Forneça um objetivo preciso, os materiais disponíveis e uma definição de conclusão. Por exemplo: «Reveja estas notas de incidente, identifique as causas por resolver e produza um plano de investigação por ordem de prioridade. Para cada ação, indique as evidências necessárias para decidir se funcionou.» Isto transforma um pedido vago num resultado que pode ser examinado e continuado.

Para trabalho de escritório, as entradas úteis incluem notas de origem, texto extraído de documentos, tabelas com definições claras das colunas e o público a que se destina um relatório. Indique o período, as unidades e a comparação a utilizar. Peça um documento escrito, como uma síntese para a gestão, uma estrutura de relatório ou uma explicação das alterações importantes. Um exemplo é: «Utilizando apenas estas tabelas trimestrais, explique as maiores alterações, distinga os valores observados dos pressupostos e redija uma síntese com as perguntas sem resposta no fim.» Mantenha as identificações das fontes na entrada para permitir associar as afirmações resultantes ao material correto.

Para desenvolvimento de software, o fabricante destaca refatorização entre linguagens, otimização de desempenho e análise de áreas de utilização frequente de uma base de código. Forneça os ficheiros relevantes em texto, o comportamento a preservar, as versões das dependências e quaisquer resultados com falhas ou medições. Um pedido útil solicita uma alteração proposta e as verificações necessárias para a avaliar: «Refatore este analisador, preservando o formato de saída documentado. Explique o comportamento afetado, apresente o código revisto e identifique casos que revelariam uma regressão.» Para trabalho de desempenho, forneça perfis ou tempos efetivos e peça que cada recomendação seja ligada a um estrangulamento medido.

Para análise profissional, reúna as regras, definições e evidências relevantes antes de pedir uma recomendação. Ling 3.1 Flash destina-se a sintetizar informação dispersa, interpretar indicadores e desenvolver sugestões de ação. Peça uma comparação que explicite os pressupostos e as informações ainda necessárias, em vez de um veredicto sem fundamento. Por exemplo, forneça várias propostas de projeto e peça um memorando de decisão que aplique os mesmos critérios a cada uma, distinguindo observações sustentadas nas fontes de consequências inferidas. Quando as evidências forem contraditórias, peça as passagens em conflito e a pergunta que permitiria resolvê-lo.

O fabricante distingue um limite de contexto do modelo de 1M de tokens do contexto de 256K atualmente disponibilizado pelo seu serviço oficial. Estes valores descrevem limites diferentes. Organize o material de trabalho em função da janela aplicável e reserve espaço para a resposta; um limite ao nível do modelo não significa que todas as interfaces aceitem esse volume de entrada. Para uma tarefa extensa, mantenha juntos o objetivo, as decisões concluídas, as perguntas por resolver e as referências às fontes. Delimite explicitamente documentos e código para que o material a analisar não seja confundido com instruções a seguir.

Prepare tarefas ligadas a ferramentas com descrições claras das ferramentas, argumentos esperados e registos úteis dos resultados. Devolva os resultados efetivos à conversa para que a proposta seguinte se baseie em observações. Peça ao modelo que explique o que um resultado devolvido altera e quais as evidências ainda em falta. A conceção do modelo orientada para agentes suporta este padrão de planeamento e feedback; a aplicação envolvente executa os passos das ferramentas e preserva os resultados. Uma proposta de comando, alteração de código ou relatório é mais útil quando o seu estado é claro: sugerido, executado com um resultado registado ou ainda por verificar.

Ling 3.1 Flash pertence à linha de modelos de linguagem; a edição separada Ling 3.0 Flash VL é o modelo visual do fabricante. Para esta tarefa de texto, prepare conteúdo de origem textual e preserve a sua estrutura, identificações e proveniência. Especifique o idioma e a forma da saída, como um memorando conciso, uma tabela de conclusões, uma explicação de alteração ou um plano numerado. Peça ao modelo que assinale informações em falta e confira o documento solicitado com as restrições originais. Fluxos de trabalho longos continuam a exigir inspeção dos resultados intermédios: caso contrário, um pressuposto inicial errado pode transitar para raciocínios posteriores e ser aperfeiçoado até se tornar num relatório final convincente.

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions inclusionai/ling-3.1-flash

inclusionai/ling-3.1-flash

inclusionAI /inclusionai/ling-3.1-flash

Introdução

Ling 3.1 Flash é o modelo de raciocínio híbrido da inclusionAI para trabalho de escritório, desenvolvimento de software prolongado e agentes complexos. A sua arquitetura esparsa de 560 mil milhões de parâmetros ativa cerca de 25 mil milhões por token, suportando planeamento em vários passos, interação com ferramentas e revisões a partir de resultados intermédios.

Entradas aceites
Texto
Resultados
Texto

Disponível no Ailoot · entradas e métodos

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Entrada
text
Saída
text
Formato de saída
json ou SSE
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
inclusionai/ling-3.1-flash
Predefinição—
CampomessagesTipomessage[]RequisitoObrigatórioValores e limites
Número mínimo de elementos: 1
Predefinição—
Campomessages[].roleTipostringRequisitoObrigatórioValores e limites
Depende do modelo
Predefinição—
Campomessages[].contentTipostringRequisitoOpcionalValores e limites
Aplica-se quando: Conversação textual
Predefinição—
CampostreamTipobooleanRequisitoOpcionalValores e limitesPredefiniçãofalse
Combinações de materiais de entrada

Texto · Texto UTF8

messages[].content

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratomodel, messages
Parâmetromaterial_typesContratotext
ParâmetromessagesContratoLista de mensagens com estrutura role/content
Parâmetrofile_materialContratoDocumento UTF-8 real inserido como texto literal; nenhum ID de ficheiro inferido
Parâmetrooptional_controlsContratostream
Parâmetrocontrol_scopeContratoConversação textual; stream é um booleano e tem false como predefinição.
Parâmetrooutput_modalitiesContratotext
Parâmetrohosted_operationsContratofalse
Parâmetromultimodal_input_bindingContratonull

Aliases do método: /chat/completions

Ciclo de vida: synchronous_or_streamed

Envie o ID exato do modelo com messages.

O comprimento do contexto não é um limite de saída.

Um ficheiro de texto pode fornecer texto literal; as entradas de imagem/áudio/objeto de ficheiro exigem uma associação exata.

Tarifários

As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.

Modo rápido
Não especificado Quando o modo rápido está selecionado
Modo flex
Não especificado Quando o modo flex está selecionado
Esforço máximo de raciocínio
Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

Tarifas Ailoot

Preços por configuração

Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.

ConfiguraçãoTabela de tarifasTokens de contexto, mais deTokens de contexto, até ao limite inclusiveCusto
ConfiguraçãoTarifas base dos tokensTabela de tarifasTarifa baseTokens de contexto, mais de—Tokens de contexto, até ao limite inclusiveSem limite superiorCusto
Entrada · Tokens de entrada $0.0006 / 1K tokens
Saída · Tokens de saída $0.0018 / 1K tokens
Entrada · Leitura da cache $0.00012 / 1K tokens
Entrada · Escrita na cache — / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens
ConfiguraçãoEscalão 1 por comprimento do pedidoTabela de tarifas—Tokens de contexto, mais de0Tokens de contexto, até ao limite inclusiveSem limite superiorCusto
Entrada · Tokens de entrada $0.0006 / 1K tokens
Saída · Tokens de saída $0.0018 / 1K tokens
Entrada · Leitura da cache $0.00012 / 1K tokens
Entrada · Escrita na cache — / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot Ultra · OpenAI Chat

curlPython SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"inclusionai/ling-3.1-flash","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="inclusionai/ling-3.1-flash", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))

Receber e guardar os resultados

Ailoot Ultra · OpenAI Chat

json ou SSE

Guardar todos os resultados concluídos

Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.

Conserve cada opção com o conteúdo, as chamadas de ferramentas e o raciocínio. Em SSE, junte os deltas por índice de opção e ferramenta e mantenha o motivo final de conclusão e os dados de utilização.

Se for necessário verificar a resposta original

Conserve os ID e cabeçalhos de pedido/resposta. Não é fornecido um URL genérico para obter uma tarefa textual.

Campos da resposta
CampoTipo
Campochoices[].indexTipointeger
Campochoices[].message.contentTipostring|null
Campochoices[].message.tool_callsTipotool_call[]
Campochoices[].message.reasoning_contentTipostring
Campochoices[].message.reasoning_detailsTipoobject|array
Campochoices[].finish_reasonTipostring|null
CampousageTipoobject
Erros e passos seguintes
RespostaCondiçãoPasso seguinte
Resposta400 · invalid_request_errorCondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidosPasso seguinteCorrija os campos indicados antes de um novo pedido de criação.

Aliases

Aliases do modelo

Ailoot Ultra inclusionai/ling-3.1-flash

Aliases dos caminhos dos métodos

/chat/completions

IDs de chamada relacionados

inclusionai/ling-3.1-flash

Ailoot Ultra · Anthropic Messages POST /v1/messages inclusionai/ling-3.1-flash

inclusionai/ling-3.1-flash

inclusionAI /inclusionai/ling-3.1-flash

Introdução

Ling 3.1 Flash é o modelo de raciocínio híbrido da inclusionAI para trabalho de escritório, desenvolvimento de software prolongado e agentes complexos. A sua arquitetura esparsa de 560 mil milhões de parâmetros ativa cerca de 25 mil milhões por token, suportando planeamento em vários passos, interação com ferramentas e revisões a partir de resultados intermédios.

Entradas aceites
Texto
Resultados
json · sse

Disponível no Ailoot · entradas e métodos

Ailoot Ultra · Anthropic Messages POST /v1/messages
Entrada
text
Saída
json, sse
Formato de saída
JSON ou SSE
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
inclusionai/ling-3.1-flash
Predefinição—
CampomessagesTipomessage[]RequisitoObrigatórioValores e limitesPredefinição—
Campomessages[].roleTipostringRequisitoObrigatórioValores e limites
user, assistant
Predefinição—
Campomessages[].contentTipostringRequisitoObrigatórioValores e limitesPredefinição—
Campomax_tokensTipointegerRequisitoObrigatórioValores e limitesPredefinição—
CampostreamTipobooleanRequisitoOpcionalValores e limitesPredefiniçãofalse
Combinações de materiais de entrada

Texto · Texto UTF-8

Cadeia de caracteres messages[].content

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratomodel, messages, max_tokens
Parâmetrooptional_controlsContratostream
Parâmetromaterial_typesContratotext
Parâmetrotext_file_materialContratoLeia o documento UTF-8 real e coloque o texto na entrada indicada ou na cadeia de conteúdo da mensagem.

Ciclo de vida: synchronous_or_streamed

Tarifários

As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.

Modo rápido
Não especificado Quando o modo rápido está selecionado
Modo flex
Não especificado Quando o modo flex está selecionado
Esforço máximo de raciocínio
Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

Tarifas Ailoot

Preços por configuração

Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.

ConfiguraçãoTabela de tarifasTokens de contexto, mais deTokens de contexto, até ao limite inclusiveCusto
ConfiguraçãoTarifas base dos tokensTabela de tarifasTarifa baseTokens de contexto, mais de—Tokens de contexto, até ao limite inclusiveSem limite superiorCusto
Entrada · Tokens de entrada $0.0006 / 1K tokens
Saída · Tokens de saída $0.0018 / 1K tokens
Entrada · Leitura da cache $0.00012 / 1K tokens
Entrada · Escrita na cache — / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens
ConfiguraçãoEscalão 1 por comprimento do pedidoTabela de tarifas—Tokens de contexto, mais de0Tokens de contexto, até ao limite inclusiveSem limite superiorCusto
Entrada · Tokens de entrada $0.0006 / 1K tokens
Saída · Tokens de saída $0.0018 / 1K tokens
Entrada · Leitura da cache $0.00012 / 1K tokens
Entrada · Escrita na cache — / 1K tokens
Entrada · Escrita na cache, 1 hora — / 1K tokens

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot Ultra · Anthropic Messages

Corpo JSON mínimo completocurl · use o seu documento UTF-8Python · guarde o resultado completo
{
  "model": "inclusionai/ling-3.1-flash",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'inclusionai/ling-3.1-flash', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'inclusionai/ling-3.1-flash', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Receber e guardar os resultados

Ailoot Ultra · Anthropic Messages

JSON ou SSE

Guardar todos os resultados concluídos

Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.

Conserve todos os blocos de conteúdo, as assinaturas de raciocínio e os ID reais de utilização de ferramentas. Junte todos os deltas de blocos SSE; o primeiro bloco de texto não é a saída completa.

Se for necessário verificar a resposta original

Conserve os ID e cabeçalhos de pedido/resposta. Não é fornecido um URL genérico para obter uma tarefa textual.

Campos da resposta
CampoTipo
CampoidTipostring
CampomodelTipostring
Campocontent[]Tipotext|thinking|tool_use|other content block
Campostop_reasonTipostring|null
CampousageTipoobject
Erros e passos seguintes
RespostaCondiçãoPasso seguinte
Resposta400 · invalid_request_errorCondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidosPasso seguinteCorrija os campos indicados antes de um novo pedido de criação.

Aliases

Aliases do modelo

Ailoot Ultra inclusionai/ling-3.1-flash

Aliases dos caminhos dos métodos

/chat/completions

IDs de chamada relacionados

inclusionai/ling-3.1-flash

FAQ · inclusionAI: Ling 3.1 Flash
Que entradas e resultados estão disponíveis?

POST /v1/chat/completions · inclusionai/ling-3.1-flash: text → text

POST /v1/messages · inclusionai/ling-3.1-flash: text → json, sse

Que campos utiliza o pedido?

POST /v1/chat/completions · inclusionai/ling-3.1-flash: model, messages, stream

POST /v1/messages · inclusionai/ling-3.1-flash: model, messages, max_tokens, stream

Que limites se aplicam?

POST /v1/chat/completions · inclusionai/ling-3.1-flash: messages.min_items: 1

Mais detalhes

Ligue o Ailoot ao Claude Code, OpenCode, Hermes ou à sua aplicação.

A empresa e a sua carteira de projetos

A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.

Compre tokens com desconto.

Desconto por subscrição para trabalho regular. Códigos promocionais — até 50% na compra de tokens.

Subscrição
Escolha um plano com desconto para os pedidos regulares.
Código promocional até 50%
Introduza o código na compra. O preço é recalculado conforme a campanha em vigor.
Custos no histórico
O modelo, os tokens e o montante são guardados para cada pedido.

Escolher subscrição · Ver preços dos modelos

Ligue a API ao produto que vende.

SaaS, aplicações e bots — ao abrigo da oferta e do contrato de licença Ailoot. Para revenda, peça uma licença de revendedor.

Aplicação comercial
Integre geração de texto, imagens, vídeo e som nas funcionalidades pagas do seu serviço.
Licença de revendedor
Envie uma descrição do projeto e do modelo de acesso. Peça condições escritas de utilização e revenda.
Documentos no site
A oferta, o contrato de licença e a política de tratamento de dados estão disponíveis antes da ligação.

Pedir licença de revendedor · Oferta e contrato de licença