AI API

Оплата и детализация

Предоплата

Работа идёт с авансового счёта компании — того же, с которого оплачиваются остальные услуги VCPay. Постоплаты нет: когда средства заканчиваются, запросы перестают проходить, а не уходят в долг.

Счёт выставляется и оплачивается в разделе компании личного кабинета. Закрывающие документы приходят тем же порядком, что по другим услугам.

Как считается расход

Стоимость запроса складывается из токенов на входе и на выходе. Расход относится к тому ключу, которым сделан запрос, — поэтому ключи и стоит заводить по одному на сервис. Списание считается в долларах на стороне шлюза и переводится в рубли один раз — курс фиксируется, когда запрос тарифицируется, в ближайшие минуты после него. Этот курс сохраняется в строке детализации, так что «курс × расход» в кабинете сходится без остатка.

Три вещи, из-за которых счёт бывает больше, чем кажется по длине ответа:

  • Кешированный вход тарифицируется отдельно и дешевле обычного — это чтение кэша. Запись в кэш — отдельная операция со своей ставкой: запрос, который кэш создаёт, и запрос, который его читает, стоят по-разному, хотя оба «с кэшем». У Claude вендор различает кэш на 5 минут и на час; мы тарифицируем по той ставке, которая настроена на модели, и она одна — её и показывает каталог.
  • Размышления модели (reasoning) отдельной ставки не имеют — они считаются как выход. У Claude Opus размышления включены по умолчанию, поэтому исходящих токенов на запрос будет заметно больше, чем видно по тексту ответа. Это не ошибка счёта.
  • Округление — только для показа. Внутри расход считается с точностью до доли копейки и накапливается; в журнал списывается агрегированно, поэтому отдельная строка запроса в кабинете и сумма проводки округляются по-разному.

Посчитайте счёт сами

Ставки берутся из каталога — он открыт без ключа:

curl https://llm.vcpay.ru/v1/vcpay/models

По каждой модели приходят четыре ставки за миллион токенов: обычный вход, кешированный вход, выход и запись в кэш. Дальше арифметика прямая: каждый вид токенов умножается на свою ставку и делится на миллион.

стоимость = (обычный_вход      × ставка_входа           + кешированный_вход × ставка_кеш-чтения           + запись_в_кэш      × ставка_кеш-записи           + выход             × ставка_выхода) / 1 000 000

Токены каждого вида приходят в ответе модели, в поле usage. Две подсказки, без которых расчёт не сойдётся:

  • в completion_tokens входят размышления. У Claude Opus они включены по умолчанию, и выход окажется заметно больше видимого текста;
  • чтение и запись кэша — разные ставки. Запрос, который кэш создаёт, дороже того, который его читает, хотя оба «с кэшем».

Свой остаток и расход по ключу можно спросить у API тем же ключом, которым вы зовёте модели:

curl https://llm.vcpay.ru/v1/vcpay/balance -H "Authorization: Bearer ВАШ_КЛЮЧ"curl https://llm.vcpay.ru/v1/vcpay/stats   -H "Authorization: Bearer ВАШ_КЛЮЧ"

Как считаются эти цифры и что значит каждое поле — в справочнике: GETостаток и потолок ключа, GETрасход ключа.

Как двигается цена

Цена получается из биржевого курса USDT одним умножением:

цена за доллар потребления = биржевой курс USDT × множитель

Множитель публикуется. Его текущее значение приходит в каталоге полем sell_rate_multiplier вместе с версией тарифа, по которой он посчитан. В множитель заложены обмен валюты, комиссии приёма платежа, резерв на колебания и наша маржа — раскладку по каждой составляющей мы не публикуем, но само число вы видите и можете проверить по нему любой свой счёт.

Ход курса идёт насквозь и заранее не объявляется — это часть механизма. Об изменении множителя предупреждаем не менее чем за 14 дней. Купленные рубли остаются рублями: сколько токенов на них придётся, зависит от действующего курса.

Какая цена применится к моему запросу

Две разные величины и два разных момента, и путать их дороже всего:

  • версия тарифа — та, что действовала в момент вашего запроса. Новая версия применяется только к запросам после даты её вступления в силу; задним числом ничего не переоценивается;
  • курс — тот, что действовал в момент тарификации: запрос получает рублёвую цену в ближайшие минуты после ответа модели, и курс запоминается в его строке. Списание на счёт идёт позже и сразу за несколько запросов, но переоценить их оно уже не может.

Ставки за миллион токенов по каждой модели отдаёт каталог API, и он же источник для витрины и для кабинета — поэтому разойтись они не могут. В самом кабинете, в разделе AI API, видно уже посчитанный по этим ставкам расход.

Что видно в кабинете

  • сводка за период: запросов, входящих и исходящих токенов;
  • разрез по ключам и по моделям;
  • последние запросы с временем и моделью;
  • выгрузка построчно в CSV — по ней сверяют наш отчёт со своими логами.

Чего в детализации нет

Тел запросов и ответов. Мы их не храним — ни в журнале, ни в отчёте, ни в выгрузке. Подробнее — Границы продукта.