messages и прочитайте ответ в choices[0].message.content.
Необязательные параметры и поддержка инструментов зависят от модели. Если ваше приложение построено на структурах запросов Anthropic Messages или Gemini
generateContent, используйте страницы Протокол Claude и Протокол Gemini. Три формата сравнивает руководство API генерации текста.
Отправка запроса
Создайте API-ключ в разделе Управление токенами, выбрав режим оплаты «сначала по использованию» (в консоли — 按量优先, рекомендуется) или «оплата по использованию» (按量计费), и сохраните его в переменной окружения:Authorization: Bearer и JSON-тело с model и messages. В примерах взята модель gpt-5.4-mini.
- cURL
- Python
connected. Когда клиент заработает, подставьте вместо промпта сообщение своего приложения.
Выбор модели
Модель выбирайте в каталоге моделей. Прежде чем менять значениеmodel, проверьте в строке модели три вещи:
- В Endpoints есть OpenAI-compatible. Модели, у которых указан только Responses, например серия
o3-pro, вызываются через/v1/responses; примеры есть в разделе про Responses API в руководстве по подключению. - В Token groups есть группа вашего API-ключа.
- Цены Input, Output и Cache read за 1M токенов подходят вашей нагрузке.
gpt-5.4-miniиgpt-5.4gemini-3.8-flash,gemini-3.6-flashиgemini-3.5-flash-lite
o3-pro (только Responses), показано на странице Модели OpenAI.
Общий рейтинг не подскажет, какая модель подходит вашему приложению. Прогоните выборку собственных промптов через две-три модели и сравните качество ответов, следование инструкциям, структурированный вывод, долю успешных вызовов инструментов (если вы их используете), задержку и расход токенов, записанный по каждому запросу.
Зафиксируйте выбранный ID модели в конфигурации, чтобы смена модели была осознанным обновлением.
Поля запроса
Начните с
model и messages. Необязательные поля и допустимые значения зависят от модели; если запрос отклонён из-за неподдерживаемого параметра, перед повтором нужно изменить поле. Определения полей на стороне вендора — в официальном справочнике Chat Completions.
Сообщения и история диалога
У каждого сообщения естьrole и content. Роль user — ввод пользователя, assistant — прежние ответы модели. С каждым запросом отправляйте ту историю, которая нужна вашему приложению:
system или developer, сообщения инструментов и мультимодальное содержимое зависят от выбранной модели. Как передавать изображения модели с поддержкой зрения, описано в разделе API понимания изображений.
Чтение ответа
Текстовый ответ содержит массивchoices. В сокращённом примере показаны поля, которые нужно читать:
message.content, а причина завершения генерации — в finish_reason. Значение length означает, что ответ упёрся в лимит вывода или контекста; если нужен полный ответ, сократите вход или измените поддерживаемый моделью лимит вывода.
Если модель поддерживает вызов инструментов, вместо обычного текста ответ может содержать message.tool_calls. При продолжении диалога сохраняйте эти вызовы вместе с соответствующими результатами. Число токенов может быть в usage; списания по аккаунту смотрите в журнале вызовов.
Потоковый ответ
Добавьте"stream": true, чтобы получать ответ частями по мере того, как его пишет модель. Ответ приходит как поток server-sent events:
- В каждой строке
data:лежит объектchat.completion.chunk. - Новый текст находится в
choices[0].delta.content. - Поток заканчивается строкой
data: [DONE].
- cURL
- Python
Флаг
-N отключает буферизацию вывода cURL, так что каждый фрагмент печатается сразу после получения.id и model):
- Добавляйте каждый
delta.contentпо порядку, чтобы собрать ответ целиком. - Первый фрагмент может содержать только роль, а в некоторых фрагментах, например в последнем фрагменте с
usage, массивchoicesбывает пустым, поэтому проверяйте его перед чтением. - Последний фрагмент с содержимым задаёт
finish_reason; затемdata: [DONE]закрывает поток, и цикл в Python SDK на этом завершается. - Если соединение оборвалось до
[DONE], считайте ответ неполным.
Обработка ошибок
После таймаута на стороне клиента проверьте в журнале вызовов, есть ли там этот запрос, прежде чем отправлять его снова. В примерах на Python автоматические повторы отключены; добавляйте обработку повторов в приложении осознанно.
Обращаясь в поддержку, укажите время запроса, эндпоинт, модель, группу токена и текст ошибки без учётных данных. Никогда не отправляйте свой API-ключ.