Как рассчитать стоимость AI API по токенам
Бюджет AI-функции нельзя оценивать по числу сообщений. Считаются токены — вход, выход и ставки модели, — а диалоги, повторы и контекст умножают счёт. Разберём формулу и места, где деньги утекают чаще всего.
Формула без магии
Стоимость запроса — это входные токены, умноженные на ставку входа, плюс выходные токены, умноженные на ставку выхода, всё делённое на миллион. Ставки у каждой модели свои и со временем меняются.
Пример для калибровки интуиции: 2 000 входных токенов при ставке 0,50 и 500 выходных при ставке 1,00 дают 0,001 + 0,0005 = 0,0015 до округления. Свои цифры подставляйте из каталога, не из памяти.
- input и output считаются отдельно
- ставки только из актуального каталога
- итог сверять с usage, а не с оценкой
Считайте операцию, а не сообщение
Пользователь видит одно сообщение, биллинг видит всё: системные инструкции, retrieved-контекст, повторные попытки, форматирование ответа. Операция «ответ поддержки» — это 3–5 запросов, а не один.
Оценивайте медиану и 95-й перцентиль полной операции. Среднее врёт: один тяжёлый диалог перекрывает сотню лёгких.
Почему диалог дорожает сам
Каждое новое сообщение тащит во вход всю историю. Десятый вопрос диалога может стоить в разы дороже первого при одинаковом размере нового текста — контекст растёт, ставка та же.
Лечится окном из последних сообщений и суммаризацией старого. Резать нужно именно вход: выход модели вы контролируете лимитом длины, вход — только дисциплиной контекста.
Кеш — не скидка из воздуха
Если каталог показывает отдельные cached rates, они применяются только к подтверждённому cached usage. Умножать базовую цену на процент кеширования и ждать такой счёт — ошибка: фактическую структуру usage это не повторяет.
Кеш выигрывает на повторяющихся системных промптах и RAG с горячими чанками. На разовых диалогах его вклад близок к нулю — не закладывайте его в бюджет.
Картинки считаются отдельно
У image-моделей фиксированная цена за генерацию, токенные ставки текстовых моделей к ним неприменимы. Не смешивайте две арифметики в одной таблице — получите красивый и неверный бюджет.
В интерфейсе разводите строки: «генерации» и «токены» отдельно. Повторы после ошибок тоже стоят денег и тоже считаются.
Таблица перед запуском
Сведите экономику в одну таблицу и храните рядом с кодом. При смене модели таблица пересчитывается первой — до изменения кода, а не после сюрприза в истории списаний.
- model ID и endpoint
- медиана входа и выхода
- ставка входа и выхода из каталога
- цена типовой операции
- X-Request-Id тестовых запросов
Сверяйтесь с историей
Предварительная оценка считает максимум ответа, списываются реально обработанные токены. После запроса сверьте input/output usage и финальную сумму в истории личного кабинета.
Расхождение оценки и факта — это баг в вашем подсчёте контекста, а не в биллинге. Ищите лишний контекст, а не ошибку провайдера.
- сравнивать оценку с usage
- сохранять X-Request-Id
- пересчитывать при смене модели
Открыть эту статью в Markdown·Поделиться в Telegram
Следующий материалAI API-провайдеры России: сравнение