Claude Fable 5
Chame o Claude Fable 5 com a API de Mensagens oficial do Anthropic ou com os formatos OpenAI Chat Completions e Responses: raciocínio adaptativo, janela de contexto de 1M de tokens e até 128K de tokens de saída.
Claude Fable 5 é o modelo Fable anterior do Anthropic, ainda disponível ao lado do Claude Fable 5.1. Envie a requisição oficial de Mensagens do Anthropic para o SeedRouter: altere a URL base e a chave de API, mantenha o corpo. O mesmo modelo também responde aos formatos OpenAI Chat Completions e Responses.
ID do modelo
| ID do modelo | Janela de contexto | Saída máxima | Raciocínio | Nível de raciocínio padrão |
|---|---|---|---|---|
claude-fable-5 | 1M tokens | 128K tokens | Adaptativo, sempre ativo | high |
Consulte a página do modelo para os preços atuais.
Exemplo rápido
curl https://api.seedrouter.ai/v1/messages \
-H "x-api-key: $SEEDROUTER_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-fable-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Summarize the trade-offs of event sourcing in three bullet points."}]
}'Endpoints
| Formato | Método e caminho | Autenticação |
|---|---|---|
| Anthropic Messages | POST https://api.seedrouter.ai/v1/messages | x-api-key: <key> ou Authorization: Bearer <key>, mais anthropic-version |
| OpenAI Chat Completions | POST https://api.seedrouter.ai/v1/chat/completions | Authorization: Bearer <key> |
| OpenAI Responses | POST https://api.seedrouter.ai/v1/responses | Authorization: Bearer <key> |
O endpoint de Mensagens encaminha o corpo da sua requisição como enviado, incluindo campos opcionais, e retorna a resposta oficial. Um cabeçalho anthropic-beta também é encaminhado. Mantenha a chave de API em código do lado do servidor.
Parâmetros
| Nome | Tipo | Obrigatório | Padrão | Observações |
|---|---|---|---|---|
model | string | Sim | — | claude-fable-5. |
max_tokens | integer | Sim | — | 0–128000. Inclui os tokens gastos no raciocínio. 0 apenas pré-aquece o cache de prompt. |
messages | object[] | Sim | — | Turnos alternados de user e assistant; content é uma string ou um array de blocos de conteúdo. O último turno deve ser user. Exceção: para continuar uma resposta pause_turn, reenvie o conteúdo dela sem alterações como a última mensagem assistant. |
system | string or object[] | Não | — | Prompt do sistema. |
thinking | object | Não | {"type": "adaptive"} | Raciocínio é adaptativo e sempre ativo. display: omitted (padrão) ou summarized. |
output_config.effort | enum | Não | high | low, medium, high, xhigh, max. Orienta o quanto o modelo pensa. |
output_config.format | object | Não | — | Um esquema JSON para saída estruturada. |
stop_sequences | string[] | Não | — | Parar quando uma dessas strings for gerada. |
stream | boolean | Não | false | Transmitir a resposta como eventos enviados pelo servidor. |
temperature | number | Não | — | Só 1 (o padrão) é aceito, por compatibilidade com versões anteriores; qualquer outro valor retorna um erro 400. Deixe de fora. |
top_p | number | Não | — | Só valores de 0.99 a 1 são aceitos, por compatibilidade com versões anteriores; qualquer outro valor retorna um erro 400. Deixe de fora. |
top_k | integer | Não | — | Não aceito: qualquer valor retorna um erro 400. Deixe de fora. |
tools | object[] | Não | — | Definições de ferramentas. |
tool_choice | object | Não | — | auto, any, tool ou none. |
metadata.user_id | string | Não | — | Um id opaco para seu usuário final, até 512 caracteres. |
cache_control | object | Não | — | Ponto de quebra de cache de prompt no nível superior. |
container, context_management, mcp_servers, diagnostics, service_tier, inference_geo, speed | — | Não | — | Encaminhado conforme enviado. |
Raciocínio e nível de raciocínio
Claude Fable 5 sempre usa raciocínio adaptativo: o modelo decide quanto pensar, e output_config.effort o orienta. Esforço maior geralmente significa mais tokens de saída, uma espera mais longa e um custo mais alto. Com thinking.display definido como summarized, a resposta inclui blocos de thinking que você pode mostrar; com omitted, Claude Fable 5 ainda retorna um bloco de thinking, mas seu texto está vazio. Leia a resposta dos blocos text, não do primeiro bloco. Os tokens de raciocínio são cobrados como tokens de saída.
Entradas de mídia
Imagens e PDFs vão no content de um turno do usuário como blocos image e document, com uma fonte url ou, como na API oficial, uma fonte base64:
{"role": "user", "content": [
{"type": "image", "source": {"type": "url", "url": "https://example.com/chart.png"}},
{"type": "text", "text": "What does this chart show?"}
]}Substitua a URL de exemplo por um arquivo publicamente acessível do seu próprio.
Dimensões de cobrança
Consulte as taxas atuais na página do modelo. Uma requisição é cobrada pelos tokens que usa:
- tokens de entrada,
- tokens de saída, incluindo raciocínio,
- leituras de cache de prompt, e
- escritas de cache de prompt, com taxas separadas de 5 minutos e 1 hora.
A cobrança é retirada do usage informado com a resposta concluída. Uma requisição que falha não é cobrada. Os registros de uso da sua conta mostram a cobrança exata para cada requisição.
Saída
Uma requisição sem streaming retorna o objeto de mensagem oficial:
{
"id": "msg_...",
"type": "message",
"role": "assistant",
"model": "claude-fable-5",
"content": [{"type": "text", "text": "..."}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 18, "output_tokens": 4, "cache_read_input_tokens": 0, "cache_creation_input_tokens": 0}
}Com "stream": true a resposta é um fluxo dos eventos oficiais: message_start, content_block_start, content_block_delta, content_block_stop, message_delta e message_stop. O message_delta final contém a contagem de tokens de saída.
Formatos compatíveis com OpenAI
O mesmo modelo responde aos formatos OpenAI, então o código OpenAI existente precisa apenas de uma nova URL base e ID de modelo:
from openai import OpenAI
client = OpenAI(api_key="YOUR_SEEDROUTER_KEY", base_url="https://api.seedrouter.ai/v1")
chat = client.chat.completions.create(
model="claude-fable-5",
messages=[{"role": "user", "content": "Hello"}],
)
response = client.responses.create(model="claude-fable-5", input="Hello")Essas requisições são convertidas para o formato de Mensagens, então um campo sem contrapartida em Mensagens não tem efeito. Suas respostas carregam os campos oficiais do OpenAI e podem incluir alguns campos de uso extra; leia usage.total_tokens e os campos oficiais.
Erros
Erros em /v1/messages usam a forma do Anthropic, {"type": "error", "error": {"type": "...", "message": "..."}}; os outros formatos usam {"error": {"code": ..., "message": "..."}}. O code é um código do catálogo de erros comum. Requisições falhadas não são cobradas.
Dicas
- Comece com o nível de raciocínio padrão e aumente-o apenas para tarefas que precisam de mais raciocínio; a mudança de esforço afeta tanto a qualidade quanto o custo.
- Defina
max_tokensalto o suficiente para o raciocínio e também para a resposta: é um orçamento para ambos. - Coloque contexto longo e reutilizado primeiro e marque-o com
cache_controlpara que requisições posteriores o leiam do cache com a taxa mais baixa.
