Параметры chat completions
Как настраивать /v1/chat/completions в GonkaGate: что менять сначала, что делают основные поля и когда нужны JSON-ответы или tool calling.
Настраивайте /v1/chat/completions по одному полю за раз. Начинайте с temperature для характера ответа или max_tokens для длины. К response_format, tools, tool_choice и полям для отладки на уровне токенов переходите только когда нужны structured outputs, вызовы функций или отладка.
Минимальный рабочий пример
export GONKAGATE_API_KEY="gp-your-api-key"
curl https://api.gonkagate.com/v1/chat/completions \
-H "Authorization: Bearer $GONKAGATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen3-235b-a22b-instruct-2507-fp8",
"messages": [
{
"role": "user",
"content": "Explain idempotency keys in 3 short bullets."
}
],
"temperature": 0.2,
"max_tokens": 180
}'Ожидаемый результат: форма запроса не меняется, но ответ обычно становится стабильнее и реже уходит в лишнюю длину.
temperatureделает ответ стабильнее.max_tokensограничивает длину ответа.- Перед продакшеном замените пример
modelна актуальный ID изGET /v1/models.
Как выбрать нужную группу параметров
- Более стабильный или более вариативный текст: начните с
temperatureилиtop_p. Эти поля меняют sampling. - Более короткий или ограниченный ответ: начните с
max_tokensилиstop. Эти поля управляют длиной и условиями остановки. - Меньше повторов: начните с
frequency_penaltyилиpresence_penalty. Эти поля уменьшают повторение токенов или подталкивают модель к новым формулировкам. - Машиночитаемый ответ: начните с
response_format. Это меняет контракт ответа, а не только стиль текста. - Вызов функций из вашего приложения: начните с
toolsиtool_choice. Модель сможет запросить именованную функцию. - Воспроизводимость или отладка по токенам: начните с
seed,logprobsилиtop_logprobs. Эти поля полезны для отладки, оценки и сравнения ответов.
Что меняют основные поля
Sampling и борьба с повторами
| Поле | Тип | Что меняет | Примечание |
|---|---|---|---|
temperature | number | Случайность и вариативность | 0-2 |
top_p | number | Nucleus sampling | 0-1 |
frequency_penalty | number | Штрафует токены, которые часто повторяются | -2 до 2 |
presence_penalty | number | Штрафует токены, которые уже появлялись | -2 до 2 |
stop | string или array | Останавливает генерацию по одной или нескольким stop-последовательностям | Полезно, когда приложению уже известен нужный разделитель или граница. |
Меняйте по одному семейству sampling-параметров. Если вы уже настраиваете temperature, не добавляйте одновременно top_p, penalties и stop, если только это не нужно для одного очень конкретного контракта.
Длина ответа, воспроизводимость и отладка
| Поле | Тип | Что меняет | Примечание |
|---|---|---|---|
max_tokens | integer | Верхнюю границу генерации | Задавайте его заранее, если длина ответа важна. Значение должно быть не меньше 1. |
seed | integer | Воспроизводимость на best-effort основе | Удобно для тестов и сравнений, но одинаковый результат гарантируется не у каждой модели. |
logprobs | boolean | Возвращает log probabilities токенов | Полезно для анализа и оценки. |
top_logprobs | integer | Возвращает самые вероятные альтернативные токены на каждой позиции | 0-20, имеет смысл только вместе с logprobs: true. |
Формат ответа и tool calling
| Поле | Тип | Что меняет | Примечание |
|---|---|---|---|
response_format | object | Просит модель вернуть JSON или другой structured format | Поддержка зависит от выбранной пары model/provider. |
tools | array | Описывает функции, которые модель может вызвать | Используйте стандартную OpenAI-совместимую форму tool calling. |
tool_choice | string или object | Управляет тем, может ли модель вызвать tool и какой именно | Используйте required или конкретную функцию, если вызов обязателен. |
GonkaGate сохраняет OpenAI-совместимость для /v1/chat/completions, но возможности вроде structured outputs и tool calling всё равно зависят от выбранной пары model/provider.
Для точной схемы тела запроса, правил валидации, структуры ответа и GonkaGate-специфичных полей запроса используйте Создать chat completion.
Частые ошибки
- Менять sampling, penalties, формат ответа и настройки tool calling в одном тесте, а потом не понимать, какое поле изменило результат.
- Считать
response_format,toolsилиtool_choiceкосметическими настройками. Эти поля меняют то, как приложение потребляет ответ. - Указывать
top_logprobsбезlogprobs: true. - Считать, что structured outputs и tool calling одинаково работают на любой паре model/provider.
- Не задавать
max_tokens, когда длина ответа важна для работы приложения.
См. также
- Создать chat completion для полной схемы запроса, структуры ответа и правил валидации.
- Structured Outputs для JSON-ответов и схем.
- Tool Calling для циклов вызова функций.
- Стриминг ответов для
stream: trueи SSE.