Разделы документации
Журнал операций и баланс
Как устроен предоплаченный баланс в токенах, какие бывают записи журнала, когда происходит списание и что делать при 402
Как устроен баланс
Баланс предоплаченный и считается в токенах. Вы заранее пополняете его, а каждый вызов API уменьшает остаток ровно на столько токенов, сколько реально израсходовал запрос.
- Баланс общий на аккаунт. Все ключи sk-libra-… (их может быть до 10) тратят один и тот же остаток — отдельного кошелька у ключа нет.
- Ключи различаются только лимитами скорости: 120 запросов в минуту и 1 000 000 токенов в минуту на ключ. К деньгам эти лимиты отношения не имеют.
- Минимальное пополнение — 1 млн токенов, 450 ₽ за 1 млн.
- Любое изменение остатка попадает в журнал операций: видно, когда, на сколько и почему изменился баланс.
Стоимость токена зависит от модели и от того, входной он, выходной или прочитан из кеша. Действующие ставки за 1 млн токенов:
| Модель | Вход | Кеш | Выход |
|---|---|---|---|
| libra-fast | 337,50 ₽ | 54 ₽ | 675 ₽ |
| libra-pro | 450 ₽ | 72 ₽ | 900 ₽ |
Типы записей журнала
| Тип | Что означает | Знак |
|---|---|---|
| Пополнение | Вы оплатили пакет токенов, он зачислен на аккаунт | плюс |
| Расход | Списание за выполненный запрос к API | минус |
| Начисление | Токены выданы без оплаты: бонус, компенсация, стартовый пакет | плюс |
| Возврат | Обратное движение по ранее списанной или оплаченной операции | плюс |
У записи расхода видно, какой моделью и каким ключом сделан запрос, сколько токенов ушло на вход, сколько на выход и сколько было прочитано из кеша. У пополнения и возврата видны сумма в рублях и объём токенов.
Когда происходит списание
Списание идёт по факту — после того как модель закончила отвечать. Заранее ничего не резервируется и не блокируется, значение max_tokens на баланс не влияет: вы платите только за то, что действительно израсходовано.
- Обычный запрос: расход записывается сразу после формирования ответа, ровно по блоку usage из тела ответа.
- Стриминг: расход записывается после того, как поток закрылся строкой data: [DONE]. В последнем фрагменте массив choices пустой, зато есть usage — это те же цифры, по которым прошло списание.
- Оборванное соединение: если поток прервался на середине, списываются токены, которые модель успела сгенерировать.
- Ошибка на стороне сервиса (502 upstream_error) списания не создаёт.
- Одна запись журнала соответствует одному запросу — сверять счёт можно построчно по usage.
Именно эти три числа попадают в журнал. Сумма total_tokens и есть величина списания с баланса.
Что будет при нехватке средств
Если на аккаунте не хватает токенов, запрос не выполняется: модель не вызывается, ответ не генерируется, списания не происходит. Сервис возвращает 402 insufficient_balance.
- 402 получат все ключи аккаунта сразу — баланс один на всех.
- Повторять запрос без пополнения бессмысленно: ответ будет тем же.
- В клиенте разумно обрабатывать 402 отдельно от 429 rate_limited: 429 проходит сам по времени, 402 — нет.
- После пополнения запросы начинают проходить без пересоздания ключей.
Где смотреть
Текущий остаток и журнал операций доступны в кабинете: Настройки → API. Там же видно расход по ключам и по моделям и можно пополнить баланс.
- Остаток в токенах и дата последнего пополнения — вверху раздела.
- Журнал операций — список записей с типом, датой, объёмом токенов и ключом.
- Ключи sk-libra-… — до 10 на аккаунт; при попытке создать одиннадцатый API вернёт 409 too_many_keys.
- Чтобы разделить расходы между проектами, заведите отдельные ключи: остаток общий, но расход в журнале будет виден по каждому ключу.