Марат, владелец сети автосервисов в Алматы, был в восторге от своего нового AI-бота. Первые две недели — сплошные комплименты от клиентов, менеджеры довольны, конверсия растёт. А потом пришёл счёт от провайдера: 847 000 тенге за месяц. При планируемом бюджете в 150 000.
«Как это возможно?» — спрашивал Марат, листая детализацию. Оказалось, что бот отвечал на каждый вопрос развёрнутым эссе на 2000 слов, использовал самую дорогую модель даже для ответа «Да, мы работаем в воскресенье», а ещё — хранил в контексте всю историю переписки за год, даже когда клиент просто спрашивал адрес.
Если вы запускали или собираетесь запускать AI-бота — скорее всего, узнаёте себя. И вот что важно знать: затраты реально снизить в 5-10 раз, не жертвуя качеством. Но для этого придётся разобраться, как устроена экономика LLM. Без паники — всё объясню на пальцах.
«Когда мы начали считать токены, обнаружили, что 40% бюджета уходит на обработку одних и тех же вопросов. "Где вы находитесь?", "Во сколько открываетесь?", "Есть ли скидки?" — тысячи одинаковых запросов, и каждый раз модель генерировала ответ с нуля. Внедрили кэш — расходы упали вдвое за неделю.»
Прежде чем оптимизировать, нужно понять, за что вы платите. В мире больших языковых моделей (LLM) деньги считаются в токенах — это фрагменты текста, на которые модель разбивает входящие и исходящие сообщения.
Один токен — это примерно 4 символа на английском или 1-2 символа на русском языке. Слово «оптимизация» — это около 4-5 токенов. Предложение «Здравствуйте, я хочу записаться на ТО» — примерно 15-18 токенов. Звучит совсем не страшно, да?
А теперь та самая ложка дёгтя: вы платите не только за ответ бота, но и за весь контекст, который отправляете модели каждый раз. И тут начинается снежный ком. История диалога? Да. Системный промпт с инструкциями? Тоже да. Данные из базы знаний? И это туда же. Инструкции по форматированию? Разумеется. И всё это летит в облако при каждом — каждом! — сообщении клиента. Вот где бюджет начинает таять, как мороженое в алматинское лето.
Инструкции для бота: как отвечать, что делать, чего избегать. Обычно 500-2000 токенов. Отправляется с каждым запросом.
Предыдущие сообщения клиента и бота. Растёт с каждым обменом репликами. Может достигать тысяч токенов.
Релевантные документы, найденные по запросу клиента. Обычно 500-3000 токенов за запрос.
То, что модель генерирует. Обычно дороже входящих токенов в 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 миллиона тенге. И это только на токены — без учёта серверов, разработки, поддержки и всего остального.
Самый быстрый способ сократить затраты — не генерировать заново то, что уже было сгенерировано. Звучит банально? Ну да. Но знаете, что удивительно? Как много компаний игнорируют эту простую возможность.
Вот вам картинка. Ваш бот обслуживает интернет-магазин электроники. Каждый божий день сотни людей спрашивают одно и то же: «Есть ли iPhone 15 в наличии?», «Какая гарантия на телевизоры?», «Доставляете ли в Шымкент?». Формулировки чуть-чуть разные, но суть одна. И что делает бот? Каждый раз генерирует ответ с нуля. Снова. И снова. И снова. Токены горят, счётчик крутится.
Есть несколько уровней кэширования, и каждый решает свою задачу:
Для семантического кэша вам понадобится несколько компонентов. Векторная база данных — 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 млн тенге)
снижение затрат
А вот вам парадокс. Большинство компаний берут одну модель для всех задач. И обычно выбирают самую мощную и дорогую — «чтобы наверняка». Это как каждый раз ездить на Ferrari в ближайший магазин за хлебом. Доедете? Доедете. Но бензина сожжёте столько, что проще было такси вызвать.
Смотрите, какая штука. Если копнуть в реальную статистику, окажется, что 70-80% вопросов к бизнес-боту — элементарные. «Где вы находитесь?», «Сколько стоит доставка?», «Как оплатить?». Запускать для этого GPT-4 — это как нанять профессора лингвистики, чтобы он сказал вам, который час. Модель в 10 раз дешевле справится с тем же успехом, а клиент даже не заметит разницы.
Идея проста: перед отправкой запроса в 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 токенов) — это ничто по сравнению с экономией на разнице между моделями (сотни и тысячи токенов).
Проведём аудит вашего бота, найдём точки экономии, настроим кэширование и маршрутизацию. Первая консультация бесплатно.
Получить аудит ботаЧто происходит, когда основная модель недоступна или отвечает слишком долго? Если у вас нет fallback-стратегии — клиент видит ошибку. Если есть — получает ответ от резервной модели. Но fallback — это не только про отказоустойчивость. Это ещё и про экономию.
Интересный паттерн — инвертированный fallback. Вместо «сначала дорогая, потом дешёвая» делаем наоборот:
Такой подход требует чуть больше логики, но экономит существенно. Потому что 70% запросов закрываются на первом шаге.
Помните пример в начале статьи? История диалога, которая растёт с каждым сообщением — это один из главных «убийц» бюджета. Хорошая новость: контекстом можно и нужно управлять.
Скользящее окно. Храним только последние N сообщений — например, 10. Старые просто удаляем. Звучит жёстко, но для большинства кейсов работает отлично. Клиенту редко нужно помнить, что он спрашивал полчаса назад.
Суммаризация истории. Каждые 5-10 сообщений берём всю историю и сжимаем в краткое резюме. «Клиент интересовался товаром X, спрашивал про доставку, бюджет до 50 000 тенге». Вместо 2000 токенов получается 100.
Извлечение сущностей. А можно ещё радикальнее: вместо полной истории храним только ключевые факты. Имя клиента, товар, который его интересует, этап воронки, важные детали. Остальное — в архив.
Сброс контекста при смене темы. Клиент переключился на новую тему — старая история больше не нужна. Смело сбрасываем. Это как перевернуть страницу в блокноте.
Системный промпт отправляется с каждым запросом. Если он на 3000 токенов — вы платите за него снова и снова и снова. Как оптимизировать?
Убрать дублирование. Часто в промпте одно и то же написано разными словами. Раз пять. Серьёзно, возьмите свой промпт и вычитайте критически — найдёте кучу воды.
Использовать сокращения. Вместо «Ты — дружелюбный помощник компании X, которая занимается продажей автозапчастей и сопутствующих товаров» пишите «Ты помощник X (продажа автозапчастей). Тон: дружелюбный». Смысл тот же, токенов в три раза меньше.
Выносить редко используемое. Инструкции для редких кейсов не нужно держать в промпте постоянно. Добавляйте их динамически, только когда ситуация возникла.
Prompt caching. OpenAI и Anthropic предлагают кэширование статичных частей промпта. Если ваш системный промпт не меняется — платите за него один раз, а не каждый запрос. Экономия в разы.
Ты — виртуальный помощник компании «АвтоСервис Плюс», которая находится в городе Алматы и занимается ремонтом и техническим обслуживанием автомобилей всех марок. Твоя задача — помогать клиентам записываться на сервис, отвечать на вопросы о стоимости услуг, времени работы и расположении. Ты должен быть вежливым и дружелюбным, но при этом профессиональным. Если ты не знаешь ответа на вопрос — честно признайся в этом и предложи связаться с менеджером...
(и ещё 2000 символов инструкций)
Ты — помощник «АвтоСервис Плюс» (Алматы, ремонт авто).
Задачи: запись на сервис, ответы о ценах/графике/адресе.
Стиль: вежливо, кратко, по делу.
Не знаешь → «Уточню у менеджера» + предложи связь.
Экономия: 70% токенов на каждом запросе
Иногда лучший способ контролировать расходы — установить жёсткие ограничения. Это не про ухудшение сервиса, а про предсказуемость бюджета и защиту от аномалий.
Лимит — это не отказ. Это переключение на альтернативу:
Нельзя оптимизировать то, что не измеряешь. Вот метрики, которые должны быть на вашем дашборде:
| Метрика | Что показывает | Целевое значение |
|---|---|---|
| Cost per conversation | Средняя стоимость одного диалога | Зависит от сложности, но отслеживайте тренд |
| Cost per resolution | Стоимость успешно закрытого обращения | Должна быть ниже стоимости обработки человеком |
| Tokens per message | Средний расход токенов на сообщение | Входящие: 1500-3000, исходящие: 200-500 |
| Model mix | Распределение запросов по моделям | 70%+ на дешёвых моделях |
| Cache hit rate | Процент запросов, обслуженных из кэша | 40-70% для типичного бизнес-бота |
Важно не уйти в другую крайность — экономить так, что качество упадёт. Отслеживайте:
У бизнеса в Казахстане есть специфические факторы, которые влияют на экономику AI-бота.
OpenAI, Anthropic и другие крупные провайдеры берут оплату в долларах. Это создаёт непредсказуемость: при колебаниях курса ваш бюджет в тенге может «плавать». Что делать:
Казахский и русский языки в одном диалоге — типичная ситуация. Проблема в том, что токенизация для русского и казахского менее эффективна, чем для английского. Одно и то же предложение на русском стоит в 1.5-2 раза дороже, чем на английском.
К сожалению, с этим мало что можно сделать. Но учитывайте при планировании бюджета: если вы сравниваете свои расходы с кейсами англоязычных компаний — делайте поправку.
Если бот интегрирован с 1С, Kaspi или другими локальными системами — данные для RAG уже на месте. Используйте это преимущество: локальный RAG дешевле, чем передача большого контекста в облачную модель.
Вот конкретные шаги, которые можно выполнить за неделю и получить результат:
После этой недели вы должны увидеть снижение затрат на 30-50%. Дальнейшая оптимизация — итерационный процесс: анализируете данные, находите узкие места, улучшаете.
Проанализируем расходы, найдём точки экономии, дадим конкретные рекомендации. Первая консультация бесплатно.
Получить бесплатный аудитAI-бот не обязан быть дорогим. Большинство компаний переплачивают в 3-5 раз просто потому, что запустили «как есть» и забыли про оптимизацию. Это как оставить свет и кондиционер работать во всём офисе на выходные — технически всё функционирует, но потом финдиректор долго смотрит на счёт за электричество.
Главные инструменты экономии:
И помните: цель не в минимизации затрат любой ценой, а в максимизации ценности на каждый потраченный тенге. Если экономия ухудшает качество — это не экономия, это потеря клиентов.
Начните с аудита. Посмотрите, куда уходят деньги. Внедрите 2-3 техники из этой статьи. Измерьте результат. И повторите. Оптимизация — это не разовое действие, а процесс. Но результаты того стоят.