API Chat Completion
Chat Completion
Cet endpoint QAnswer est un chat completion compatible OpenAI.
Consultez la documentation OpenAI pour le schéma complet de requête/réponse.
Une clé API est requise pour utiliser cet endpoint :
- Créez-en une sur votre Page de profil
- Transmettez la clé API comme token Bearer dans l'en-tête Authorization.
Un administrateur doit allouer des crédits à un utilisateur. Les nouvelles clés API ont 0 crédit par défaut.
Exemple de payload
/api/v1/{llm_id}/chat/completions
Paramètres de la requête
L'endpoint lit le schéma de requête de l'API OpenAI actuelle. Points à connaître :
- max_completion_tokens limite la réponse, raisonnement compris. L'ancien max_tokens est toujours lu en l'absence de max_completion_tokens. Sans l'un ni l'autre, le réglage Jetons de sortie maximale du modèle s'applique. Aucun des deux ne peut dépasser la fenêtre de contexte du modèle.
- reasoning_effort accepte none, minimal, low, medium, high ou xhigh, et max sur les modèles qui le proposent. minimal est transmis au modèle comme low. Sans lui, le réglage d'effort de raisonnement du modèle s'applique.
- Un message developer parvient au modèle comme message system.
- Le raisonnement du modèle ne figure pas dans la réponse. Pour l'obtenir, envoyez include_reasoning: true (une extension QAnswer) : il arrive alors dans message.reasoning_content, ou delta.reasoning_content en streaming.
- Sans temperature, la valeur par défaut du modèle s'applique.
- n supérieur à 1 est refusé avec une erreur 400 si le modèle ne peut renvoyer qu'un seul choix (les modèles Anthropic, par exemple).
- Une erreur arrive avec l'objet d'erreur d'OpenAI : error.message, error.type, error.param et error.code, la clé d'erreur QAnswer.
Consommation de tokens
Chaque réponse indique les tokens utilisés dans usage : prompt_tokens, completion_tokens et total_tokens. Lorsque le fournisseur du modèle renvoie un détail, QAnswer le transmet :
- prompt_tokens_details.cached_tokens : les tokens du prompt servis depuis le cache de prompt du fournisseur.
- completion_tokens_details.reasoning_tokens : les tokens qu'un modèle de raisonnement a utilisés avant d'écrire sa réponse.
- cache_creation_input_tokens et cache_read_input_tokens : les compteurs de cache des modèles Anthropic, pour les tokens écrits dans le cache et lus depuis le cache. Chacun n'apparaît que s'il est différent de 0.
"usage": {
"prompt_tokens": 1250,
"completion_tokens": 310,
"total_tokens": 1560,
"prompt_tokens_details": { "cached_tokens": 1024 },
"completion_tokens_details": { "reasoning_tokens": 192 }
}Les champs de détail n'apparaissent que si le fournisseur les renvoie : vérifiez qu'un champ existe avant de le lire.
Une réponse en streaming n'indique usage que si la requête met stream_options.include_usage à true : il arrive alors dans un dernier fragment, dont la liste choices est vide.
Pour tarifer les tokens en cache séparément des autres tokens du prompt, renseignez le Cached Input Token Cost du modèle, voir Fournisseurs LLM.