Claude Opus 5.5 est disponible sur SeedRouter

Text

Kimi K3.1 Pro

View Markdown

Chat Completions, Responses et Messages natifs pour Kimi K3.1 Pro. Paramètres officiels, historique du raisonnement, sorties structurées, médias et cache.

Utilisez l’ID public kimi-k3.1-pro. La page du modèle propose le Playground et les tarifs actuels. Téléchargez la spécification OpenAPI pour les schémas imbriqués complets des requêtes et réponses.

Démarrage rapide

curl https://api.seedrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model":"kimi-k3.1-pro",
    "messages":[{"role":"user","content":"How can an idempotency key prevent a duplicate payment?"}],
    "max_completion_tokens":2048,
    "reasoning_effort":"low"
  }'

Formats natifs

FormatPoint de terminaisonChamps obligatoires
Chat CompletionsPOST /v1/chat/completionsmodel, messages
ResponsesPOST /v1/responsesmodel, input
MessagesPOST /v1/messagesmodel, messages, max_tokens

Utilisez Authorization: Bearer $SEEDROUTER_API_KEY. Messages utilise aussi anthropic-version: 2023-06-01. Chaque format renvoie du JSON natif ou des événements SSE. Responses est sans état : renvoyez l’historique complet ; previous_response_id n’est pas un champ de requête pris en charge.

Paramètres de requête

Les champs vides du Playground sont omis. Les valeurs explicites false et zéro sont conservées lorsqu’elles sont valides. Un champ omis n’est pas nécessairement nullable. Les extensions inconnues de premier niveau sont supprimées ; les champs officiels invalides sont rejetés. Les schémas d’outils imbriqués et l’historique renvoyé restent intacts.

Chat Completions

ChampTypeObligatoireDéfaut / plage
logprobsbooleanNonfalse par défaut
top_logprobsintegerNon0–20; nécessite logprobs=true
predictionobjectNonOmis si non fourni
max_tokensintegerNon1–1048576
max_completion_tokensintegerNon1–1048576; 131072 par défaut
response_formatobjectNonOmis si non fourni
stopunionNon≤5 chaînes ; ≤32 octets UTF-8 chacune
streambooleanNonfalse par défaut
stream_optionsobjectNonOmis si non fourni
toolsarrayNonOmis si non fourni
prompt_cache_keystringNonOmis si non fourni
prompt_cache_optionsobjectNonOmis si non fourni
safety_identifierstringNonOmis si non fourni
tool_choiceunionNonOmis si non fourni
messagesarrayOuiOmis si non fourni
reasoning_effortstringNonlow, high, max; "max" par défaut
modelstringOuikimi-k3.1-pro; "kimi-k3.1-pro" par défaut
temperaturenumberNon1
top_pnumberNon0.95
nintegerNon1
frequency_penaltynumberNon0
presence_penaltynumberNon0

Responses

ChampTypeObligatoireDéfaut / plage
modelstringOuikimi-k3.1-pro; "kimi-k3.1-pro" par défaut
inputunionOuiOmis si non fourni
instructionsstringNonOmis si non fourni
streambooleanNonfalse par défaut
max_output_tokensintegerNon1–1048576; 131072 par défaut
reasoningobjectNonOmis si non fourni
textobjectNonOmis si non fourni
toolsarrayNonOmis si non fourni
tool_choiceobjectNonOmis si non fourni
includearrayNonOmis si non fourni
prompt_cache_keystringNonOmis si non fourni
prompt_cache_optionsobjectNonOmis si non fourni
safety_identifierstringNonOmis si non fourni

Messages

ChampTypeObligatoireDéfaut / plage
modelstringOuikimi-k3.1-pro; "kimi-k3.1-pro" par défaut
messagesarrayOuiOmis si non fourni
max_tokensintegerOui1–1048576
systemunionNonOmis si non fourni
streambooleanNonfalse par défaut
stop_sequencesarrayNon≤5 chaînes ; ≤32 octets UTF-8 chacune
toolsarrayNonOmis si non fourni
tool_choiceobjectNonOmis si non fourni
metadataobjectNonOmis si non fourni
cache_controlobjectNonOmis si non fourni
output_configobjectNonOmis si non fourni

