Документация
Текст и чат: как использовать
Гайд по /v1/chat/completions — лимиты токенов, стриминг через SSE и usage-чанк, tools и response_format, картинки на входе (vision).
Обновлено 13 июля 2026 г.
Текстовые модели живут за POST /v1/chat/completions — контракт тот же, что
у OpenAI. В model подставляется id из /v1/models
(например, openai/gpt-5-mini или anthropic/claude-sonnet-4.6), в
messages — история диалога. Работают стриминг, tools, response_format и
картинки на входе. Деньги списываются после успешного ответа по фактическому
usage, при ошибке провайдера — не списываются.
Как отправить запрос?
Минимум — model и messages. Роли сообщений: system, user,
assistant, tool, developer. Опциональные параметры
(temperature, top_p, stop, n, seed и другие) прокидываются в модель
как есть — полный список полей в
референсе chat/completions.
Ответ — стандартный chat.completion: текст в
choices[0].message.content, расход токенов в usage.
max_tokens или max_completion_tokens?
Оба поля принимаются, шлюз сам нормализует их под семейство модели:
openai/*— в модель уходит толькоmax_completion_tokens(GPT-5 и o-серия отвергаютmax_tokens); если вы прислалиmax_tokens, мы его переименуем;- остальные семейства (
anthropic/*,google/*,deepseek/*,yandex/*) — в модель уходит толькоmax_tokens, обратное переименование тоже автоматическое.
Так что берите любое поле — старый код с max_tokens продолжит работать на
всех моделях. Одно исключение: оба поля сразу с разными значениями — это 400
invalid_request_error с указанием param.
Как стримить ответ?
stream: true — и ответ пойдёт чанками по SSE (data: {...}, в конце
data: [DONE]).
Поведение usage в стриме — как у OpenAI:
- прислали
stream_options: { "include_usage": true }— после последнего контент-чанка придёт ещё один, с пустымchoicesи заполненнымusage; - не прислали — usage-чанка не будет,
[DONE]приходит сразу после последнего контент-чанка.
Биллинг от этой опции не зависит: расход считается по фактическому usage провайдера в обоих случаях.
Работают ли tools и response_format?
Да, поля tools, tool_choice и response_format — полноценная часть
схемы и передаются модели без изменений; tool_calls в ответе тоже
проходят как есть. Важная честная оговорка: поддержка этих возможностей
зависит от конкретной модели, шлюз её не гарантирует и не эмулирует. Если
модель не умеет structured output или function calling, её ошибку вы
получите в исходном виде.
То же относится к n, seed, logprobs, frequency_penalty,
presence_penalty — прозрачный passthrough.
Как отправить картинку (vision)?
Через content parts с image_url — обычный OpenAI-формат. Подойдёт и
внешний URL, и data-URL с base64. Модель должна уметь vision (например,
openai/gpt-5, anthropic/claude-sonnet-4.6, google/gemini-2.5-flash —
смотрите пометки в каталоге моделей); text-only модель
ответит 400 unsupported_capability.
Сколько это стоит?
Тариф у каждой модели свой, единица — токены. Актуальные цены в рублях — на
странице цен для разработчиков; списание происходит
после успешного ответа по usage. Попробовать модели без кода можно в
чате на сайте — тот же каталог, тот же баланс.