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
| Valeur | Signification | Traitement recommandé |
|---|---|---|
stop | Fin normale | Utiliser directement |
length | Tronqué après avoir atteint la limite max_tokens | Augmenter max_tokens ou poursuivre par segments |
tool_calls | Le modèle demande l’appel d’une fonction | Exécuter la fonction puis renvoyer le résultat, voir FC 函数调用 |
content_filter | Le contenu est bloqué par la politique de sécurité en amont | Ajuster le prompt |
Champ d’utilisation usage
usagesert de base au rapprochement : la facturation est calculée séparément selonprompt_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_tokensindique 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 dechoicesest supérieure à 1 ; - Les modèles de raisonnement (
-thinking) peuvent inclure le champreasoning_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 错误码与重试】【。