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

Стандартные OpenAI-параметры и расширения KodikRouter

Шлюз принимает все стандартные параметры POST /v1/chat/completions и добавляет несколько собственных для управления маршрутизацией и безопасностью.

Стандартные параметры (OpenAI-compatible)

modelreq
string
ID модели в формате provider/model-name
messagesreq
array
Массив сообщений (system, user, assistant, tool)
stream
boolean
Включить стриминг через Server-Sent Eventsdefault: false
temperature
number
Креативность: 0 — детерминированный, 2 — максимально случайныйdefault: 1.0
top_p
number
Nucleus sampling. Используйте вместо temperature, не обеdefault: 1.0
max_tokens
integer
Максимум токенов в ответе (ограничено лимитом модели)
stop
string|array
Стоп-последовательности, до 4-х
response_format
object
JSON / JSON Schema для структурированного вывода
tools
array
Массив инструментов (функций), доступных модели
tool_choice
string|object
"auto" | "none" | "required" | конкретный инструментdefault: "auto"
presence_penalty
number
Штраф за повторение тем (−2…2)default: 0
frequency_penalty
number
Штраф за повторение токенов (−2…2)default: 0
seed
integer
Детерминизм (best-effort, зависит от провайдера)
user
string
Идентификатор конечного пользователя для аналитики

Расширения KodikRouter

provider
object
Настройки маршрутизации: allow_fallbacks, only, ignore
route
string
"fallback" — пробовать models[] по порядку
models
array
Список моделей для fallback-цепочки (строки или объекты с весами)
plugins
array
Плагины шлюза: file-parser, web-search, guardrails

Пример полного запроса

json
{
  "model": "anthropic/claude-sonnet-4",
  "messages": [
    {"role": "system", "content": "You are a concise assistant."},
    {"role": "user", "content": "Объясни event loop одним абзацем."}
  ],
  "temperature": 0.3,
  "max_tokens": 512,
  "stream": false,
  "route": "fallback",
  "models": [
    "anthropic/claude-sonnet-4",
    "openai/gpt-4o",
    "meta-llama/llama-3.1-70b-instruct"
  ],
  "provider": {
    "allow_fallbacks": true,
    "ignore": ["azure"]
  },
  "user": "user_123"
}

Response headers

Шлюз добавляет в каждый ответ служебные заголовки:

X-KodikRouter-Request-IdУникальный ID запроса (для support и трейсинга)
X-KodikRouter-ProviderПровайдер, который фактически обработал запрос
X-KodikRouter-Masked-Entity-CountСколько PII-сущностей замаскировано
X-KodikRouter-Latency-Mask-MsВремя, затраченное на маскирование (обычно <20мс)
X-RateLimit-LimitЛимит запросов в минуту для ключа
X-RateLimit-RemainingСколько запросов осталось в текущем окне
X-RateLimit-ResetUnix-timestamp сброса окна
Сохраняйте X-KodikRouter-Request-Id
Этот заголовок — единственный способ точно идентифицировать запрос в логах и обращениях в поддержку.