GETAPI
СвязатьсяВойти
GETAPI/Документация/Chat Completions

Chat Completions

Создание ответа модели по истории сообщений

Создаёт ответ на основе массива сообщений

POST https://api.getapi.ru/v1/chat/completions

Заголовки

ЗаголовокЗначение
AuthorizationBearer <GETAPI_API_KEY>
Content-Typeapplication/json

Параметры запроса

ПолеТипОбязательноеОписание
modelstringДаИдентификатор из каталога
messagesarrayДаИстория сообщений в порядке диалога
max_tokensintegerНетЗапрашиваемый предел выходных токенов, включая рассуждения
max_completion_tokensintegerНетАльтернативное имя лимита для совместимых моделей
streambooleanНетВключает поток SSE
stream_options.include_usagebooleanНетЗапрашивает счётчики в потоке
temperature, top_pnumberНетПараметры генерации, диапазон и поддержка зависят от модели
stopstring или string[]НетСтоп-последовательности
nintegerНетЧисло вариантов, часть моделей возвращает один
toolsarrayНетОписания доступных функций
tool_choicestring или objectНетПравило выбора инструмента
parallel_tool_callsbooleanНетРазрешение нескольких вызовов, если модель поддерживает этот режим
response_formatobjectНетJSON-режим или JSON Schema
reasoning, reasoning_effortobject, stringНетНастройки рассуждений, зависят от модели
seedintegerНетНачальное значение генерации, не гарантия идентичного текста
verbositystringНетПодробность ответа, допустимые значения зависят от модели и провайдера
logprobs, top_logprobsboolean, integerНетВероятности токенов для моделей с этой возможностью
providerobjectНетВыбор исполнителя модели и правила переключения между провайдерами

Передавайте один параметр лимита вывода Значение 0 не используйте как способ запретить генерацию Лимит токенов не заменяет контроль расходов, см. рассуждения

Наличие параметра в каталоге не означает поддержку всех его значений. Для gpt-5.1-codex-max у Azure используйте verbosity: "medium", значение low отклоняется провайдером

Успешный HTTP-ответ не подтверждает действие каждого параметра. При запросе logprobs проверяйте choices[].logprobs, поле может остаться null

У gpt-4o-mini, gpt-5-nano, claude-sonnet-5.5 и gemini-2.5-flash-lite запрос с n: 2 возвращает один вариант, проверяйте длину choices

gpt-5-nano может вернуть текст вместе с переданной стоп-последовательностью. Если остановка по stop обязательна для приложения, проверьте результат и обработайте последовательность на своей стороне

Выбор провайдера

Модели доступны через OpenRouter. Одна модель может выполняться у нескольких провайдеров с разными ценами и ограничениями

Передайте provider в теле запроса. Идентификатор модели сохраняется таким, каким его вернул GET /v1/models

json
{
  "model": "gpt-4o-mini",
  "messages": [{"role": "user", "content": "Ответь одним словом: привет"}],
  "max_tokens": 32,
  "provider": {
    "only": ["openai"],
    "allow_fallbacks": false
  }
}

only ограничивает список исполнителей. Для Azure используется azure. Название семейства модели и провайдер исполнения могут различаться

Поле provider в ответе показывает фактического исполнителя, если маршрут его возвращает. Сохраните также id ответа и идентификатор запроса для сверки с журналом

Список провайдеров конкретной модели и остальные настройки: OpenRouter и выбор провайдера

Объект сообщения

ПолеТипОписание
rolestringsystem, user, assistant, tool; роль developer зависит от модели
contentstring, array или nullТекст или блоки содержимого
tool_callsarrayВызовы функций в сообщении assistant
tool_call_idstringИдентификатор вызова для сообщения tool

Для истории передавайте предыдущие сообщения вместе с новым вопросом Изображения задаются блоками image_url, см. изображения

Пример запроса

bash
curl https://api.getapi.ru/v1/chat/completions \
  -H "Authorization: Bearer $GETAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4.1-mini",
    "messages": [
      {"role": "system", "content": "Отвечай кратко"},
      {"role": "user", "content": "Что такое API?"}
    ],
    "max_tokens": 128
  }'

Пример ответа

json
{
  "id": "chatcmpl-example",
  "object": "chat.completion",
  "created": 1789673637,
  "model": "gpt-4.1-mini-2025-04-14",
  "choices": [
    {
      "index": 0,
      "message": {"role": "assistant", "content": "API позволяет приложениям обмениваться данными"},
      "finish_reason": "stop"
    }
  ],
  "usage": {"prompt_tokens": 20, "completion_tokens": 12, "total_tokens": 32}
}

Поля ответа

ПолеТипОписание
idstringИдентификатор ответа
objectstringchat.completion
createdintegerВремя создания в Unix-секундах
modelstringИмя или версия модели в ответе
choicesarrayВарианты результата
choices[].indexintegerИндекс варианта
choices[].messageobjectСообщение модели
choices[].finish_reasonstring или nullПричина завершения
usageobjectРасход входных, выходных и всех токенов

Имя модели в ответе может отличаться от идентификатора запроса Поля refusal, annotations, logprobs, reasoning и reasoning_content зависят от модели и могут отсутствовать

Завершение генерации

ЗначениеЗначение для клиента
stopГенерация завершена
lengthИсчерпан лимит вывода
tool_callsТребуется обработать вызовы инструментов

Наличие вызова определяйте по message.tool_calls, одного finish_reason недостаточно Пустой content допустим при вызове инструмента или исчерпании бюджета рассуждений

Ошибки

Без messages или model сервис возвращает 400 Неверный ключ вызывает 401, несовместимый класс модели может вызвать 403 Для 503 с model_not_found исправьте идентификатор по каталогу

Все ошибки, поток, инструменты, JSON Schema

Назад
← Форматы API
Далее
Messages →