Как снижать стоимость AI-бота: токены, кэш, model routing…
  • AI экономика
  • Автор: Команда CrmAI
  • Опубликовано:
Оптимизация стоимости AI-бота: токены, кэширование и маршрутизация между моделями

Марат, владелец сети автосервисов в Алматы, был в восторге от своего нового AI-бота. Первые две недели — сплошные комплименты от клиентов, менеджеры довольны, конверсия растёт. А потом пришёл счёт от провайдера: 847 000 тенге за месяц. При планируемом бюджете в 150 000.

«Как это возможно?» — спрашивал Марат, листая детализацию. Оказалось, что бот отвечал на каждый вопрос развёрнутым эссе на 2000 слов, использовал самую дорогую модель даже для ответа «Да, мы работаем в воскресенье», а ещё — хранил в контексте всю историю переписки за год, даже когда клиент просто спрашивал адрес.

Если вы запускали или собираетесь запускать AI-бота — скорее всего, узнаёте себя. И вот что важно знать: затраты реально снизить в 5-10 раз, не жертвуя качеством. Но для этого придётся разобраться, как устроена экономика LLM. Без паники — всё объясню на пальцах.

«Когда мы начали считать токены, обнаружили, что 40% бюджета уходит на обработку одних и тех же вопросов. "Где вы находитесь?", "Во сколько открываетесь?", "Есть ли скидки?" — тысячи одинаковых запросов, и каждый раз модель генерировала ответ с нуля. Внедрили кэш — расходы упали вдвое за неделю.»

Технический директор
E-commerce платформа, Казахстан
Цитата

Токены: валюта мира AI-ботов

Прежде чем оптимизировать, нужно понять, за что вы платите. В мире больших языковых моделей (LLM) деньги считаются в токенах — это фрагменты текста, на которые модель разбивает входящие и исходящие сообщения.

Один токен — это примерно 4 символа на английском или 1-2 символа на русском языке. Слово «оптимизация» — это около 4-5 токенов. Предложение «Здравствуйте, я хочу записаться на ТО» — примерно 15-18 токенов. Звучит совсем не страшно, да?

А теперь та самая ложка дёгтя: вы платите не только за ответ бота, но и за весь контекст, который отправляете модели каждый раз. И тут начинается снежный ком. История диалога? Да. Системный промпт с инструкциями? Тоже да. Данные из базы знаний? И это туда же. Инструкции по форматированию? Разумеется. И всё это летит в облако при каждом — каждом! — сообщении клиента. Вот где бюджет начинает таять, как мороженое в алматинское лето.

Из чего складывается стоимость одного запроса к боту

Системный промпт

Инструкции для бота: как отвечать, что делать, чего избегать. Обычно 500-2000 токенов. Отправляется с каждым запросом.

История диалога

Предыдущие сообщения клиента и бота. Растёт с каждым обменом репликами. Может достигать тысяч токенов.

Контекст из базы знаний (RAG)

Релевантные документы, найденные по запросу клиента. Обычно 500-3000 токенов за запрос.

Ответ бота (completion)

То, что модель генерирует. Обычно дороже входящих токенов в 2-4 раза.

Пример: сколько стоит один диалог

А теперь давайте посчитаем на пальцах, чтобы стало совсем понятно. Возьмём обычную ситуацию: клиент задал боту 5 вопросов, получил ответы. Для примера берём GPT-4 Turbo — цены на декабрь 2024 года: $10 за миллион входящих токенов, $30 за миллион выходящих.

Компонент Токенов (1-й запрос) Токенов (5-й запрос)
Системный промпт 1 000 1 000
История диалога 0 3 200
RAG-контекст 1 500 1 500
Сообщение клиента 50 50
Итого входящих 2 550 5 750
Ответ бота 400 400

Видите, что происходит? К пятому сообщению входящий контекст удвоился, хотя клиент задаёт такой же короткий вопросик. А представьте, если диалог растянется на 10 сообщений. Или на 20. Затраты растут не линейно, а по экспоненте. Вот откуда берутся те самые «сюрпризы» в счетах, от которых финдиректор хватается за сердце.

Для одного диалога из 5 сообщений при использовании GPT-4 Turbo вы заплатите примерно $0.15-0.20. Мелочь, скажете? А теперь умножьте на 1000 диалогов в день. Получается $150-200 каждый день. За месяц выходит $4500-6000, а это уже 2-2.7 миллиона тенге. И это только на токены — без учёта серверов, разработки, поддержки и всего остального.

Стратегия 1: Кэширование ответов

Самый быстрый способ сократить затраты — не генерировать заново то, что уже было сгенерировано. Звучит банально? Ну да. Но знаете, что удивительно? Как много компаний игнорируют эту простую возможность.

