Anthropic: Claude Haiku 4.5
Claude Haiku 4.5 destina-se a assistentes interativos, apoio a utilizadores, processamento quotidiano de informação e trabalho com código. Suporta um modo de raciocínio separado para perguntas complexas.
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.
Quando a resposta a cada passo é importante
A Anthropic concebeu Claude Haiku 4.5 para assistentes de conversação, apoio a utilizadores, trabalho conjunto com código e criação de protótipos. O modelo é útil num ciclo em que uma pessoa faz uma pergunta, recebe o resultado e indica de imediato o passo seguinte. Segundo a Anthropic, esta versão caracteriza-se por uma baixa latência de resposta; o tempo concreto depende da tarefa e da aplicação.
Haiku 4.5 foi também concebido para processar um grande número de tarefas individuais. Num processo com agentes, pode receber uma subtarefa específica e transmitir depois o resultado ao resto do sistema. As áreas descritas incluem programação, raciocínio e ações na interface. As chamadas de ferramentas e o controlo do computador são possíveis quando a aplicação disponibiliza os meios correspondentes ao modelo; um pedido textual, por si só, não lhe dá acesso ao ambiente de trabalho.
Resposta comum e orçamento manual de raciocínio
Para tarefas com vários passos lógicos, está previsto extended thinking: a aplicação ativa explicitamente o raciocínio e define o seu orçamento através de budget_tokens. Se o método suportar estas configurações, o orçamento manual budget_tokens tem de ser de pelo menos 1024 tokens e inferior a max_tokens, para deixar espaço para a resposta final. Orienta o volume da análise, enquanto max_tokens limita toda a saída. Haiku 4.5 utiliza precisamente o modo manual: esta versão não suporta raciocínio adaptativo nem controlo da profundidade através de effort. Também não suporta raciocínio entre chamadas sequenciais de ferramentas.
É útil considerar esta distinção ao escolher a tarefa. O modo comum é adequado ao diálogo direto; o raciocínio ativado dá ao modelo espaço para analisar código ou uma pergunta complexa. O conteúdo da tarefa continua a determinar a informação a analisar e a forma de apresentar o resultado.
Materiais e limites da versão
O modelo recebe texto e imagens e devolve o resultado em texto. A janela de contexto é de 200 mil tokens e a resposta máxima é de 64 mil tokens. A imagem serve de material para análise juntamente com a pergunta: o modelo pode explicar o conteúdo visível e relacioná-lo com a tarefa textual. O suporte de imagens na entrada não implica criação ou edição de imagens.
Os formatos de entrada visual comum do fabricante são JPEG/PNG/GIF/WebP, utilizando-se o primeiro fotograma das animações. Na análise nativa, o lado mais comprido é de 1568 píxeis, com 1568 tokens visuais; as imagens grandes são reduzidas antes da análise. O suporte de ficheiros e parâmetros depende do método da aplicação.
Nesta versão, a Anthropic descreve um estilo de comunicação conciso e direto. É útil indicar previamente o detalhe pretendido, o formato do resultado e os limites da tarefa. A data de corte fiável do conhecimento integrado é fevereiro de 2025; informações sobre acontecimentos posteriores têm de ser fornecidas nos materiais da tarefa ou obtidas através das ferramentas disponíveis na aplicação. Alguns pedidos podem ser recusados.
Se o método disponibilizar configurações de amostragem, não se podem definir temperature e top_p em simultâneo: para esta versão, escolhe-se um destes parâmetros.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions claude-haiku-4-5-20251001-thinking
claude-haiku-4-5-20251001-thinking
claude-haiku-4-5-20251001-thinkingIntrodução
Claude Haiku 4.5 destina-se a assistentes interativos, apoio a utilizadores, processamento quotidiano de informação e trabalho com código. Suporta um modo de raciocínio separado para perguntas complexas.
- 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 claude-haiku-4-5-20251001-thinking | 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 Depende do modelo | Predefinição— |
Campomessages[].content | Tipostring | RequisitoOpcional | Valores e limites Aplica-se quando: Conversação textual | Predefinição— |
Campostream | Tipoboolean | RequisitoOpcional | Valores e limites | Predefiniçãofalse |
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 |
Parâmetrocontrol_scope | ContratoConversação textual; stream é um booleano e tem false como predefinição. |
Parâmetrooutput_modalities | Contratotext |
Parâmetrohosted_operations | Contratofalse |
Parâmetromultimodal_input_binding | Contratonull |
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
| Configuração | Tabela de tarifas | Custo |
|---|---|---|
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Custo Entrada · Tokens de entrada $0.002 / 1K tokens Saída · Tokens de saída $0.01 / 1K tokens Entrada · Leitura da cache $0.0002 / 1K tokens Entrada · Escrita na cache $0.0025 / 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":"claude-haiku-4-5-20251001-thinking","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="claude-haiku-4-5-20251001-thinking", 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
| 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 claude-haiku-4-5-20251001-thinking
Aliases dos caminhos dos métodos
/chat/completions
IDs de chamada relacionados
FAQ · Anthropic: Claude Haiku 4.5
- Que entradas e resultados estão disponíveis?
POST /v1/chat/completions·claude-haiku-4-5-20251001-thinking:text→text- Que campos utiliza o pedido?
POST /v1/chat/completions·claude-haiku-4-5-20251001-thinking:model,messages,stream- Que limites se aplicam?
POST /v1/chat/completions·claude-haiku-4-5-20251001-thinking:messages.min_items:1