К содержимому
Разделы документации

Цены в ответе

Где в ответах Konductor стоимость запроса и версия тарифа, и как не заплатить по чужим ценам: price_version и max_cost_rub.

Konductor пишет цену в сам ответ и в заголовок, так что стоимость запроса не нужно считать по таблице. Здесь — где её искать и как защитить запрос от смены тарифа.

Стоимость запроса

Сколько рублей списано за запрос, лежит в usage.cost_rub. Значение — строка с двумя знаками после точки.

ФорматГде поле
/v1/chat/completionsusage.cost_rub ответа; при stream=true — в части с usage
/v1/messagesusage.cost_rub ответа; при потоке — в событиях с usage
/v1/responsesusage.cost_rub внутри response; при потоке — в событии response.completed

Если запрос завершился ошибкой до ответа модели, cost_rub не придёт: деньги не списаны. Итог по уже выполненному запросу можно запросить по id ответа (для /v1/messages он же в заголовке X-Generation-Id) методом GET /v1/generation/{id}: там cost_rub, input_tokens, output_tokens и price_version_id.

Версия тарифа

Цены действуют по версии тарифа. Её номер Konductor возвращает в заголовке X-Price-Version ответа на запрос модели. Тот же номер лежит в поле price_version.id ответа GET /v1/models вместе с ценами за 1 млн токенов.

Защита от смены цены

Два необязательных поля в теле запроса не дают заплатить не по тем ценам:

  • price_version — версия тарифа, по которой ты считал стоимость. Если действует другая, Konductor ответит 409 с кодом price_version_mismatch, не отправит запрос модели и ничего не спишет. В ответе будет действующая версия.
  • max_cost_rub — потолок стоимости запроса в рублях, например "15.00". Если потолок возможной стоимости (по входу и max_tokens) выше, Konductor ответит 409 с кодом max_cost_exceeded и тоже ничего не спишет.
bash
curl https://llm.kodzavod.ru/v1/chat/completions \
  -H "Authorization: Bearer $KONDUCTOR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"<идентификатор модели>","messages":[{"role":"user","content":"Привет"}],"max_tokens":256,"max_cost_rub":"15.00"}'

В /v1/responses потолок ответа задаётся полем max_output_tokens, поля price_version и max_cost_rub те же.

Если запрос не прошёл

Коды 402, 403 и 429 разобраны на странице Ошибки 402, 403 и 429. Все поля и ответы — в справочнике API.

Стоимость каждого запроса округляется вверх до целой копейки, минимум — копейка.

Эта страница в Markdown для ИИ-ассистентов — prices-in-response.md. Для генераторов SDK — openapi.json. Изменения API — в журнале изменений.