Вот вам картинка. Ваш бот обслуживает интернет-магазин электроники. Каждый божий день сотни людей спрашивают одно и то же: «Есть ли iPhone 15 в наличии?», «Какая гарантия на телевизоры?», «Доставляете ли в Шымкент?». Формулировки чуть-чуть разные, но суть одна. И что делает бот? Каждый раз генерирует ответ с нуля. Снова. И снова. И снова. Токены горят, счётчик крутится.

Как работает кэширование для AI-бота

Есть несколько уровней кэширования, и каждый решает свою задачу:

  • Точное совпадение (exact match): Если клиент спрашивает «Во сколько вы работаете?» и кто-то уже спрашивал то же самое — отдаём кэшированный ответ. Экономия 100%.
  • Семантическое совпадение: «Во сколько вы работаете?» и «Какой у вас график работы?» — разные фразы, но один смысл. Используем embeddings для поиска похожих вопросов. Экономия 90-100%.
  • Кэширование RAG-результатов: Если для ответа нужно искать в базе знаний — кэшируем результаты поиска. Не нужно каждый раз запрашивать векторную БД.
  • Prompt caching (native): Некоторые провайдеры (Anthropic, OpenAI) предлагают встроенное кэширование промптов. Если системный промпт не меняется — платите за него меньше.

Практическая реализация

Для семантического кэша вам понадобится несколько компонентов. Векторная база данных — Pinecone, Qdrant, Milvus или даже обычный PostgreSQL с расширением pgvector. Модель для создания embeddings — например, text-embedding-3-small от OpenAI, которая стоит копейки по сравнению с генеративными моделями. Логика определения «похожести» — обычно порог similarity выставляют на 0.92-0.95. И TTL, время жизни кэша: для вопросов про наличие товара это может быть час, для графика работы — неделя.

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

Реальный кейс: экономия на кэшировании

Клиент: Сеть фитнес-клубов (5 локаций, ~2000 обращений в день через бота)

До кэширования: $180/день на токены GPT-4

После внедрения семантического кэша: $62/день

Cache hit rate: 67% (две трети вопросов — повторяющиеся)

Экономия: $3 540/месяц (~1.6 млн тенге)

-65%

снижение затрат

Стратегия 2: Маршрутизация между моделями (Model Routing)

А вот вам парадокс. Большинство компаний берут одну модель для всех задач. И обычно выбирают самую мощную и дорогую — «чтобы наверняка». Это как каждый раз ездить на Ferrari в ближайший магазин за хлебом. Доедете? Доедете. Но бензина сожжёте столько, что проще было такси вызвать.

Смотрите, какая штука. Если копнуть в реальную статистику, окажется, что 70-80% вопросов к бизнес-боту — элементарные. «Где вы находитесь?», «Сколько стоит доставка?», «Как оплатить?». Запускать для этого GPT-4 — это как нанять профессора лингвистики, чтобы он сказал вам, который час. Модель в 10 раз дешевле справится с тем же успехом, а клиент даже не заметит разницы.

Как устроен model routing

Идея проста: перед отправкой запроса в LLM определяем его сложность и маршрутизируем на подходящую модель. Вот типичная схема:

Тип запроса Примеры Модель Относительная стоимость
FAQ / Простые факты Адрес, график, цена из каталога GPT-3.5-turbo, Claude Haiku, Mistral 7B 1x (базовая)
Средняя сложность Сравнение товаров, рекомендации, пересказ политик GPT-4-turbo, Claude Sonnet 10-15x
Сложные задачи Анализ ситуации клиента, нестандартные кейсы, эмоциональная поддержка GPT-4, Claude Opus 30-50x
Критичные / VIP Жалобы, угроза оттока, юридические вопросы Лучшая доступная + ручной контроль Любая (приоритет качества)

Как определять сложность запроса?

Есть несколько подходов, и на практике лучше комбинировать.

Классификатор на базе лёгкой модели. Отправляем запрос в GPT-3.5 или даже в специализированную классифицирующую модель. Она за копейки определяет категорию и сложность. Быстро и дёшево.

Ключевые слова и паттерны. «Где находитесь?» — точно простой запрос. «Хочу подать жалобу на некачественное обслуживание» — точно сложный. Правила отлично работают для очевидных случаев, и их можно накручивать постепенно.

Эмбеддинги плюс классификатор. Обучаем модель на размеченных данных: какие запросы требовали сложных ответов, какие закрывались простыми. Со временем система начинает понимать нюансы.

A/B тестирование. Отправляем часть «средних» запросов на дешёвую модель, смотрим на качество. Если норм — расширяем. Если проседает — корректируем границы.

Да, классификация сама по себе стоит токенов. Но цена классификации (5-10 токенов) — это ничто по сравнению с экономией на разнице между моделями (сотни и тысячи токенов).

Иллюстрация

Хотите оптимизировать затраты на AI-бота?

