Первая вещь

Создать бота с помощью ИИ: от одного сценария до проверки диалога

Для кого

Тому, кто собирает Telegram-бота для своей задачи

Что вы получите

План одного рабочего диалога и набор проверок до запуска

Время чтения

6 мин

Точка А: сейчас

Бот красиво отвечает в пробном чате, но теряет контекст и не передаёт сложный вопрос

Точка Б

Один сценарий проходит от входа до результата, ошибки и передачи человеку

Как собрать первого бота с ИИ: описать маршрут сообщения, хранение состояния, передачу человеку и проверку ошибок.

Желание создать бота с помощью ИИ лучше свести к одному завершённому действию. Например, бот принимает запрос на подбор, задаёт недостающие вопросы, ищет варианты в реальной базе и передаёт менеджеру то, что требует решения человека. Если начать с «универсального помощника», невозможно заранее определить, где ответ правильный. Отдельная статья о создании ИИ‑агента объясняет общую архитектуру. Здесь нужен практический маршрут первого бота и проверка его диалога.

Опишите один разговор как последовательность событий

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

СобытиеДанные для шагаОтвет бота
Первое сообщениеТекст и идентификатор диалогаКороткое уточнение
Условия собраныДаты, состав, бюджетПоиск в источнике
Результат найденПроверенные вариантыВыбор с пояснением
Источник недоступенОшибка запросаЧестное сообщение и передача
Нестандартный вопросИстория и причинаЗадача сотруднику

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

Отделите понимание текста от действия

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

Сообщение пользователя
  -> извлечь условия разговора
  -> проверить обязательные поля
  -> спросить недостающее
  -> запросить рабочий источник
  -> показать подтверждённый результат
  -> сохранить следующий шаг или передать человеку

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

Где хранить состояние диалога

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

СостояниеЧто сохранитьЧто проверить
Ждём датуУже известный город и составПовторный ответ не сбросит разговор
Ищем вариантыПолный набор условийСтарый ответ не придёт после новой даты
Передано человекуПричину и владельца задачиБот не продолжит спорить
ЗавершеноВыбранный результатНовое сообщение начнёт нужный путь

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

Как это выглядит в работе

На снимке «AI‑бота турагентства» видны этапы из истории выше. Цена на изображении относится к показанному варианту и моменту проверки; перед новым предложением её надо запросить снова.

AI-бот турагентства, диалог в Telegram
AI-бот турагентства. Реальный сценарий: клиент написал боту в 19:42 «хочу в Турцию на двоих до 80к», AI квалифицировал, нашёл ASTERIA Side за 50 299 ₽. Клиент не оформил. На следующий день в 11:24 бот возвращается сам: «цена упала, уже 47 800 ₽, со вторника туроператор поднимет на 8%». Это и есть «автодожим».Нажмите на снимок, чтобы открыть его крупно

В другом моём проекте, «AI‑продавец для косметолога», показана схема передачи сообщения из ВК через amoCRM к помощнику и системе записи. Она иллюстрирует связь внешних источников; отложенный возврат показан только на снимке турагентства.

Схема: ВК → amoCRM → AI-ассистент → YClients → подтверждение
AI-продавец для косметолога. 5 шагов: клиент пишет в ВК → данные собираются в amoCRM → AI-ассистент ведёт диалог (консультация, обработка возражений, продажа) → онлайн-запись через YClients → клиент получает подтверждение. Всё без участия врача.Нажмите на снимок, чтобы открыть его крупно

Как дать ИИ задание на код

Укажите используемый язык, структуру папок и одну проверяемую задачу. Для Python-проекта сначала создайте окружение, установите зависимости в нём и запустите локальную версию. Версии библиотек проверьте в официальной документации на момент работы; не копируйте старые команды установки из чужих статей. Следующий блок показывает безопасный порядок подготовки без реального ключа.

python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --upgrade aiogram
python -m pip show aiogram

Токен положите в локальный .env, исключённый из Git. В образце настроек оставьте только имя переменной, например TELEGRAM_BOT_TOKEN=ваш_тестовый_токен. Попросите агента не читать и не печатать значение. В примере кода путь от сообщения до ответа должен быть виден по функциям: получение, извлечение условий, проверка, поиск, отправка, запись состояния. Сначала проверьте это с тестовым источником, затем подключайте настоящий.

До подключения рабочего источника пройдите три сообщения:

  • задайте полный запрос и проверьте найденный результат;
  • пропустите обязательное условие и дождитесь уточнения;
  • отправьте вопрос вне сценария и проверьте передачу человеку.

На сервере запускайте службу от отдельного пользователя, не от root. Файл .env с настоящим токеном должен быть доступен только владельцу: права 600. Перед выкладкой проверьте зависимости через pip‑audit, затем перезапустите службу и продолжите тестовый диалог из сохранённого состояния.

Проверку обычного, неполного и ошибочного диалога я подробно разобрал в статье о создании ИИ‑агента. Для бота с отложенным возвратом добавьте отдельную приёмку: перезапустите службу между подбором и назначенным сообщением, проверьте, что разговор сохранился, а после брони сообщение не отправилось. В журнале не должно быть токена и полных личных данных.

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

Нужна ли нейросеть для каждого ответа бота?

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

Можно ли обойтись памятью процесса?

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

Как предотвратить выдуманную цену?

Запрашивайте цену в подтверждённом источнике и показывайте только найденное значение. Если источник недоступен, бот должен сказать об этом и передать вопрос человеку.

Что проверить при передаче менеджеру?

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

С чего начать без опыта программирования?

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

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