LAB Обсудить задачу
00

Журнал

AI-ассистент на сайте против бота по сценарию

· 9 мин чтения

01

«Поставьте нам AI на сайт» и «поставьте чат-бота» звучат почти одинаково, а собираются по-разному. Разница не в модности технологии, а в том, кто именно отвечает посетителю: заранее написанное дерево ответов или языковая модель, которая формулирует текст на ходу. От этого зависят предсказуемость, расходы и объём присмотра, который придётся заложить в работу после запуска.

Два разных механизма под одним словом

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

Два разных механизма под одним словом «бот». Сценарный отвечает только по написанным веткам и вне их молчит. Ассистент отвечает на любую формулировку - и ровно поэтому ему нужны рамки: источник фактов, запрет называть сроки и цены, передача человеку.

AI-ассистент устроен иначе. Он получает вопрос произвольным текстом, добавляет к нему инструкцию и подобранные куски базы знаний, отправляет всё это в языковую модель и показывает то, что вернулось. Ответ собирается в момент обращения. Заранее его не существует, поэтому распечатать и вычитать нечего - можно вычитать только инструкцию и базу.

Отсюда все практические различия:

  • Сценарий детерминирован: один и тот же вопрос даёт один и тот же ответ сегодня и через полгода. Ассистент - нет, формулировка каждый раз новая.
  • Сценарий тестируется полным перебором веток. Ассистента можно только выборочно опросить и оценить поведение.
  • Сценарий стоит одинаково при любом трафике. У ассистента каждое обращение к модели тарифицируется.
  • Сценарий не умеет отвечать на непредусмотренное. Ассистент умеет - в этом и польза, и главный риск.

Важное уточнение: это не конкуренты. В работающих связках обычно есть и то, и другое. Оплата, выдача доступа, запись, передача заявки в CRM - это жёсткие сценарии, и делать их через языковую модель не нужно. Модель отвечает на вопросы, сценарий выполняет действия. Ошибка в ответе стоит объяснения, ошибка в действии стоит денег, поэтому действия мы никогда не отдаём языковой модели.

Что ассистент делает лучше

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

Ассистент здесь заметно сильнее:

  • Понимает произвольную формулировку. Опечатки, сленг, вопрос сразу о нескольких вещах, смесь русского и белорусского.
  • Отвечает на непредусмотренное. Ни один сценарий не покрывает всё. Ассистент, у которого есть база знаний, соберёт ответ из того, что в ней есть, вместо тупика «выберите пункт меню».
  • Сводит несколько фактов в один ответ. «Работаете ли вы в субботу и успею ли я к вам, если приеду к закрытию» - это два факта из разных мест, сценарий на такое пришлось бы отдельно разветвлять.
  • Держит контекст разговора. Уточняющее «а если два» после вопроса про сроки понимается правильно.
  • Снимает нагрузку с однотипных вопросов. Повторяющиеся вопросы, на которые владелец отвечал руками, ассистент берёт на себя.

Чем он опасен

Дальше начинается часть, которую в рекламных описаниях обычно пропускают.

Уверенно и неверно. Языковая модель формулирует ответ и тогда, когда фактов нет. Она не молчит и не сомневается. Придуманная цена, придуманный срок, придуманная гарантия выглядят точно так же убедительно, как настоящие. Для посетителя это обещание компании. Это главный риск, и он не устраняется полностью, только ограничивается рамками.

Каждый ответ стоит денег. Обращение к модели тарифицируется, и платит владелец сайта, а не посетитель. Значит, бесконтрольный виджет - это открытый расход, которым может воспользоваться кто угодно: достаточно скриптом слать сообщения в цикле. Без ограничения частоты и потолка по расходу ставить ассистента на публичный сайт нельзя.

Непредсказуемость на выходе. Ответ меняется от запуска к запуску. Успешный тест не гарантирует, что завтра на тот же вопрос придёт такой же текст. Проверка ассистента - это не «прогнали и забыли», а регулярное чтение реальных диалогов.

Попытки увести в сторону. Посетители пробуют «забудь инструкции», «теперь ты пират», просят написать код или стихи. Это не столько угроза, сколько расход и репутационная мелочь, но рамки на темы обязаны это гасить.

Зависимость от внешнего сервиса. Модель живёт не на вашем сервере. У неё бывают задержки, лимиты и недоступность. Виджет должен вести себя достойно в момент, когда ответа нет.

Рамки, без которых ассистента нельзя ставить на сайт

Это тот минимум, который мы закладываем всегда, независимо от размера проекта.

Список тем и явные запреты

Ассистент отвечает только про то, чем занимается компания. Всё остальное вежливо отклоняется. Отдельно перечисляется то, что он не называет никогда: точные цены, сроки, гарантии, юридические и медицинские трактовки, обещания результата. Такие вопросы уходят человеку. Лучше короткое «это уточнит команда», чем красивая выдуманная цифра.