Проведём аудит вашего бота, найдём точки экономии, настроим кэширование и маршрутизацию. Первая консультация бесплатно.

Получить аудит бота

Стратегия 3: Fallback-механизмы

Что происходит, когда основная модель недоступна или отвечает слишком долго? Если у вас нет fallback-стратегии — клиент видит ошибку. Если есть — получает ответ от резервной модели. Но fallback — это не только про отказоустойчивость. Это ещё и про экономию.

Типы fallback-стратегий

  • По таймауту: Если GPT-4 не ответил за 5 секунд — переключаемся на GPT-3.5. Клиент получает ответ быстрее, вы платите меньше.
  • По бюджету: Потратили 80% месячного лимита — переключаемся на более дешёвую модель для оставшихся запросов.
  • По нагрузке: В часы пик (когда запросов много) используем лёгкую модель, в тихие часы — более мощную.
  • По качеству ответа: Если первая модель вернула неуверенный или короткий ответ — пробуем другую.

Каскадный fallback: от дешёвого к дорогому

Интересный паттерн — инвертированный fallback. Вместо «сначала дорогая, потом дешёвая» делаем наоборот:

  1. Сначала пробуем дешёвую модель (GPT-3.5, Claude Haiku)
  2. Если ответ уверенный и полный — отдаём клиенту
  3. Если модель «не уверена» (низкий confidence, короткий ответ, признание незнания) — эскалируем на дорогую модель

Такой подход требует чуть больше логики, но экономит существенно. Потому что 70% запросов закрываются на первом шаге.

Схема каскадного fallback

Запрос клиента
Лёгкая модель GPT-3.5 / Haiku
Уверенный ответ → Клиенту
Неуверенный → GPT-4

Стратегия 4: Управление контекстом

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

Техники сокращения контекста

Скользящее окно. Храним только последние N сообщений — например, 10. Старые просто удаляем. Звучит жёстко, но для большинства кейсов работает отлично. Клиенту редко нужно помнить, что он спрашивал полчаса назад.

Суммаризация истории. Каждые 5-10 сообщений берём всю историю и сжимаем в краткое резюме. «Клиент интересовался товаром X, спрашивал про доставку, бюджет до 50 000 тенге». Вместо 2000 токенов получается 100.

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

Сброс контекста при смене темы. Клиент переключился на новую тему — старая история больше не нужна. Смело сбрасываем. Это как перевернуть страницу в блокноте.

Оптимизация системного промпта

Системный промпт отправляется с каждым запросом. Если он на 3000 токенов — вы платите за него снова и снова и снова. Как оптимизировать?

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

Использовать сокращения. Вместо «Ты — дружелюбный помощник компании X, которая занимается продажей автозапчастей и сопутствующих товаров» пишите «Ты помощник X (продажа автозапчастей). Тон: дружелюбный». Смысл тот же, токенов в три раза меньше.

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

Prompt caching. OpenAI и Anthropic предлагают кэширование статичных частей промпта. Если ваш системный промпт не меняется — платите за него один раз, а не каждый запрос. Экономия в разы.

Пример: оптимизация системного промпта

До (2847 токенов)
Ты — виртуальный помощник компании «АвтоСервис Плюс», которая находится в городе Алматы и занимается ремонтом и техническим обслуживанием автомобилей всех марок. Твоя задача — помогать клиентам записываться на сервис, отвечать на вопросы о стоимости услуг, времени работы и расположении. Ты должен быть вежливым и дружелюбным, но при этом профессиональным. Если ты не знаешь ответа на вопрос — честно признайся в этом и предложи связаться с менеджером...

(и ещё 2000 символов инструкций)

После (847 токенов)
Ты — помощник «АвтоСервис Плюс» (Алматы, ремонт авто).

Задачи: запись на сервис, ответы о ценах/графике/адресе.

Стиль: вежливо, кратко, по делу.

Не знаешь → «Уточню у менеджера» + предложи связь.

Экономия: 70% токенов на каждом запросе

Стратегия 5: Лимиты и квоты

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

Какие лимиты устанавливать

  • Лимит токенов на ответ: Установите max_tokens (например, 500). Бот не будет писать романы там, где достаточно пары предложений.
  • Лимит сообщений на диалог: После 20 сообщений — предлагаем связаться с оператором. Это и экономия, и качество (если человек не решил вопрос за 20 сообщений — ему нужен человек).
  • Лимит запросов на пользователя: 50 запросов в день на одного клиента — защита от злоупотреблений.
  • Бюджетный лимит: Потратили $X за день — переключаемся на дешёвую модель или включаем очередь.

Что делать при достижении лимита?

Лимит — это не отказ. Это переключение на альтернативу:

  • Переключение на более дешёвую модель
  • Предложение связаться с оператором (передача в human handoff)
  • Постановка в очередь с уведомлением «Ответим через N минут»
  • Предложение оставить контакт для обратной связи

