Claude Fable 5
Appelez Claude Fable 5 avec l'API Messages officielle d'Anthropic, ou les formats OpenAI Chat Completions et Responses : réflexion adaptative, une fenêtre de contexte de 1M tokens et jusqu'à 128K tokens en sortie.
Claude Fable 5 est le modèle Fable précédent d'Anthropic, toujours disponible aux côtés de Claude Fable 5.1. Envoyez la requête officielle Anthropic Messages à SeedRouter : changez l'URL de base et la clé API, conservez le corps. Le même modèle répond aussi aux formats OpenAI Chat Completions et Responses.
ID de modèle
| ID de modèle | Fenêtre de contexte | Sortie maximale | Réflexion | Effort par défaut |
|---|---|---|---|---|
claude-fable-5 | 1M tokens | 128K tokens | Adaptative, toujours active | high |
Consultez la page du modèle pour les tarifs actuels.
Exemple rapide
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."}]
}'Points de terminaison
| Format | Méthode et chemin | Authentification |
|---|---|---|
| Anthropic Messages | POST https://api.seedrouter.ai/v1/messages | x-api-key: <key> ou Authorization: Bearer <key>, plus 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> |
Le point de terminaison Messages transfère votre corps de requête tel qu'envoyé, y compris les champs facultatifs, et renvoie la réponse officielle. Un en-tête anthropic-beta est également transmis. Conservez la clé API dans le code côté serveur.
Paramètres
| Nom | Type | Requis | Par défaut | Remarques |
|---|---|---|---|---|
model | string | Oui | — | claude-fable-5. |
max_tokens | integer | Oui | — | 0–128000. Inclut les tokens dépensés pour la réflexion. 0 préchanffe uniquement le cache de prompt. |
messages | object[] | Oui | — | Alternance de tours user et assistant ; content est une string ou un tableau de blocs de contenu. Le dernier tour doit être user. Exception : pour poursuivre une réponse pause_turn, renvoyez son contenu tel quel comme dernier message assistant. |
system | string ou object[] | Non | — | Prompt système. |
thinking | object | Non | {"type": "adaptive"} | La réflexion est adaptative et toujours active. display : omitted (par défaut) ou summarized. |
output_config.effort | enum | Non | high | low, medium, high, xhigh, max. Oriente le niveau de réflexion du modèle. |
output_config.format | object | Non | — | Un schéma JSON pour la sortie structurée. |
stop_sequences | string[] | Non | — | S'arrête quand l'une de ces strings est générée. |
stream | boolean | Non | false | Envoie la réponse en événements côté serveur. |
temperature | number | Non | — | Seule la valeur 1 (par défaut) est acceptée, pour la rétrocompatibilité ; toute autre valeur renvoie une erreur 400. Omettez-le. |
top_p | number | Non | — | Seules les valeurs de 0.99 à 1 sont acceptées, pour la rétrocompatibilité ; toute autre valeur renvoie une erreur 400. Omettez-le. |
top_k | integer | Non | — | Non accepté : toute valeur renvoie une erreur 400. Omettez-le. |
tools | object[] | Non | — | Définitions d'outils. |
tool_choice | object | Non | — | auto, any, tool ou none. |
metadata.user_id | string | Non | — | Un id opaque pour votre utilisateur final, jusqu'à 512 caractères. |
cache_control | object | Non | — | Point de rupture du cache de prompt au niveau supérieur. |
container, context_management, mcp_servers, diagnostics, service_tier, inference_geo, speed | — | Non | — | Transmis tel qu'envoyé. |
Réflexion et effort
Claude Fable 5 utilise toujours la réflexion adaptative : le modèle décide de la quantité de réflexion, et output_config.effort l'oriente. Un effort plus élevé signifie généralement plus de tokens en sortie, une attente plus longue et un coût plus élevé. Avec thinking.display défini sur summarized, la réponse inclut des blocs thinking que vous pouvez afficher ; avec omitted, Claude Fable 5 renvoie toujours un bloc thinking, mais son texte est vide. Lisez la réponse dans les blocs text, pas dans le premier bloc. Les tokens de réflexion sont facturés comme des tokens de sortie.
Entrées média
Les images et les PDF vont dans le content d'un tour utilisateur en tant que blocs image et document, avec une source url ou, comme dans l'API officielle, une source base64 :
{"role": "user", "content": [
{"type": "image", "source": {"type": "url", "url": "https://example.com/chart.png"}},
{"type": "text", "text": "What does this chart show?"}
]}Remplacez l'URL d'exemple par un fichier publiquement accessible de votre choix.
Dimensions de facturation
Consultez les tarifs actuels sur la page du modèle. Une requête est facturée en fonction des tokens qu'elle utilise :
- tokens d'entrée,
- tokens de sortie, y compris la réflexion,
- lectures du cache de prompt, et
- écritures du cache de prompt, avec des tarifs distincts de 5 minutes et 1 heure.
La charge est prélevée sur l'usage rapporté avec la réponse terminée. Une requête qui échoue n'est pas facturée. Les enregistrements d'usage de votre compte affichent la charge exacte pour chaque requête.
Sortie
Une requête non-streaming renvoie l'objet message officiel :
{
"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}
}Avec "stream": true, la réponse est un flux d'événements officiels : message_start, content_block_start, content_block_delta, content_block_stop, message_delta et message_stop. Le message_delta final porte le nombre de tokens de sortie.
Formats compatibles OpenAI
Le même modèle répond aux formats OpenAI, donc le code OpenAI existant a seulement besoin d'une nouvelle URL de base et d'un ID de modèle :
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")Ces requêtes sont converties au format Messages, donc un champ sans équivalent Messages n'a aucun effet. Leurs réponses portent les champs OpenAI officiels et peuvent inclure quelques champs d'usage supplémentaires ; lisez usage.total_tokens et les champs officiels.
Erreurs
Les erreurs sur /v1/messages utilisent la forme Anthropic, {"type": "error", "error": {"type": "...", "message": "..."}}; les autres formats utilisent {"error": {"code": ..., "message": "..."}}. Le code est un code du catalogue d'erreurs commun. Les requêtes échouées ne sont pas facturées.
Conseils
- Commencez avec l'effort par défaut et ne l'augmentez que pour les tâches qui nécessitent plus de réflexion ; les changements d'effort affectent à la fois la qualité et le coût.
- Définissez
max_tokensassez haut pour la réflexion et la réponse : c'est un budget unique pour les deux. - Placez le contexte long et réutilisé en premier et marquez-le avec
cache_controlafin que les requêtes ultérieures le lisent à partir du cache au tarif inférieur.
