Как снижать стоимость 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

Видите проблему? К пятому сообщению входящий контекст вырос в 2 раза, хотя клиент задаёт такой же короткий вопрос. А если диалог продолжится ещё на 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) предлагают встроенное кэширование промптов. Если системный промпт не меняется — платите за него меньше.

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

Для семантического кэша вам понадобится:

  1. Векторная база данных (Pinecone, Qdrant, Milvus или даже PostgreSQL с pgvector)
  2. Модель для создания embeddings (например, text-embedding-3-small от OpenAI — это намного дешевле генеративных моделей)
  3. Логика определения «достаточного» совпадения (обычно порог similarity 0.92-0.95)
  4. 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 тенге».
  • Извлечение сущностей: Вместо полной истории храним только ключевые факты: имя клиента, товар интереса, этап воронки, важные детали.
  • Сброс контекста при смене темы: Если клиент переключился на новую тему — старая история уже не нужна.

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

Системный промпт отправляется с каждым запросом. Если он на 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 техники из этой статьи. Измерьте результат. И повторите. Оптимизация — это не разовое действие, а процесс. Но результаты того стоят.