Технологии

Как считать стоимость запросов к модели

У ассистента с памятью счёт формирует не ваш вопрос, а контекст, который приложение подмешивает к нему. Разбираем формулу по компонентам и считаем месяц.

Вопрос звучит так: «я задаю модели вопрос из десяти слов — почему в кабинете провайдера за него списывается как за несколько страниц текста?»

#Короткий ответ

Потому что модель не помнит ничего между вызовами. Каждый ваш вопрос отправляется вместе со всем, что нужно для ответа: системной инструкцией, историей диалога и найденными фрагментами вашей памяти. Всё это — входные токены, и вы платите за них каждый раз заново. Ваш вопрос в этой сумме занимает доли процента. Управлять счётом, сокращая вопросы, поэтому бессмысленно; управлять им можно, сокращая то, что подмешивается.

#Как устроена формула

Провайдеры тарифицируют две величины по разным ценам:

счёт = входные_токены × цена_входа + выходные_токены × цена_выхода

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

Что такое токен и почему он не равен слову — в справке про то, что такое токен. Практически важно одно следствие: русский текст режется на заметно большее число токенов, чем английский того же смысла. Множитель зависит от токенизатора конкретной модели, и проверять его нужно на своём тексте, а не брать из статьи. Для русскоязычного ассистента это означает систематически более высокий счёт при одинаковом объёме работы — деталь, которую англоязычные калькуляторы стоимости не учитывают; подробнее в материале про ИИ-ассистента на русском языке.

#Из чего складывается вход одного запроса

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

Компонент Токенов Доля Управляемость
Системная инструкция ~700 12% высокая
История диалога ~1800 31% высокая
Найденные фрагменты памяти ~3200 56% высокая
Ваш вопрос ~40 0,7% никакой

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

Отсюда главный практический вывод всей статьи: экономия достигается настройкой того, сколько контекста подмешивается, а не дисциплиной в формулировках.

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

#Считаем месяц

Профиль: 30 обращений в день, вход около 6000 токенов на обращение, ответ около 400 токенов.

вход в день    = 30 × 6000 = 180 000
выход в день   = 30 ×  400 =  12 000

вход за месяц  = 5 400 000  ≈ 5,4 млн токенов
выход за месяц =   360 000  ≈ 0,36 млн токенов

счёт = 5,4 × ЦЕНА_ВХОДА + 0,36 × ЦЕНА_ВЫХОДА

Соотношение входа к выходу здесь пятнадцать к одному. У короткого чата без памяти оно было бы ближе к двум к одному. Разницу создаёт именно память.

Что происходит при изменении профиля:

  • Удвоили объём подмешиваемой памяти — счёт вырос почти вдвое, при том же числе вопросов.
  • Перешли на модель с рассуждением — вырос выход, а он дороже. Множитель зависит от задачи.
  • Включили агентный режим — один ваш вопрос превращается в несколько вызовов, каждый со своим полным контекстом. Рост кратный, а не процентный.
  • Стали задавать вдвое больше вопросов — счёт вырос вдвое. Это самый очевидный и самый безобидный из четырёх сценариев.

#Что из этого следует на практике

Сначала измерьте, потом оптимизируйте. В кабинете провайдера видно количество входных токенов на запрос. Один короткий вопрос покажет реальный размер вашего контекста лучше любых оценок. Если на «привет» уходит десять тысяч входных токенов, вы нашли свою проблему.

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

Обрезайте историю диалога. Полная история длинного разговора отправляется заново с каждой репликой. Ограничение по числу последних сообщений даёт линейную экономию.

Проверьте, есть ли у провайдера кэширование входа. Часть провайдеров тарифицирует повторяющуюся начальную часть запроса дешевле, если она не менялась. Для ассистента с постоянной системной инструкцией это заметная экономия, но механизм есть не у всех и включается по-разному — смотрите документацию.

Разделите модели по задачам. Дорогая модель для сложного, дешёвая для бытового. Экономия здесь больше, чем от любых манипуляций с длиной промпта.

Поставьте потолок расходов. Расчёт защищает от постепенного роста, но не от аварии. Механизмы защиты собраны в статье про то, как не слить бюджет на API.

#Где интуиция подводит

«Длинный вопрос стоит дорого». Ваш вопрос почти ничего не стоит. Дорого стоит то, что приложение добавляет к нему без вашего участия.

«Длинное окно контекста — это возможность, а не расход». Окно на миллион токенов не означает, что его нужно заполнять. Каждый отправленный токен тарифицируется, даже если модель его почти не использовала. Подробнее об этом — в материале про контекстное окно на миллион токенов.

«Ответ дороже вопроса, значит экономить надо на ответах». Цена за токен выхода действительно выше, но токенов входа у ассистента с памятью в десять-двадцать раз больше. Итоговая сумма определяется входом.

«Бесплатный уровень снимает вопрос стоимости». Он переносит его в другую валюту: вместо денег вы тратите квоту, и квота кончается по тем же законам. Расчёт остаётся тем же, меняется только единица измерения — подробности в разборе бесплатных API языковых моделей.

«Локальная модель бесплатна». У неё нет счёта за токены, но есть стоимость железа, электричества и вашего времени на настройку, а также цена в качестве ответов. Полный подсчёт с обеих сторон — в материале про стоимость личного ИИ.

#Частые вопросы

#Как узнать, сколько токенов в моём тексте?

У большинства провайдеров есть счётчик токенов в документации или отдельный метод API, а в кабинете видно фактический расход по каждому запросу. Грубая прикидка для русского текста даёт больше токенов, чем для английского того же содержания, поэтому англоязычные онлайн-калькуляторы систематически занижают оценку.

#Почему один и тот же вопрос стоит по-разному в разные дни?

Меняется не вопрос, а контекст вокруг него: история диалога длиннее, поиск по памяти нашёл больше фрагментов, системная инструкция обновилась. Ассистент, который накапливает память, дорожает со временем сам по себе, если объём выборки ничем не ограничен.

#Считаются ли токены, если ответ оборвался ошибкой?

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

#Дешевле ли отправлять запросы пачкой?

Само по себе объединение не даёт скидки: платите вы за токены, а не за обращения. Экономия появляется, только если общий контекст переиспользуется — например, при кэшировании неизменной начальной части запроса. У некоторых провайдеров есть отдельный режим отложенной обработки по сниженной цене, но он не подходит для диалога.

#Что даёт больший эффект: сменить модель или сократить контекст?

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

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт