ЦАРЬ РОУТЕР

Сколько стоит запрос

Цена каждого запроса в usage.cost_rub и заголовке X-Cost-Rub, программный прайс GET /v1/models/info, правила тарификации и кэш промпта

Цена уже посчитана за вас: каждый успешный ответ несёт списанную сумму в рублях. Смотреть её можно в трёх местах:

ГдеКогда
usage.cost_rub в теле ответавсе эндпоинты с JSON-ответом
Заголовок X-Cost-Rubответы, где цена известна к моменту отдачи; для ответов без JSON-тела - единственный источник
«Использование» в личном кабинетеистория и агрегаты по всем запросам

usage.cost_rub

Итоговая сумма списания в рублях, с точностью до микрорубля:

{
  "usage": {
    "prompt_tokens": 27,
    "completion_tokens": 323,
    "total_tokens": 350,
    "cost_rub": 0.40138
  }
}

Состав usage зависит от эндпоинта: у чата - токены, у распознавания речи и тональности - seconds, у генерации изображений - requests, у классификации - units. Поле cost_rub есть везде.

В потоковом режиме цена приходит только если запросить usage:

{"stream": true, "stream_options": {"include_usage": true}}

Тогда cost_rub будет в финальном usage-чанке (с finish_reason или завершающем чанке с пустым choices). Без include_usage цену стрима в ответе не узнать - только в личном кабинете.

Заголовок X-Cost-Rub

Та же сумма десятичной строкой (X-Cost-Rub: 0.40138). Для двух случаев это единственный способ узнать цену - тела под usage там нет:

  • /v1/audio/speech - ответ бинарный (аудиофайл);
  • /v1/audio/transcriptions с response_format=text|srt|vtt - ответ сырым текстом.

Явный 0 - бесплатный запрос. В потоковом режиме заголовка нет: заголовки уходят раньше, чем известна цена, - смотрите usage-чанк.

Программный прайс: GET /v1/models/info

Публичный (без ключа) каталог всех моделей с ценами - то же, что страница «Модели», но машиночитаемо:

curl https://api.tsarrouter.ru/v1/models/info

У каждой модели - тип, контекст, возможности и каналы-провайдеры с ценами:

{
  "id": "sber/gigachat-2-max",
  "type": "text",
  "context_window": 131072,
  "providers": [{
    "provider": "sber",
    "status": "ok",
    "pricing": {"prompt": 650.0, "completion": 650.0, "currency": "RUB", "unit": "1M tokens"},
    "prompt_cache": {"price": 0.0, "input_price": 650.0, "unit": "1M tokens", "free": true}
  }]
}
  • pricing.prompt / pricing.completion - ₽ за 1M токенов входа/выхода. У поштучных и посекундных тарифов вместо них per_request / per_second, единица - в unit.
  • prompt_cache - ставка канала за кэшированный вход; free: true - кэш бесплатен.
  • billing_rule (у модели) - правило округления тарифа (см. ниже).
  • addons (у модели) - платные дополнения (например, диаризация у распознавания речи) с надбавкой per_second.

Правила тарификации: блок, минимум, округление

Посекундные тарифы (распознавание речи) считают не длительность файла, а биллинговые секунды по правилу модели - billing_rule в /v1/models/info:

  • {"mode": "block", "seconds": 15} - вверх до кратного блоку: файл 41 с тарифицируется как 45 с;
  • {"mode": "minimum", "seconds": 15} - не меньше минимума, дальше вверх до целой секунды;
  • round_kopeck: true - итог дополнительно округляется вверх до копейки.

Именно биллинговые секунды приходят в usage.seconds - поэтому они могут быть больше длительности записи, это не обсчёт.

В потоковом распознавании блок и минимум считаются на сессию целиком, а не на каждую фразу: при блоке 15 с первая фраза на 3 с тарифицируется как 15 с, вторая такая же - уже 0 ₽. К каждой фразе добавляется ~0.6 с технической тишины - она входит в usage.seconds. Сумма cost_rub событий completed равна списанию за завершённые фразы сессии.

Кэш промпта

Если канал кэширует повторяющееся начало промпта, попавшие в кэш входные токены считаются по ставке prompt_cache (у Sber кэш бесплатен), остальные - по полной. Сколько токенов пришло из кэша - в ответе:

{"usage": {"prompt_tokens_details": {"cached_tokens": 1024}}}

Нюансы:

  • кэш-ставки нет у поштучных (per_request) и посекундных (per_second) тарифов;
  • если поток оборвался до usage-чанка, кэш учесть не из чего - вход списывается по полной ставке;
  • каналы с кэшем отмечены значком «Кэш» в каталоге.

Резерв средств в потоковых режимах

На старте стрима на балансе резервируется верхняя оценка стоимости, по завершении списывается фактическая - излишек возвращается сразу. Не хватает даже на резерв - 402 до старта потока. В потоковом распознавании резервируется аудио-бюджет сессии: при нехватке средств он сжимается до доступного, а если доступного меньше 10 секунд аудио - отказ кодом 4003.

На этой странице

Редактировать на GitVerse