Aller au contenu
Site principal Actualités Console

Traitement des données de réponse

Cette page explique comment analyser correctement les données de réponse renvoyées par 4ALL API, applicable à tous les modèles appelés via Chat Completions.

Structure de réponse non streamée

{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "……" },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 46,
"total_tokens": 58
}
}

Traitement de finish_reason

ValeurSignificationTraitement recommandé
stopFin normaleUtiliser directement
lengthTronqué après avoir atteint la limite max_tokensAugmenter max_tokens ou poursuivre par segments
tool_callsLe modèle demande l’appel d’une fonctionExécuter la fonction puis renvoyer le résultat, voir FC 函数调用
content_filterLe contenu est bloqué par la politique de sécurité en amontAjuster le prompt

Champ d’utilisation usage

  • usage sert de base au rapprochement : la facturation est calculée séparément selon prompt_tokens / completion_tokens ;
  • Le dernier bloc de données d’un appel en streaming contient également usage (voir 流式输出) ;
  • Lorsqu’un cache de prompt est touché, prompt_tokens_details.cached_tokens indique la partie mise en cache, facturée selon le multiplicateur de cache, voir 缓存计费

Recommandations d’analyse

  • Lisez toujours choices[0].message.content, ne supposez pas que la longueur de choices est supérieure à 1 ;
  • Les modèles de raisonnement (-thinking) peuvent inclure le champ reasoning_content ; lors de l’affichage, veillez à le distinguer du corps principal, voir 推理模型输出 ;
  • En cas d’erreur, la réponse est structurée comme {"error": {...}}, la méthode de traitement est décrite dans 错误码与重试】【。