Chat completions
Запрос и ответ POST /api/v1/chat/completions, сообщения и роли, причины завершения.
У роутера один эндпоинт генерации — 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 }
}
}| Поле | Значение |
|---|---|
id | ID генерации. По нему запрос можно найти через 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. См. Потоковый ответ.