Мониторинг: что измерять, чтобы экономить

Нельзя оптимизировать то, что не измеряешь. Вот метрики, которые должны быть на вашем дашборде:

Финансовые метрики

Метрика Что показывает Целевое значение
Cost per conversation Средняя стоимость одного диалога Зависит от сложности, но отслеживайте тренд
Cost per resolution Стоимость успешно закрытого обращения Должна быть ниже стоимости обработки человеком
Tokens per message Средний расход токенов на сообщение Входящие: 1500-3000, исходящие: 200-500
Model mix Распределение запросов по моделям 70%+ на дешёвых моделях
Cache hit rate Процент запросов, обслуженных из кэша 40-70% для типичного бизнес-бота

Качественные метрики (чтобы не переоптимизировать)

Важно не уйти в другую крайность — экономить так, что качество упадёт. Отслеживайте:

  • CSAT / NPS: Удовлетворённость клиентов не должна падать
  • Resolution rate: Процент обращений, закрытых ботом без эскалации
  • Escalation причины: Почему переводят на оператора? Не из-за плохого качества ответов?
  • Время ответа: Не стало ли дольше из-за fallback-логики?

Красные флаги: когда оптимизация вредит

Можно оптимизировать
  • Повторяющиеся простые вопросы → кэш
  • Длинные промпты → сокращение
  • FAQ-запросы → дешёвая модель
  • Избыточная история → скользящее окно
Нельзя экономить на
  • Жалобах и негативе → нужна лучшая модель
  • VIP-клиентах → приоритет качества
  • Сложных продажах → недоработка = потеря сделки
  • Критичной информации → ошибка дороже экономии

Особенности оптимизации для казахстанского рынка

У бизнеса в Казахстане есть специфические факторы, которые влияют на экономику AI-бота.

Валютные риски

OpenAI, Anthropic и другие крупные провайдеры берут оплату в долларах. Это создаёт непредсказуемость: при колебаниях курса ваш бюджет в тенге может «плавать». Что делать:

  • Закладывайте буфер 10-15% на валютные колебания
  • Рассмотрите локальных провайдеров (Yandex GPT, SberGigaChat) — оплата в рублях стабильнее
  • Для критичных систем — self-hosted решения с фиксированной стоимостью

Многоязычность

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

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

Интеграция с локальными системами

Если бот интегрирован с , Kaspi или другими локальными системами — данные для RAG уже на месте. Используйте это преимущество: локальный RAG дешевле, чем передача большого контекста в облачную модель.

Пошаговый план оптимизации (что делать прямо сейчас)

Вот конкретные шаги, которые можно выполнить за неделю и получить результат:

День 1-2: Аудит текущей ситуации

  • Соберите статистику: сколько запросов в день, средний размер контекста, распределение по типам вопросов
  • Найдите «тяжёлые» диалоги — те, где контекст вырастает до максимума
  • Выявите повторяющиеся вопросы (кандидаты на кэширование)

День 3-4: Быстрые победы

  • Сократите системный промпт (обычно можно убрать 30-50%)
  • Установите max_tokens на ответы (300-500 для большинства кейсов)
  • Включите скользящее окно для истории (10-15 сообщений)

День 5-7: Системные улучшения

  • Настройте кэширование для топ-50 повторяющихся вопросов
  • Добавьте простой классификатор для model routing
  • Настройте мониторинг (cost per conversation, cache hit rate)

После этой недели вы должны увидеть снижение затрат на 30-50%. Дальнейшая оптимизация — итерационный процесс: анализируете данные, находите узкие места, улучшаете.

Иллюстрация

Хотите, чтобы мы провели аудит вашего бота?

Проанализируем расходы, найдём точки экономии, дадим конкретные рекомендации. Первая консультация бесплатно.

Получить бесплатный аудит

Итог: экономия без жертв

AI-бот не обязан быть дорогим. Большинство компаний переплачивают в 3-5 раз просто потому, что запустили «как есть» и забыли про оптимизацию. Это как оставить свет и кондиционер работать во всём офисе на выходные — технически всё функционирует, но потом финдиректор долго смотрит на счёт за электричество.

Главные инструменты экономии:

  • Кэширование — не генерируйте то, что уже было сгенерировано
  • Model routing — используйте дорогие модели только там, где нужно
  • Fallback — пробуйте дешёвое, эскалируйте на дорогое
  • Управление контекстом — не таскайте лишнее с каждым запросом
  • Лимиты — защитите себя от аномалий и злоупотреблений

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

Начните с аудита. Посмотрите, куда уходят деньги. Внедрите 2-3 техники из этой статьи. Измерьте результат. И повторите. Оптимизация — это не разовое действие, а процесс. Но результаты того стоят.