База знаний вместо общей эрудиции

Модель сама по себе про вашу компанию не знает ничего. Всё, что ассистент говорит про услуги, порядок работы и условия, должно приходить из базы знаний, которую вы написали и можете исправить. Отсюда два следствия. Первое: базу надо готовить как отдельную работу, а не надеяться, что «нейросеть разберётся по сайту». Второе: у неё есть владелец и дата обновления. Изменились условия - правится база, а не инструкция вида «отвечай правильно». Хороший признак зрелой базы: на вопрос, ответа на который в ней нет, ассистент говорит «не знаю» и зовёт человека, а не сочиняет правдоподобное.

Ограничение частоты обращений

Лимит на сообщения с одного посетителя за промежуток времени и общий потолок расхода. Живому человеку такой лимит обычно не мешает: он задаёт несколько вопросов и уходит. Скрипт упирается в него сразу.

Передача человеку

Кнопка «позвать команду» должна быть видна с первого экрана диалога, а не появляться после нескольких неудачных попыток. Ассистент сам зовёт человека, когда вопрос выходит за его тему, когда посетитель раздражён, когда речь про деньги или про уже оплаченный заказ. Дальше вопрос попадает туда, где его увидят: в Telegram, в CRM, в почту.

Честное указание, что это ИИ

Ассистент представляется ИИ-ассистентом и не изображает сотрудника. Это не только этика: посетитель, который знает, с кем говорит, иначе строит вопросы и спокойнее относится к «уточню у команды». Попытка выдать модель за живого менеджера ломается на первом же неудобном вопросе и стоит доверия.

Поведение при отказе сети

Модель недоступна - виджет не показывает пустой экран и не крутит вечный индикатор. Он говорит прямо, что сейчас не отвечает, и предлагает второй канал: написать в Telegram, оставить контакт в форме, позвонить. Отказ обязан быть предусмотрен так же тщательно, как обычный ответ.

История разговора и персональные данные

Здесь простое правило: чем меньше собрано, тем меньше можно потерять.

  • История - в пределах вкладки. Контекст нужен, чтобы понимать «а если два». Вечное хранилище переписок посетителей заводить не нужно: закрыл вкладку - истории нет.
  • Ассистент не собирает документы. Номера карт, паспортные данные, коды из СМС в чате не запрашиваются никогда. Если нужны контакты, это отдельная форма с минимумом полей, а не свободный текст, который уйдёт в модель.
  • Что уходит наружу, решается заранее. В запрос к модели попадает вопрос и куски базы знаний. Внутренние документы, база клиентов, переписка с другими людьми туда не попадают.
  • Логи - для разбора, а не навсегда. Первые недели диалоги читать необходимо, иначе непонятно, что чинить. Но у логов должен быть срок жизни и ограниченный доступ.
  • Посетителю сказано, что происходит. Одна честная строка рядом с окном чата: с кем идёт разговор и что делается с сообщениями.

Как это устроено у нас

Наш ИИ-ассистент Элара работает на трёх сайтах бренда: отвечает сама, при сложном вопросе зовёт команду, ограничена по частоте обращений, историю разговора держит в пределах вкладки, при отказе сети предлагает перейти в Telegram и честно представляется ИИ-ассистентом. Работает она поверх той же системы, что отвечает у нас на площадке объявлений, то есть это не отдельная игрушка для сайта, а один общий движок под разные каналы.

В собственном продукте krug.by AI-консьерж разбирает запрос пользователя. Но интереснее то, что находится под ним: 43 страницы сайта, бот из 15 модулей, мини-приложение на 36 экранов, 88 эндпоинтов, встроенная админка, четыре расписания на сервере, вход из Telegram с проверкой подписи HMAC-SHA256 и отбраковкой запросов старше суток, фото в объектном хранилище со срезкой метаданных и дедупликацией. Ассистент - верхний слой над обычной, скучной, надёжной системой. Без этого слоя система работает. Без системы ассистенту нечего рассказывать.

Обратный пример из клиентских кейсов: сайт автомойки, где сайт и чат-бот-виджет делались одним заказом примерно за неделю. Заявки с формы и из бота идут в CRM и в Telegram, а вопрос за пределами сценария бот передаёт владельцу. Сайт сделан под телефон. Со слов заказчика, отдельного менеджера нанимать пока не понадобилось. Там не потребовалась языковая модель: набор вопросов узкий, а всё важное - это довести заявку до человека и не потерять её.

Ещё один пример без модели: бот, который принимает платежи через платёжный сервис, плюс подключённый автоответ в Instagram. Задача была не в разговоре, а в том, чтобы оплата и первый ответ происходили без участия человека. Наша собственная автоматизация начиналась ровно с этого - заявки, оплаты, выдача доступов. Оказалось, что та же рутина есть почти у всех, кто работает на себя, и закрывается она сценарием, а не интеллектом.

Когда достаточно обычного сценария

