Перейти к содержимому

Chat completions

Запрос и ответ POST /api/v1/chat/completions, сообщения и роли, причины завершения.

Открыть .md

У роутера один эндпоинт генерации — POST /api/v1/chat/completions в формате OpenAI Chat Completions. Форматы prompt и input не поддерживаются: передавайте messages.

Запрос

{
  "model": "google/gemma-3-4b-it",
  "messages": [
    { "role": "system", "content": "You answer in one sentence." },
    { "role": "user", "content": "What is a router?" }
  ],
  "max_tokens": 200,
  "temperature": 0.7
}
  • model — ID модели из каталога. Вместо одной модели можно передать список резервных моделей в models, см. Модели и маршрутизация.
  • messages — непустой массив; у каждого сообщения должна быть role.
  • Все остальные поля описаны в разделе Параметры.

Сообщения и роли

РольНазначение
systemИнструкции для модели. Некоторые модели также принимают developer.
userСообщение пользователя: текст или массив частей с изображениями и файлами, см. Изображения и файлы.
assistantПредыдущие ответы модели, включая ее tool_calls.
toolРезультат вызова инструмента с tool_call_id, на который он отвечает. См. Вызов инструментов.

API не хранит состояние: передавайте весь диалог в каждом запросе. Все, что вы отправляете, оплачивается как входные токены.

Ответ

{
  "id": "gen-5d0c3b6e-…",
  "object": "chat.completion",
  "created": 1793178000,
  "model": "google/gemma-3-4b-it",
  "provider": "Google",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "native_finish_reason": "STOP",
      "message": { "role": "assistant", "content": "A router forwards each request to a model that can serve it." }
    }
  ],
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 14,
    "total_tokens": 38,
    "cost": 0.0000146,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 0 }
  }
}
ПолеЗначение
idID генерации. По нему запрос можно найти через GET /api/v1/generation?id=… или в логах кабинета.
modelМодель, которая ответила. Со списком models это может быть резервная модель.
providerГде размещена модель: провайдер в регионе Глобальный, Russia в регионе Россия.
usage.costСтоимость запроса в PnP.

Причины завершения

finish_reason нормализован; native_finish_reason сохраняет исходное значение провайдера (только в ответах без потока).

ЗначениеЧто значит
stopМодель закончила ответ или встретила стоп-последовательность.
lengthОтвет достиг max_tokens (4096, если вы не задали значение) или лимита модели.
tool_callsМодель хочет вызвать инструменты.
content_filterПровайдер отфильтровал ответ.
errorГенерация прервалась на середине; см. Потоковый ответ.

Потоковый ответ

Добавьте "stream": true, чтобы получать ответ по мере генерации в виде server-sent events. См. Потоковый ответ.