Chat comporte 22 champs de premier niveau : model, cinq champs d’échantillonnage fixes et 16 entrées variables. Responses contient model et 12 entrées ; Messages contient model et 10 entrées. Le Playground masque le modèle fixe et les réglages d’échantillonnage fixes.

Raisonnement et limites de sortie

Le raisonnement est toujours activé. reasoning_effort pour Chat, reasoning.effort pour Responses et output_config.effort pour Messages acceptent low, high ou max ; défaut : max. Toutes les limites de sortie incluent le raisonnement. Chat et Responses utilisent par défaut 131 072 tokens de sortie, avec un maximum de 1 048 576. Messages exige un max_tokens positif. Chat accepte l’ancien max_tokens ; préférez max_completion_tokens pour les nouvelles intégrations.

La fenêtre de contexte est de 1 048 576 tokens. L’entrée seule doit y tenir. Si l’entrée et le budget de génération dépassent la fenêtre, le service peut réduire ce budget à l’espace restant. Une petite limite de sortie peut être atteinte avant toute réponse visible.

L’échantillonnage de Chat est fixe : temperature:1, top_p:0.95, n:1, frequency_penalty:0, presence_penalty:0. Les autres valeurs sont invalides. Les séquences d’arrêt correspondent au texte exact et sont exclues de la réponse. Leur limite de 32 octets compte les octets UTF-8, pas les caractères.

Sorties structurées et prédictions

Chat accepte text, json_object ou json_schema pour response_format.type. Le mode JSON exige aussi un prompt demandant du JSON. JSON Schema nécessite json_schema.name et json_schema.schema ; strict vaut true par défaut.

Responses utilise text.format avec type:json_schema, schema et, facultativement, name et strict. Messages utilise output_config.format avec type:json_schema et schema. Suivez Moonshot Flavored JSON Schema ; ne supposez pas que toutes les extensions générales de JSON Schema sont appliquées. Validez la sortie terminée dans votre application.

La sortie prédite de Chat utilise prediction:{type:"content",content:...}. Le contenu est une chaîne ou des parties contenant uniquement du texte. Utilisez-la pour une sortie largement connue, par exemple un fichier recevant une petite modification.

Outils et conservation de l’historique

Les outils Chat utilisent type:function avec function.name et function.parameters. Les champs facultatifs comprennent description et strict (true par défaut). Les noms respectent ^[a-zA-Z_][a-zA-Z0-9-_]{0,127}$. Le choix d’outil accepte auto, none et required ; required nécessite au moins un outil disponible. Imposer une fonction nommée est incompatible avec le raisonnement toujours activé.

Un message d’outil Chat dynamique est {role:"system",tools:[...]} sans contenu. Conservez ces messages dans la conversation. Ajoutez la réponse complète de l’assistant, dont reasoning_content et tool_calls, puis renvoyez chaque résultat comme message role:tool avec le tool_call_id correspondant. Les réponses de l’assistant avec outils peuvent avoir un contenu null. Les autres rôles exigent toujours du contenu.

Responses prend en charge les définitions natives function, namespace, les outils personnalisés apply_patch et web_search, avec tool_choice:"auto". Renvoyez les éléments function_call_output ou custom_tool_call_output avec les ID d’appel correspondants. Les valeurs include web_search_call.results et web_search_call.action.sources ne concernent que la sortie de recherche web.

Messages prend en charge les définitions natives d’outils et les objets de choix de type auto, any ou none. Conservez les blocs de raisonnement de l’assistant et leurs signatures. Renvoyez les blocs de résultats d’outils dans les messages utilisateur. Votre application valide les arguments, exécute les fonctions personnalisées et contrôle les actions externes.

