Chat completions
Структура запроса и ответа, потоковая передача и эквивалентные эндпоинты в протоколах Anthropic и Gemini.
Завершение чата — самый часто используемый эндпоинт: вы отправляете модели список сообщений и получаете сгенерированный ответ. Основная точка входа платформы — протокол, совместимый с OpenAI; протоколы Anthropic и Gemini изоморфны ему.
Структура запроса (совместимый с OpenAI)
POST {base}/chat/completions — аутентификация описана в разделе Аутентификация:
{
"model": "your-model",
"messages": [
{"role": "system", "content": "You are a support assistant."},
{"role": "user", "content": "Where is my order?"},
{"role": "assistant", "content": "Sure, may I have the order number?"},
{"role": "user", "content": "A1024"}
],
"temperature": 0.7,
"max_tokens": 1024,
"stream": false
}
messages— упорядоченная история переписки;roleпринимает значенияsystem/user/assistant. Для многошаговых диалогов клиент собирает всю историю и отправляет её заново при каждом запросе;- Чем выше
temperature, тем разнообразнее вывод (обычно 0–1);max_tokensограничивает длину ответа; - Стриминг: при
"stream": trueответ передаётся постепенно по SSE (choices[0].delta) — идеально, чтобы показывать текст по мере его генерации. В официальных SDK: передайтеstream=Trueи итерируйте по потоку.
Структура ответа
Ключевые поля ответа без стриминга:
{
"choices": [
{
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}
],
"usage": {"prompt_tokens": 58, "completion_tokens": 132, "total_tokens": 190}
}
- В
choices[0].message.contentнаходится ответ;finish_reasonсо значениемstopозначает естественное завершение,length— обрыв поmax_tokens; usage— расход токенов за этот вызов; на нём основаны и биллинг, и страница «Использование».
Эквивалентные эндпоинты в других протоколах
- Anthropic:
POST {base}/v1/messages— отличаются имена полей (max_tokensобязателен, ответ находится в массивеcontent), в остальном семантика идентична; - Gemini:
POST {base}/v1beta/models/{model}:generateContent— сообщения передаются в массивеcontents.
Все три протокола изоморфны; переход сводится в основном к переименованию полей. Практичный шаг — использовать соответствующий официальный SDK (openai / @anthropic-ai/sdk / @google/genai), указав в base_url адрес платформы.

