Перейти к содержимому
Основной сайт Новости Консоль

Обработка данных ответа

На этой странице объясняется, как правильно разбирать данные ответа, возвращаемые 4ALL API, для всех моделей, вызываемых через Chat Completions.

Структура нестримингового ответа

{
"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
}
}

Обработка finish_reason

ЗначениеЗначениеРекомендуемая обработка
stopНормальное завершениеИспользовать напрямую
lengthОбрезано из-за достижения верхнего предела max_tokensУвеличить max_tokens или продолжить по частям
tool_callsМодель запрашивает вызов функцииПосле выполнения функции вернуть результат, см. FC 函数调用
content_filterКонтент заблокирован верхнеуровневой политикой безопасностиСкорректировать подсказку

Поле usage

  • usage — основа для сверки: тарификация отдельно по prompt_tokens / completion_tokens;
  • Последний блок данных при стриминговом вызове также содержит usage (подробнее см. 流式输出);
  • При попадании в кеш подсказки prompt_tokens_details.cached_tokens отмечает часть из кеша, она тарифицируется по коэффициенту кеша, см. 缓存计费

Рекомендации по разбору

  • Всегда читайте choices[0].message.content, не предполагая, что длина choices больше 1;
  • Модели с рассуждением (-thinking уровень) могут содержать поле reasoning_content; при отображении отделяйте его от основного текста, см. 推理模型输出;
  • При ошибке ответ имеет структуру {"error": {...}}, способ обработки см. в 错误码与重试】【。