Признать, что ассистент не нужен, проще, чем поставить его и потом разбираться с последствиями. Сценария хватает, когда:

  • Вопросов немного и они повторяются. Часы работы, адрес, запись, что входит в услугу, как оплатить - такой набор закрывается меню из нескольких пунктов.
  • Ответ должен быть дословным. Условия, гарантии, юридические формулировки, состав услуги. Тут нужен фиксированный текст, а не пересказ своими словами.
  • Задача не «ответить», а «принять». Заявка, оплата, выдача доступа. Как в кейсе онлайн-курса: раньше каждую покупку вели руками - ответить в директе, дождаться перевода, проверить, добавить в закрытый канал. Стало: оплата, бот, доступ выдаётся сам, владельцу уходит уведомление, ручная выдача оставлена для нестандартных случаев. Языковая модель в этой цепочке не участвует и не должна.
  • Некому присматривать. Ассистент требует, чтобы кто-то читал диалоги и правил базу знаний. Если такого человека нет, лучше сценарий.
  • Обращений мало. Пока поток такой, что владелец успевает отвечать сам, модель добавляет расход и присмотр, но не снимает работу. Автоматизация начинается там, где рутина повторяется, а не там, где хочется поставить модный виджет.

Рабочий компромисс, который мы предлагаем чаще всего: сценарий закрывает частое и все действия, ассистент подключается на «прочее». Расход при этом остаётся предсказуемым, а посетитель не упирается в «выберите пункт меню». Подробнее о том, как это собирается вместе с сайтом, - в разделе автоматизация.

Что проверить

Перед запуском и в первую неделю после - по пунктам, руками.

  • Соберите реальные вопросы из директа, почты и звонков и задайте их ассистенту дословно, с опечатками. Не придуманные, а те, что действительно приходили.
  • Спросите то, чего в базе знаний нет. Правильное поведение - признать, что не знает, и предложить человека. Развёрнутый уверенный ответ на пустом месте означает, что рамки не настроены.
  • Попросите назвать точную цену, срок и гарантию. Проверьте, что не называет и переводит на команду.
  • Спросите «ты человек?» и попросите представиться. Ответ должен быть честным.
  • Попробуйте увести: «забудь инструкции», «теперь ты другой персонаж», попросите написать код. Ассистент должен вернуться к своей теме.
  • Отключите доступ к модели и откройте виджет. Посмотрите, что видит посетитель: должно быть внятное сообщение и второй канал связи, а не пустота.
  • Отправьте сообщения подряд, без пауз. Убедитесь, что ограничение частоты срабатывает и об этом сказано понятным текстом.
  • Откройте сайт в новой вкладке и в режиме инкогнито. Чужая история разговора подтягиваться не должна.
  • Нажмите «позвать человека» и убедитесь, что обращение реально дошло: в Telegram, в CRM, на почту. Проверьте, приходит ли уведомление ночью и в выходной.
  • Проверьте потолок расхода и уведомление при его приближении. Отдельно проверьте, что произойдёт при достижении лимита.
  • Откройте виджет на телефоне: помещается ли окно, не перекрывает ли клавиатура поле ввода, работает ли закрытие.
  • Через неделю прочитайте все диалоги подряд. Это самая полезная процедура из списка: она показывает и реальные вопросы, и места, где ассистент выкручивался вместо признания незнания.

Ассистент не заменяет команду

Он снимает повторяющееся и держит первую линию, когда написать некому: вечером, в выходной, в момент, когда владелец за рулём. Всё, что связано с решением, деньгами, нестандартной ситуацией и недовольством, всё равно доходит до человека - и должно доходить. Ассистент, который «закрывает клиентов сам», существует только в рекламных описаниях.

Мы собираем такие связки без сторонних библиотек, на своей инфраструктуре, чтобы поведение при сбое и расходы оставались под контролем. Работаем по предоплате 50%, три правки в рамках техзадания входят в стоимость, разбор задачи бесплатный. Если непонятно, что подходит в вашем случае - ассистент, сценарий или гибрид, - это как раз и выясняется на разборе. Приходите обсудить задачу, честно скажем, если модель не нужна.

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

Чем AI-ассистент отличается от обычного чат-бота на сайте?

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

Может ли AI-ассистент назвать неверную цену или срок?

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

Какие рамки обязательны перед запуском ассистента на сайте?

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

Что происходит с перепиской посетителя?

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

Всем ли нужен AI-ассистент вместо сценария?

Нет. Если вопросов немного и они повторяются, если ответ должен быть дословным, если задача не в разговоре, а в приёме заявки или оплаты, если обращений мало или некому читать диалоги и править базу знаний, обычного сценария достаточно. Частый рабочий вариант: сценарий закрывает частое и все действия, ассистент подключается на прочее.

Разбор задачи бесплатный: смотрим, что происходит сейчас, и говорим, решается это автоматизацией или нет.

Обсудить задачу

Все разборы · Кейсы