Cohere: Command A+
Command A+ é o modelo de raciocínio multimodal da Cohere para agentes empresariais, com entrada de texto e imagem e saída de texto em 48 idiomas. Combina citações, utilização de ferramentas e saídas estruturadas com um contexto de 128 000 tokens e um limite documentado de saída de 64 000 tokens.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionscohere/command-a-plus - Ailoot Ultra · Anthropic Messages
POST /v1/messagescohere/command-a-plus
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.
Command A+ é o modelo de raciocínio multimodal da Cohere de maio de 2026 para tarefas empresariais complexas. Combina entrada de texto e imagem com saída de texto e suporta 48 idiomas, incluindo todos os idiomas oficiais da União Europeia. O fabricante posiciona-o para agentes multilingues que analisam elementos de prova, resolvem um problema e utilizam ferramentas fornecidas por uma aplicação. É uma edição separada do Command A anterior, exclusivamente textual, e dos modelos especializados Vision e Reasoning.
Propriedades do modelo e dimensão da tarefa
A Cohere descreve uma arquitetura de mistura esparsa de especialistas com 218 mil milhões de parâmetros no total e 25 mil milhões de parâmetros ativos. O perfil publicado tem um contexto de 128 000 tokens e uma saída máxima de 64 000 tokens. A data indicada de corte do conhecimento é 1 de abril de 2025. O material de origem, a conversa e o resultado gerado têm de caber no orçamento aplicável ao pedido; forneça informação atual ou uma ferramenta adequada quando a tarefa depender de informação posterior ao conhecimento de treino.
Raciocínio e trabalho multilingue
O fluxo de trabalho de raciocínio híbrido do fabricante pode ativar o raciocínio antes da resposta textual final ou desativá-lo para respostas diretas. Um orçamento de raciocínio controla o processo intermédio, enquanto a resposta continua a precisar de espaço para comunicar o resultado. Defina a resposta de forma independente: um memorando de decisão, uma comparação, uma explicação traduzida ou um registo estruturado. Numa tarefa multilingue, especifique o idioma de saída e os nomes próprios, identificadores de campos e citações que devem manter a forma original.
Uma instrução ilustrativa é: «Compare estas passagens de políticas, explique a diferença operacional no idioma pedido e identifique a frase de origem que sustenta cada conclusão.» Isto combina compreensão multilingue com raciocínio sobre os elementos reais, em vez de pedir uma descrição de uma política sem fundamento.
Imagens e elementos documentais
O guia de imagem da Cohere abrange gráficos, diagramas, tabelas em imagens, reconhecimento de documentos e perguntas fundamentadas em imagens. Prepare páginas legíveis e preserve cabeçalhos, unidades e identificações dos eixos. Quando um pormenor for pequeno, amplie-o sem perder o contexto envolvente e utilize a opção documentada de detalhe de imagem adequada à tarefa. O fabricante observa que o desempenho visual pode variar em sistemas de escrita não latinos.
O fluxo de trabalho de imagem documentado aceita PNG, JPEG, WEBP e GIF não animado, até 20 imagens ou 20 MB no total por pedido, consoante o limite atingido primeiro. Estes são limites do fluxo de trabalho do fabricante. Para extração, peça os campos específicos e uma referência à imagem de origem; para análise de gráficos, peça os valores visíveis separadamente da interpretação. O modelo devolve texto, pelo que gerar ou editar uma imagem é uma tarefa de saída diferente.
Citações, ferramentas e resultados estruturados
Command A+ inclui citações, utilização de ferramentas, saídas estruturadas e modos de segurança entre as suas capacidades. Atribua identificadores significativos aos documentos e forneça funções de ferramentas com descrições e esquemas de argumentos. O modelo pode selecionar uma operação, a aplicação executa-a e devolve o resultado, e a resposta seguinte pode utilizar esses elementos. Uma fonte de recuperação, uma ação proposta por um modelo e um resultado executado devem continuar distinguíveis no registo da tarefa.
Num resultado estruturado, defina cada campo e o tratamento esperado dos dados em falta. Reveja o conteúdo face às respetivas fontes mesmo quando o formato for válido. Uma entrega final útil contém a resposta pedida, os elementos que a sustentam e qualquer informação por resolver que afete a conclusão. Assim, as capacidades multimodais e de raciocínio do modelo mantêm-se ligadas a uma tarefa empresarial concreta, sem atribuir a esta edição o perfil do Command A anterior.
Tarefa prática
Tarefa prática
Exemplo técnico em inglês
Reconcile multilingual delivery notes
Compare these delivery notes: EN-1: 'Send eight replacement handles; keep order A17 open until they arrive.' FR-1: 'Envoyer huit poignees de remplacement; ne pas fermer la commande A17 avant leur reception.' Write an English operations handoff with quantity, item, order ID and closure condition. State whether the two supplied notes disagree.Resultado esperado
An English handoff with four operational fields and an evidence-based agreement check.Verificar o resultado
Keep A17 unchanged and preserve the condition that arrival precedes closure.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions cohere/command-a-plus
cohere/command-a-plusIntrodução
Command A+ é o modelo de raciocínio multimodal da Cohere para agentes empresariais, com entrada de texto e imagem e saída de texto em 48 idiomas. Combina citações, utilização de ferramentas e saídas estruturadas com um contexto de 128 000 tokens e um limite documentado de saída de 64 000 tokens.
- 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
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites cohere/command-a-plus | Predefinição— |
Campomessages | Tipomessage[] | RequisitoObrigatório | Valores e limites Número mínimo de elementos: 1 | Predefinição— |
Campomessages[].role | Tipostring | RequisitoObrigatório | Valores e limites Exemplos: system, user, assistant, tool, function Condições: Estes papéis são representados explicitamente pelos tipos de compatibilidade do código-fonte; o conjunto exato de papéis continua específico do modelo. Depende do modelo | Predefinição— |
Campomessages[].content | Tipostring|content_part[]|null | RequisitoOpcional | Valores e limites | Predefinição— |
Campomessages[].tool_calls | Tipotool_call[] | RequisitoOpcional | Valores e limites | Predefinição— |
Campomessages[].tool_call_id | Tipostring | RequisitoOpcional | Valores e limites Aplica-se quando: role=tool; use o ID realmente devolvido | Predefinição— |
Campomessages[].name | Tipostring | RequisitoOpcional | Valores e limites | Predefinição— |
Campomessages[].reasoning_content | Tipostring | RequisitoOpcional | Valores e limites Aplica-se quando: Reintroduza o raciocínio realmente devolvido quando este modelo o utiliza | Predefinição— |
Campomessages[].reasoning_details | Tipoobject|array | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campomax_tokens | Tipointeger | RequisitoOpcional | Valores e limites Mínimo: 1 Depende do modelo | Predefinição— |
Campomax_completion_tokens | Tipointeger | RequisitoOpcional | Valores e limites Mínimo: 1 Depende do modelo | Predefinição— |
Campostream | Tipoboolean | RequisitoOpcional | Valores e limites | Predefiniçãofalse |
Campostream_options.include_usage | Tipoboolean | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotemperature | Tiponumber | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotop_p | Tiponumber | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campostop | Tipostring|string[] | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotools | Tipofunction_tool[] | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotools[].type | Tipostring | RequisitoOpcional | Valores e limites function Depende do modelo | Predefinição— |
Campotools[].function.name | Tipostring | RequisitoObrigatório | Valores e limites Aplica-se quando: Função fornecida como ferramenta | Predefinição— |
Campotools[].function.description | Tipostring | RequisitoOpcional | Valores e limites | Predefinição— |
Campotools[].function.parameters | TipoJSON_schema | RequisitoOpcional | Valores e limites | Predefinição— |
Campotool_choice | Tipostring|object | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campoparallel_tool_calls | Tipoboolean | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camporesponse_format | Tipoobject | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camporeasoning_effort | Tipostring | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camporeasoning | Tipoobject | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camposervice_tier | Tipostring | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campoinstructions | Tipostring | RequisitoOpcional | Valores e limites Campo de compatibilidade | Predefinição— |
Campofunctions | Tipofunction[] | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campofunction_call | Tipostring|object | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campoprompt_cache_options | Tipoobject | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campomodalities | Tipostring[] | RequisitoOpcional | Valores e limites text | Predefinição— |
Campoprovider | Tipoobject | RequisitoOpcional | Valores e limites Condições: provider.options é rejeitado nesta rota textual Ultra | Predefinição— |
Campocache_control.ttl | Tipostring | RequisitoOpcional | Valores e limites Condições: 1h é rejeitado nos locais efetivos da cache de prompts | Predefinição— |
Combinações de materiais de entrada
Texto · Texto UTF8
messages[].content
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, messages |
Parâmetromaterial_types | Contratotext |
Parâmetromessages | ContratoLista de mensagens com estrutura role/content |
Parâmetrofile_material | ContratoDocumento UTF-8 real inserido como texto literal; nenhum ID de ficheiro inferido |
Parâmetrooptional_controls | Contratostream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parâmetrocontrol_scope | ContratoEspecífico do modelo; as ferramentas de funções do utilizador diferem das ferramentas alojadas |
Parâmetrooutput_modalities | Contratotext |
Parâmetrohosted_operations | Contratofalse |
Parâmetromultimodal_input_binding | Contratonull |
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
- Tarifa normal Quando o modo rápido está selecionado
- Modo flex
- Tarifa normal Quando o modo flex está selecionado
- Esforço máximo de raciocínio
- Tarifa normal 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ção | Tabela de tarifas | Tokens de contexto, mais de | Tokens de contexto, até ao limite inclusive | Custo |
|---|---|---|---|---|
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Tokens de contexto, mais de— | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.0006 / 1K tokens Saída · Tokens de saída $0.003 / 1K tokens Entrada · Leitura da cache $0.0003 / 1K tokens Entrada · Escrita na cache — / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
| ConfiguraçãoEscalão 1 por comprimento do pedido | Tabela de tarifas— | Tokens de contexto, mais de0 | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.0006 / 1K tokens Saída · Tokens de saída $0.003 / 1K tokens Entrada · Leitura da cache $0.0003 / 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
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "cohere/command-a-plus", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')
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='cohere/command-a-plus',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
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"))
from openai import OpenAI
import os
from pathlib import Path
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)
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))
with client.chat.completions.stream(model='cohere/command-a-plus',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
for event in stream:
payload=event.to_dict(mode="json")
log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
print(json.dumps(payload,ensure_ascii=False))
final=stream.get_final_completion()
save_result(final.to_dict(mode="json"),"stream-result")
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
| Campo | Tipo |
|---|---|
Campochoices[].index | Tipointeger |
Campochoices[].message.content | Tipostring|null |
Campochoices[].message.tool_calls | Tipotool_call[] |
Campochoices[].message.reasoning_content | Tipostring |
Campochoices[].message.reasoning_details | Tipoobject|array |
Campochoices[].finish_reason | Tipostring|null |
Campousage | Tipoobject |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidos | Passo seguinteCorrija os campos indicados antes de um novo pedido de criação. |
Aliases
Aliases do modelo
Ailoot Ultra cohere/command-a-plus
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
Ailoot Ultra · Anthropic Messages POST /v1/messages cohere/command-a-plus
cohere/command-a-plusIntrodução
Command A+ é o modelo de raciocínio multimodal da Cohere para agentes empresariais, com entrada de texto e imagem e saída de texto em 48 idiomas. Combina citações, utilização de ferramentas e saídas estruturadas com um contexto de 128 000 tokens e um limite documentado de saída de 64 000 tokens.
- 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
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites cohere/command-a-plus | Predefinição— |
Campomessages | Tipomessage[] | RequisitoObrigatório | Valores e limites | Predefinição— |
Campomessages[].role | Tipostring | RequisitoObrigatório | Valores e limites user, assistant | Predefinição— |
Campomessages[].content | Tipostring | RequisitoObrigatório | Valores e limites | Predefinição— |
Campomax_tokens | Tipointeger | RequisitoObrigatório | Valores e limites | Predefinição— |
Campostream | Tipoboolean | RequisitoOpcional | Valores e limites | Predefiniçã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âmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, messages, max_tokens |
Parâmetrooptional_controls | Contratostream |
Parâmetromaterial_types | Contratotext |
Parâmetrotext_file_material | ContratoLeia 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
- Tarifa normal Quando o modo rápido está selecionado
- Modo flex
- Tarifa normal Quando o modo flex está selecionado
- Esforço máximo de raciocínio
- Tarifa normal 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ção | Tabela de tarifas | Tokens de contexto, mais de | Tokens de contexto, até ao limite inclusive | Custo |
|---|---|---|---|---|
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Tokens de contexto, mais de— | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.0006 / 1K tokens Saída · Tokens de saída $0.003 / 1K tokens Entrada · Leitura da cache $0.0003 / 1K tokens Entrada · Escrita na cache — / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
| ConfiguraçãoEscalão 1 por comprimento do pedido | Tabela de tarifas— | Tokens de contexto, mais de0 | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.0006 / 1K tokens Saída · Tokens de saída $0.003 / 1K tokens Entrada · Leitura da cache $0.0003 / 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
{
"model": "cohere/command-a-plus",
"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': 'cohere/command-a-plus', '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': 'cohere/command-a-plus', '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
| Campo | Tipo |
|---|---|
Campoid | Tipostring |
Campomodel | Tipostring |
Campocontent[] | Tipotext|thinking|tool_use|other content block |
Campostop_reason | Tipostring|null |
Campousage | Tipoobject |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidos | Passo seguinteCorrija os campos indicados antes de um novo pedido de criação. |
Aliases
Aliases do modelo
Ailoot Ultra cohere/command-a-plus
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · Cohere: Command A+
- Que entradas e resultados estão disponíveis?
POST /v1/chat/completions·cohere/command-a-plus:text→textPOST /v1/messages·cohere/command-a-plus:text→json,sse- Que campos utiliza o pedido?
POST /v1/chat/completions·cohere/command-a-plus:model,messages,stream,modalities,providerPOST /v1/messages·cohere/command-a-plus:model,messages,max_tokens,stream- Que limites se aplicam?
POST /v1/chat/completions·cohere/command-a-plus:messages.min_items:1