Что происходило до нас
Пять каналов сходились в одну платформу автоматизации: виджет на сайте, ВКонтакте, Telegram, MAX и соцсети. Кнопочные сценарии закрывали типовое. Всё остальное падало живому менеджеру. Замеренная задержка ответа составляла около тридцати минут.
Задачу заказчик сформулировал своими словами: нужно, чтобы все сообщения были отвечены. Про рост продаж речи не заходило вообще. Встроенный ИИ платформы музей уже пробовал: по словам заказчика, тот вышел «очень тупой» и придумывал факты, поэтому его удалили целиком. Параллельная разработка бота у другого подрядчика до внедрения не дошла.
С чего начали: чужие материалы и прайс
Сначала разобрали то, что осталось от предыдущего подрядчика: 689 тест-кейсов и 165 реальных диалогов из ВК с эталонными ответами менеджеров. По ним построили карту из 20 интентов, крупнейший про билеты, 257 кейсов. После аудита переписали состав работ на 9 этапов: убрали учёт мест на экскурсии и лишнюю платёжную интеграцию, усилили подбор билетов и паузу бота при подключении оператора.
Справочник заказчика на 787 строк разложили на две части. Прайс стал машиночитаемым файлом: базовые билеты, 21 пакетная позиция, группы, дни рождения, льготы, правила. Это единственный источник цифр для бота. Остальное нарезали на 18 карточек базы знаний с версией и источником, включая отдельную карточку с темами, где бот обязан сказать «уточню у администратора».
Пакет с квестом стоил дешевле двух обычных билетов, и программа радостно подставляла его всем подряд. Квест при этом идёт только по выходным и по записи: гость приехал бы во вторник за тем, чего в этот день нет. Каждый такой случай закрыли отдельным жёстким правилом. Общий принцип вывели простой: при любой неясности ошибаться в большую сторону. Назвать цену выше и приятно удивить на кассе можно. Назвать ниже нельзя.
Как это работает
Всё живёт внутри платформы автоматизации, которая уже стояла у заказчика. Кнопочные сценарии остались нетронутыми и имеют приоритет. ИИ подхватывает только то, что кнопки не поймали.
Ассистент разбирает свободный текст и достаёт из него состав компании: «2 взрослых, ребёнок 8 лет». Дальше в дело вступает обычная программа на Python. Калькулятор перебирает все допустимые наборы пакетов с ограничениями и возвращает готовые суммы. Модель пересказывает эти числа словами, складывать сама права не имеет.
Гостю показывают ряд вариантов по нарастанию наполнения: только билеты, затем с прокатом мантий, затем с мастер-классами. Выбирает он сам. Заявки на день рождения, группу, выпускной, возврат и ненайденный билет бот собирает по одному факту за вопрос, обязательно берёт телефон и передаёт в уже работающую воронку заказчика.
- Суммы считает код, покрытый 694 автопроверками на 144 составах гостей.
- Вторая реализация калькулятора построчно сверена с эталоном на 582 составах: совпадение полное.
- Эскалация к человеку: по просьбе гостя, жалобе, проблеме с оплатой или после двух неудачных попыток закрыть один вопрос. Бот уведомляет менеджера и сам ставит себя на паузу.
Грабли
Главный вывод: арифметику нейросети доверять нельзя. Подбор из двух десятков пакетов это перебор комбинаций с ограничениями, и на нём модель уверенно врёт. Цена ошибки прямая: гость приезжает на кассу с суммой, которой не существует. Поэтому расчёт вынесли в код, а модели оставили распознавание состава и пересказ готовых чисел.
Платформа подкинула своё. Два внешних вызова подряд внутри одного блока стабильно возвращали пустоту на втором, похоже на скрытый лимит. Обошли одним вызовом: код сам ходит в модель и отдаёт готовую фразу. Ещё выяснилось, что кнопка «взять клиента» бота не останавливает, останавливает только отдельная кнопка паузы, иначе бот пишет гостю поверх живого менеджера. Это ушло в инструкцию для менеджеров.
Почти все правила промпта родились из живых тестов. Составной вопрос про возраст и пакет одним сообщением вешал ответ: ввели правило «один факт за один вопрос». Фраза «секунду, уточню и вернусь» иногда оставалась последней, и гость не получал ничего: обещать ответ отдельным сообщением запретили. Отдельно выпалывали маркеры ИИ: длинные тире, «кстати», восклицательный знак в каждой фразе и вежливые довески после каждого ответа.
Сроки и честный хвост
Активная работа началась 5 августа. К вечеру 18 августа было закрыто 8 этапов из 9, в репозитории за 12 дней 42 коммита. От старта до функционально готового бота вышло около двух недель. Дальше по плану шли живое тестирование и поэтапный выкат по каналам с сутками наблюдения на каждом. Заранее предупредили заказчика, что платформа тарифицирует одно сообщение ИИ как десять обычных: это влияет на расход пакета.
Один дефект остался известным ограничением. Если возрасты нескольких гостей названы в одном сообщении, бот иногда теряет человека на границе 13 и 14 лет. Три подхода устойчивого результата не дали, вопрос ушёл в поддержку платформы и оттуда к их разработчикам. Мы записали это в документы как ограничение и сказали заказчику прямо.
Ещё одно правило вывели про себя. Этап аналитики числился полностью сданным, но при сверке с дословным текстом ТЗ оказалось закрыто 2 пункта из 4. Нашли сами, закрыли в тот же день. Теперь сдачу сверяем по формулировке заказчика. Собственное понимание в расчёт не берём.
Частые вопросы
Сколько времени занимает внедрение ИИ-бота для продажи билетов?
В этом проекте активная работа началась 5 августа. К вечеру 18 августа было закрыто 8 этапов из 9, в репозитории 42 коммита за 12 дней. От старта до функционально готового бота вышло около двух недель. Дальше шли живое тестирование и поэтапный выкат по каналам с сутками наблюдения на каждом.
Может ли нейросеть сама считать стоимость билетов?
Нет. Подбор из двух десятков пакетов это перебор комбинаций с ограничениями, и на нём модель уверенно врёт. Суммы считает обычный код: 694 автопроверки на 144 составах гостей. Модель разбирает состав компании из свободного текста и пересказывает готовые числа словами.
В каких каналах бот отвечает гостям?
Виджет на сайте, ВКонтакте, Telegram, MAX и соцсети. Все пять каналов сходятся в одну платформу автоматизации, которая уже стояла у заказчика. До внедрения свободный текст уходил живому менеджеру, замеренная задержка ответа была около тридцати минут.
Что делает бот, если не знает ответа?
Для спорных тем есть отдельная карточка базы знаний: там бот обязан сказать «уточню у администратора». Эскалация к человеку срабатывает по просьбе гостя, жалобе, проблеме с оплатой или после двух неудачных попыток закрыть один вопрос. Бот уведомляет менеджера и сам ставит себя на паузу.
Чем ИИ-бот отличается от кнопочного чат-бота?
Кнопочные сценарии закрывают типовые вопросы и остаются в приоритете. ИИ подхватывает только свободный текст, который кнопки не поймали. Раньше такие сообщения ждали живого менеджера около тридцати минут.
