В пятницу вечером я зашёл в чат техподдержки и увидел 300+ неотвеченных сообщений. Команда уже разошлась. Заказчик писал в Slack: "Когда бот?".
Я тогда ещё не знал, что следующие три недели проведу в попытках прикрутить GPT к Telegram-боту так, чтобы он не отвечал клиентам полный бред. Делюсь, что из этого вышло — без прикрас и с граблями.
С чего всё началось
У нас простой продукт: SaaS для управления заявками. Клиентов — пара тысяч, и поток вопросов стабильный: "как сменить тариф", "не приходит код", "что за ошибка 500". Саппорт справлялся, пока заявок было 20-30 в день. Потом выросли — и всё, классическая история.
Сначала попробовали обычного бота на правилах — keyword matching, if-else деревья. Работало так себе: клиент спрашивает "у меня не загружается отчёт" — бот отвечает "напишите в поддержку". Бесполезно.
Решили попробовать языковую модель. Не как хайповый "заменить людей", а как первый эшелон — бот берёт типовые вопросы, а живые операторы разбирают сложные. Классический подход, но работает.
Из чего состоит такой бот
Не буду рисовать диаграмму, расскажу словами. Бот — это три слоя, которые связаны между собой.
Первый слой — Telegram. Бот получает сообщения через Telegram Bot API. Тут ничего хитрого: webhook или polling, пара эндпоинтов, обработка update-объектов. Мы взяли polling — проще для отладки, не нужен отдельный сервер.
Второй слой — обработка запроса. Перед тем как отправить что-то в ИИ, нужно понять, что вообще хочет клиент. Мы используем классификатор: определяет категорию вопроса (billing, техподдержка, продажи, сброс пароля). Для типовых кейсов — берём из базы готовый ответ. Для остального — отправляем в GPT.
Третий слой — ИИ. GPT-4o-mini, потому что быстро и дёшево. Мы формируем промпт, который включает контекст продукта, правила ответов и историю переписки. Ключевой момент: ИИ не знает внутренних процессов компании. Ему нужно дать эту информацию в промпте — или подключить RAG к нашей базе знаний.
Что оказалось сложнее всего
Не модель, не интеграция. Промпт.
Первые версии отвечали уверенно и неправильно. Клиент спрашивает "когда спишется абонемент?" — бот радостно называет дату, которую выдумал. Ещё веселее: бот начинал давать технические советы, которые противоречили документации.
Ушло три дня на промпт-инжиниринг, прежде чем ответы стали адекватными. Что помогло:
- Жёсткие границы: бот не обсуждает цены, не делает скидки, не даёт юридические советы
- Всегда проверяет: если не уверен — честно говорит "я не знаю, передам оператору"
- Формат ответа: коротко, по делу, с ссылкой на документацию
Кстати, про ссылки. Бот генерирует ссылку на нужный раздел справки — это резко снизило поток "а где это найти". Клиент получает ответ и ссылку, 60% вопросов закрываются без участия человека.
Как мы его учили
Изначально хотели fine-tuning — переобучить модель на наших данных. Потратили неделю, поняли что overkill. Наша база знаний — 200 страниц документации, FAQ, типовые ответы. Это больше про RAG, чем про переобучение.
Сделали так: загрузили документы в векторную базу (Qdrant, можно pgvector). При запросе релевантные куски подтягиваются в контекст. Модель отвечает на основе актуальной информации, а не холодного промпта.
Плюс — добавили human-in-the-loop. Бот не отвечает сразу на сложные вопросы. Сначала формирует черновик, отправляет оператору на проверку. Тот нажимает "отправить" или правит. За месяц бот научился на этих правках — мы пересобирали промпт, добавляли типичные ошибки в "не делай так".
Что в итоге получилось
Цифры за месяц:
- 47% входящих обращений обрабатываются ботом полностью — без пересылки оператору
- Среднее время ответа упало с 4 часов до 23 секунд
- Операторы разбирают сложные кейсы, а не тратят время на "как сменить пароль"
- Точность ответов — около 85%, остальное уходит на ручную проверку
Проблемы, которые остались: бот иногда не понимает сленг ("пипка сломалась" — это про виджет уведомлений, и он это не всегда распознаёт). И длинные диалоги сбивают контекст — после 10 сообщений модель начинает путаться в деталях. Лечится очисткой истории после определённого порога.
Стоит ли делать
Зависит от объёма. Если у вас 10 обращений в день — проще ответить живому. Если 100+ и есть типовые вопросы — бот реально снимает нагрузку.
Главное, что я понял: ИИ-бот для поддержки — это не "поставить и забыть". Это система, которая требует постоянной подстройки. Мониторить качество ответов, обновлять базу знаний, собирать фидбек. Без этого через месяц бот начнёт отвечать в стиле "обратитесь к документации", а клиенты уйдут.
Но если вложиться — выигрыш реальный. Особенно для продуктов с предсказуемым потоком вопросов.
Если хочешь обсудить реализацию — пиши в комментариях, разберём конкретный кейс.
