Chat Completions API
Создание ответов для диалогов с использованием языковых моделей
Chat Completions API позволяет создавать текстовые ответы на основе переданного диалога. Это основной endpoint для работы с чат-моделями типа GPT-4, Claude и Gemini.
API Endpoint
POST
/v1/chat/completions
Создает ответ для заданного диалога с использованием выбранной модели.
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
model |
string | Да | ID модели для использования (например: "gpt-4", "claude-3-opus") |
messages |
array | Да | Массив объектов сообщений диалога |
temperature |
number | Нет | Температура сэмплирования от 0 до 2. По умолчанию: 1 |
max_tokens |
integer | Нет | Максимальное количество токенов в ответе |
top_p |
number | Нет | Альтернатива temperature. Nucleus sampling. По умолчанию: 1 |
n |
integer | Нет | Количество вариантов ответов. По умолчанию: 1 |
stream |
boolean | Нет | Включить потоковую передачу ответа. По умолчанию: false |
stop |
string/array | Нет | Последовательности, при которых модель остановит генерацию |
presence_penalty |
number | Нет | Штраф за повторение тем. От -2.0 до 2.0. По умолчанию: 0 |
frequency_penalty |
number | Нет | Штраф за частоту токенов. От -2.0 до 2.0. По умолчанию: 0 |
Структура messages
Каждый объект сообщения должен содержать:
{
"role": "user" | "assistant" | "system",
"content": "текст сообщения"
}
Пример запроса
Простой диалог
{
"model": "gpt-4",
"messages": [
{
"role": "system",
"content": "Ты полезный ассистент, который всегда отвечает на русском языке."
},
{
"role": "user",
"content": "Объясни что такое искусственный интеллект"
}
],
"temperature": 0.7,
"max_tokens": 500
}
Диалог с историей
{
"model": "gpt-4",
"messages": [
{
"role": "system",
"content": "Ты эксперт по программированию"
},
{
"role": "user",
"content": "Как создать REST API?"
},
{
"role": "assistant",
"content": "REST API создается с использованием HTTP методов..."
},
{
"role": "user",
"content": "А можешь показать пример на Python?"
}
]
}
Формат ответа
Успешный ответ имеет следующую структуру:
{
"id": "chatcmpl-8sK3nF9xJ2y1zP4mN6qR7sT",
"object": "chat.completion",
"created": 1699649384,
"model": "gpt-4",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Искусственный интеллект (ИИ) - это область..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 157,
"total_tokens": 185
}
}
Поля ответа
Поле | Тип | Описание |
---|---|---|
id |
string | Уникальный идентификатор ответа |
object |
string | Тип объекта, всегда "chat.completion" |
created |
integer | Unix timestamp создания ответа |
model |
string | ID использованной модели |
choices |
array | Массив вариантов ответов |
usage |
object | Информация об использованных токенах |
Потоковая передача
Для получения ответа в режиме реального времени установите параметр
stream: true
💡 Совет: Streaming особенно полезен для улучшения пользовательского опыта,
так как позволяет показывать ответ по мере его генерации.
Пример с streaming
{
"model": "gpt-4",
"messages": [
{"role": "user", "content": "Расскажи длинную историю"}
],
"stream": true
}
Подробнее о streaming см. в разделе Потоковая передача.