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 см. в разделе Потоковая передача.

Назад
Совместимость с OpenAI
Вперёд
Потоковая передача