Chat Partial Mode définit partial:true uniquement sur le dernier message de l’assistant. Messages poursuit directement un dernier message de l’assistant. Ne reconstruisez pas l’historique à partir du seul texte visible.

Contraintes multimédias

Chat accepte les blocs de texte, image_url et video_url. Utilisez des URL de données base64 ou des références ms:// acceptées ; les URL multimédias publiques arbitraires ne sont pas prises en charge. Formats d’image : JPEG, PNG, GIF, WebP, BMP, HEIC et HEIF. Formats vidéo : MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV et 3GPP. Le guide officiel fixe une limite totale du corps de requête de 100M, sans plafond distinct du nombre d’images. Les images 4K et les vidéos Full HD sont des recommandations, pas des limites obligatoires.

Responses utilise input_image.image_url avec une URL de données. Messages utilise une source d’image telle que {type:"base64",media_type:"image/png",data:"..."}, ou le type url avec une référence ms:// acceptée. Les types d’images intégrées de Messages sont JPEG, PNG, GIF et WebP. Ces formats n’héritent pas implicitement du bloc vidéo de Chat ; utilisez leurs schémas propres.

Le Playground joint les images sous forme intégrée. Utilisez les champs natifs de conversation ou l’éditeur JSON pour les blocs vidéo et références de fichiers. Le téléversement et la gestion des fichiers ne font pas partie de ces points de terminaison de génération. Un ID de fichier créé avec un autre compte n’est pas nécessairement utilisable.

Mise en cache et utilisation

Chat et Responses utilisent prompt_cache_key et prompt_cache_options:{mode:"implicit",ttl:"5m"}. TTL accepte 5m ou 1h, avec 5 minutes par défaut. Messages utilise cache_control:{type:"ephemeral",ttl:"5m"} au premier niveau et, facultativement, metadata.user_id. Les marqueurs de contrôle de cache imbriqués de Messages sont ignorés. prompt_cache_breakpoint au niveau du contenu est invalide.

Un préfixe déjà en cache conserve sa TTL initiale lors d’un rafraîchissement. Demander une autre durée ne prouve pas qu’elle a été appliquée. Les en-têtes officiels d’écriture en cache de Chat indiquent les volumes réels pour 5 minutes et 1 heure. Responses peut renvoyer les prompt_cache_options appliquées ; Messages indique les deux compteurs TTL dans usage.cache_creation.

FormatEntrée totaleLecture du cacheÉcriture du cache
Chatusage.prompt_tokensprompt_tokens_details.cached_tokensprompt_tokens_details.cache_write_tokens
Responsesusage.input_tokensinput_tokens_details.cached_tokensinput_tokens_details.cache_write_tokens
Messagesinput_tokens + cache_read_input_tokens + cache_creation_input_tokenscache_read_input_tokenscache_creation_input_tokens

Les totaux d’entrée de Chat et Responses incluent déjà les lectures et écritures en cache. Ces catégories et le reste hors cache sont distincts ; ne comptez pas deux fois les tokens du cache. La sortie inclut le raisonnement. Messages distingue les écritures dans ephemeral_5m_input_tokens et ephemeral_1h_input_tokens. Consultez les tarifs actuels ; les réponses publiques de génération ne contiennent pas de montants facturés.

Streaming et fin de génération

Définissez stream:true. Chat émet des fragments de données et [DONE] ; stream_options.include_usage:true demande le dernier fragment d’utilisation. Responses utilise des événements nommés tels que response.output_text.delta, response.completed et response.incomplete. Messages utilise message_start, des événements de blocs de contenu, message_delta et message_stop.

Une connexion fermée ne prouve pas à elle seule que la génération est terminée. Vérifiez les raisons de fin natives et le statut final. Un flux interrompu peut manquer des données d’utilisation finales. Arrêter la lecture ne garantit pas l’annulation de la génération.

Références officielles

Vérifiés le 25 octobre 2026 : guide Kimi K3.1 Pro, Chat, Responses, Messages, vision et mise en cache.