Разделы документации
Цены в ответе
Где в ответах Konductor стоимость запроса и версия тарифа, и как не заплатить по чужим ценам: price_version и max_cost_rub.
Konductor пишет цену в сам ответ и в заголовок, так что стоимость запроса не нужно считать по таблице. Здесь — где её искать и как защитить запрос от смены тарифа.
Стоимость запроса
Сколько рублей списано за запрос, лежит в usage.cost_rub. Значение — строка с двумя знаками после точки.
| Формат | Где поле |
|---|---|
/v1/chat/completions | usage.cost_rub ответа; при stream=true — в части с usage |
/v1/messages | usage.cost_rub ответа; при потоке — в событиях с usage |
/v1/responses | usage.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и тоже ничего не спишет.
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 — в журнале изменений.