Skip to main content
Utilisez /v1/chat/completions pour la génération de texte compatible OpenAI.

Streaming

Définissez stream: true pour recevoir des server-sent events. Chaque événement est un chat.completion.chunk OpenAI, et le flux se termine par data: [DONE].

Paramètres

Les paramètres standard OpenAI sont acceptés, notamment temperature, top_p, max_tokens, stop, n, frequency_penalty, presence_penalty, seed, response_format, tools, tool_choice, logprobs, top_logprobs, logit_bias, user et stream.

Intensité du raisonnement

Définissez reasoning_effort au niveau racine pour les modèles à raisonnement configurable. Le format Responses reasoning.effort est également accepté. Si les deux sont fournis, leurs valeurs doivent être identiques ; sinon, la requête renvoie 400.
Les valeurs acceptées dépendent du modèle. En l’absence de valeur, le comportement par défaut est conservé. Voir les contrôles de raisonnement par modèle. Les valeurs d’effort acceptées par chaque modèle, sa valeur par défaut et la possibilité de désactiver le raisonnement sont publiées dans GET /v1/models sous capability_metadata.reasoning, ce qui permet aux clients de configurer un modèle sans coder de tableau en dur. Les limites comme max_completion_tokens, max_output_tokens et leurs équivalents natifs comptent à la fois les tokens de raisonnement et de réponse finale. effort n’est pas une limite de tokens de sortie. Le budget peut toujours être épuisé (finish_reason: "length" dans Chat Completions), laissant une réponse finale incomplète ou vide.

Compatibilité Kimi K3

kimi-k3 utilise le même endpoint compatible OpenAI, mais son contrat natif suit des règles propres au modèle :
  • K3 raisonne toujours et le raisonnement ne peut pas être désactivé. Il accepte low, high et max ; la valeur par défaut est max, et un effort plus faible échange de la profondeur de raisonnement contre de la latence. L’objet thinking de K2.x n’est accepté que comme alias de compatibilité activé.
  • Préférez max_completion_tokens. APIAny.AI accepte le max_tokens obsolète et utilise max_completion_tokens pour Kimi K3. Si aucune limite n’est fournie, la valeur par défaut du modèle s’applique. Le maximum explicite est de 1 048 576 tokens.
  • Les paramètres d’échantillonnage de K3 sont figés. APIAny.AI supprime temperature, top_p, frequency_penalty et presence_penalty pour K3 uniquement ; n doit valoir 1.
  • reasoning_content contient la trace de raisonnement et content la réponse finale. En streaming, ils arrivent sous forme de deltas séparés. Ne fusionnez pas la trace de raisonnement dans la réponse finale.
  • Rejouez le message assistant complet, y compris reasoning_content et tool_calls, dans les requêtes multi-tours et d’appel d’outils.
  • Le dernier message assistant peut utiliser partial: true. Un message system sans content peut porter tools pour charger dynamiquement les outils de K3.
  • Les blocs de contenu image/vidéo de K3 doivent utiliser une URL data: Base64 ou un ID de fichier ms://. Les URL HTTP publiques sont rejetées avant l’envoi de la requête au modèle.
Si finish_reason vaut length, le budget de sortie a été épuisé. La réponse reste compatible OpenAI, mais la réponse finale peut être absente ou incomplète ; augmentez max_completion_tokens ou réduisez l’entrée avant de réessayer.

Remarques

  • model est un ID de modèle public APIAny.AI.
  • L’utilisation des tokens est normalisée dans l’objet usage de style OpenAI lorsque les données d’utilisation sont disponibles.

Sortie GPT-6 et fin du flux

Avec gpt-6-astra, les blocs de réflexion initiaux reconnaissables sont séparés de la réponse finale. Lisez content / output_text pour la réponse, et les champs de raisonnement ou événements summary pour la réflexion. Les exemples explicites de balises et les cas ambigus sont conservés. Ce formatage ne modifie ni l’effort de raisonnement ni la limite de tokens. Un flux HTTP 200 ne garantit pas le succès. Gérez les événements d’erreur et marquez toute réponse partielle comme incomplète. En Chat, lisez le dernier usage avant [DONE] ; en Responses, distinguez response.completed, response.incomplete et response.failed / error. Dans GPT-6 Chat, [DONE] termine le flux sans annuler une erreur précédente ni garantir une réponse complète. Vérifiez aussi finish_reason : length indique que la limite de sortie a été atteinte, et content_filter indique un filtrage du contenu. Ces valeurs ne sont pas remplacées par stop. Si la connexion se ferme avant la fin ou si un événement d’erreur est reçu, ne considérez pas le texte partiel comme une réponse complète.