Параметры
Параметры сэмплинга управляют процессом генерации токенов моделью. Вы можете отправлять любые параметры из списка ниже, а также другие — API передаёт их провайдеру как есть.
Если параметр отсутствует в запросе, модель использует значение по умолчанию (например, temperature = 1.0). Некоторые провайдеры поддерживают специфичные параметры, такие как safe_prompt для Mistral или raw_mode для Hyperbolic — они также передаются при указании.
Проверить, какие параметры поддерживает конкретная модель, можно через эндпоинт /v1/models — поле supported_parameters у каждой модели.
Параметры
Temperature
| Ключ | temperature |
| Тип | float, 0.0 до 2.0 |
| По умолчанию | 1.0 |
Влияет на разнообразие ответов. Меньшие значения делают ответы более предсказуемыми и типичными, большие — более разнообразными и неожиданными. При значении 0 модель всегда возвращает один и тот же ответ для одного входа.
Top P
| Ключ | top_p |
| Тип | float, 0.0 до 1.0 |
| По умолчанию | 1.0 |
Ограничивает выбор токенов до набора, суммарная вероятность которых составляет P. Меньшие значения делают ответы более предсказуемыми, значение по умолчанию разрешает полный набор токенов. Работает как динамический Top-K.
Top K
| Ключ | top_k |
| Тип | integer, 0 или больше |
| По умолчанию | 0 |
Ограничивает выбор токенов на каждом шаге до K наиболее вероятных. Значение 1 означает, что модель всегда выбирает самый вероятный токен. Значение 0 отключает ограничение.
Frequency Penalty
| Ключ | frequency_penalty |
| Тип | float, -2.0 до 2.0 |
| По умолчанию | 0.0 |
Штрафует токены на основе частоты их появления во входном тексте. Штраф масштабируется пропорционально количеству повторений. Отрицательные значения поощряют повторное использование токенов.
Presence Penalty
| Ключ | presence_penalty |
| Тип | float, -2.0 до 2.0 |
| По умолчанию | 0.0 |
Штрафует повторное использование токенов, которые уже встречались во входном тексте. В отличие от frequency_penalty, штраф не масштабируется от количества повторений.
Repetition Penalty
| Ключ | repetition_penalty |
| Тип | float, 0.0 до 2.0 |
| По умолчанию | 1.0 |
Снижает вероятность повторения токенов из входного текста. Слишком высокие значения могут сделать вывод менее связным. Штраф масштабируется на основе исходной вероятности токена.
Min P
| Ключ | min_p |
| Тип | float, 0.0 до 1.0 |
| По умолчанию | 0.0 |
Минимальная вероятность токена для рассмотрения, относительно вероятности самого вероятного токена. Например, при Min-P = 0.1 будут рассматриваться только токены с вероятностью не менее 1/10 от лучшего варианта.
Top A
| Ключ | top_a |
| Тип | float, 0.0 до 1.0 |
| По умолчанию | 0.0 |
Рассматривает только токены с «достаточно высокой» вероятностью на основе вероятности самого вероятного токена. Работает как динамический Top-P.
Seed
| Ключ | seed |
| Тип | integer |
Фиксирует seed для детерминированной генерации. Повторные запросы с одинаковым seed и параметрами должны возвращать одинаковый результат. Детерминированность не гарантируется для некоторых моделей.
Max Tokens
| Ключ | max_tokens |
| Тип | integer, 1 или больше |
Максимальное количество токенов в ответе модели. Значение не может превышать context_length модели минус длина промпта.
Специальное значение -1: снимает лимит выходных токенов — модель может использовать весь доступный контекст до context_length.
Max Completion Tokens
| Ключ | max_completion_tokens |
| Тип | integer, 1 или больше |
Альтернатива max_tokens для моделей, поддерживающих этот параметр (например, o1/o3 от OpenAI). Максимальное количество токенов в ответе.
Logit Bias
| Ключ | logit_bias |
| Тип | map |
Принимает JSON-объект, который сопоставляет ID токенов (в токенизаторе модели) со значением смещения от -100 до 100. Значения от -1 до 1 снижают или повышают вероятность выбора; значения -100 и 100 фактически запрещают или гарантируют выбор соответствующего токена.
Logprobs
| Ключ | logprobs |
| Тип | boolean |
Вернуть логарифмические вероятности выходных токенов. Если true, возвращает log-вероятности каждого токена.
Top Logprobs
| Ключ | top_logprobs |
| Тип | integer, 0 до 20 |
Количество наиболее вероятных токенов для возврата на каждой позиции, каждый с log-вероятностью. Требует logprobs: true.
Response Format
| Ключ | response_format |
| Тип | map |
Принудительный формат вывода:
{"type": "json_object"}— JSON-режим, модель гарантированно вернёт валидный JSON.{"type": "json_schema", "json_schema": {...}}— структурный вывод по JSON Schema.
Важно: в JSON-режиме рекомендуется также указать модели в system-сообщении, что нужно вернуть JSON.
Structured Outputs
| Ключ | structured_outputs |
| Тип | boolean |
Включает структурный вывод с использованием response_format: json_schema. Поддерживается не всеми моделями.
Stop
| Ключ | stop |
| Тип | array |
Останавливает генерацию при встрече любого из указанных токенов (строк). Можно передать до 4 стоп-слов.
Tools
| Ключ | tools |
| Тип | array |
Вызов функций (function calling), следующий формату OpenAI. Для не-OpenAI провайдеров преобразуется автоматически.
Tool Choice
| Ключ | tool_choice |
| Тип | string или object |
Управляет выбором инструмента:
| Значение | Описание |
|---|---|
"none" |
Модель не вызывает инструменты, а генерирует сообщение |
"auto" |
Модель выбирает: сообщение или вызов инструмента(ов) |
"required" |
Модель обязана вызвать хотя бы один инструмент |
{"type": "function", "function": {"name": "my_func"}} |
Принудительный вызов конкретного инструмента |
Parallel Tool Calls
| Ключ | parallel_tool_calls |
| Тип | boolean |
| По умолчанию | true |
Разрешает параллельный вызов нескольких функций. Если false, функции вызываются последовательно.
Reasoning
| Ключ | reasoning |
| Тип | map |
Управляет режимом внутренних рассуждений (thinking tokens) для моделей, которые его поддерживают:
{
"reasoning": {
"effort": "high",
"max_tokens": 2000,
"exclude": false
}
}
Параметры:
| Поле | Тип | Описание |
|---|---|---|
effort |
enum | Уровень усилий: xhigh, high, medium, low, minimal, none |
max_tokens |
integer | Максимум токенов на внутренние рассуждения |
exclude |
boolean | Исключить reasoning из ответа (если true, возвращается только финальный ответ) |
Include Reasoning
| Ключ | include_reasoning |
| Тип | boolean |
Устаревший аналог reasoning.exclude. При true токены рассуждений включаются в ответ.
Reasoning Effort
| Ключ | reasoning_effort |
| Тип | enum |
Уровень усилий для внутренних рассуждений в стиле OpenAI. Допустимые значения: xhigh, high, medium, low, minimal, none.
Web Search Options
| Ключ | web_search_options |
| Тип | map |
Настройки встроенного веб-поиска для моделей и провайдеров, поддерживающих ответы с подключением к интернету.
Verbosity
| Ключ | verbosity |
| Тип | enum |
| По умолчанию | medium |
Управляет многословностью ответа. Меньшие значения дают более краткие ответы, большие — более подробные.
Допустимые значения: low, medium, high, xhigh, max.
Для моделей Anthropic этот параметр транслируется в output_config.effort. Уровень xhigh поддерживается Anthropic Claude 4.7 Opus и новее, max — Claude 4.6 Opus и новее.
Особенности реализации
max_tokens = -1
Если передать max_tokens: -1, API использует context_length модели как максимальный лимит токенов. Это позволяет модели генерировать ответ на весь доступный контекст без ограничения.
curl https://api.ru-openrouter.ru/v1/chat/completions \
-H "Authorization: Bearer sk_ваш_api_ключ" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"messages": [{"role": "user", "content": "Напиши подробный рассказ"}],
"max_tokens": -1
}'
Проверка контекстного окна
API проверяет, что входные токены не превышают 95% от context_length модели. Это предотвращает ошибки провайдера. Если лимит превышен, возвращается ошибка input_tokens_exceeded.
{
"error": {
"message": "Input tokens exceed model context limit. Model: 'openai/gpt-4o', Context length: 128000 tokens, Input tokens: 130000 (max allowed: 121600). Reduce message length.",
"code": "input_tokens_exceeded"
}
}
Поддерживаемые параметры по моделям
Список поддерживаемых параметров для каждой модели доступен в поле supported_parameters эндпоинта /v1/models:
{
"supported_parameters": [
"tools",
"tool_choice",
"max_tokens",
"temperature",
"top_p",
"stop",
"frequency_penalty",
"presence_penalty",
"seed",
"structured_outputs",
"response_format"
]
}
Передача провайдер-специфичных параметров
Любые параметры, не указанные в этом списке, также передаются провайдеру как есть. Например, safe_prompt для Mistral или raw_mode для Hyperbolic:
curl https://api.ru-openrouter.ru/v1/chat/completions \
-H "Authorization: Bearer sk_ваш_api_ключ" \
-H "Content-Type: application/json" \
-d '{
"model": "mistral/mistral-large",
"messages": [{"role": "user", "content": "test"}],
"safe_prompt": true
}'