Область применения
Чат-боты должны закрыть простые и средне сложные диалоги с клиентами, где клиент имеет цель, связанную с получением своих данных (история платежей, уточнения счета, параметрических запросов) и простых консультаций, справок или запросов к нечувствительным данным из базы знаний. Бот может направить на страницу нужных услуг. Чат бот вполне может стать помощником, вовремя оплатить квартплату, напомнить о счете за интернет и предложить оплатить его. Чат бота может - выслать родным почтовую карточку с деньгами. Чат бот может познакомить клиента с чем-то новеньким, чего он не знает. И вообще - смогут сделать больше: показать прогноз погоды, вызвать такси, включить плейлист, или цитатник, найти факты в Википедии. Чат бот может помочь подать свое резюме на работу в Сбербанке. Можно узнать ближайшее отделение или банкомат. К Сбербанку есть доверие, поэтому если чат боту будет задан вопрос “Найдите мне тур в Грецию с 28 апреля до 10 мая”, то он его найдет. Можно проводить персональные акции.
Идеология
==============================================================
1. Клиент начинает общение с чат-ботом с определенной деловой целью - получить данные, получить консультацию.
===============================================================
У чат бота всегда есть цель - удовлетворить насущную проблему клиента. То что клиент начинает общение в чат-боте с вполне определенной для него деловой целью будем считать начальной посылкой. Бот может подсказывать ответы клиенту.
================================================================
2. Наша цель “дотолкать” клиента до “конечного запроса”, который мы можем явно идентифицировать, и выполняем его.
================================================================
Рассмотрим пока гипотетическую ситуацию - у нас есть идеальный чат бот, который довел клиента до финиша. На финише мы получили от клиента запрос “Хочу посмотреть последние операции на моем счету”. (Не очень удачный пример, надо придумать посложнее.) “Сколько я потеряю денег если досрочно закрою долларовый вклад?”. Будем считать что такие запросы конечными (def) и мы уже можем полностью удовлетворить запрос клиента.
================================================================
3. Предметная область - это замкнутый мир у которого есть вход и выход. Этот мир замкнут на командах, с помощью команд клиент двигает внутренний визард цели. Например, примером предметной области может быть “Вклады физлиц: запросы данных и консультация”. У каждой предметной области есть свои “конечные запросы”.
================================================================
Мы должны трактовать достижение цели клиентом как получение результата в рамках предметной области. Каждая область обладает своим языком (набор команд), своими сущностями (системными и пользовательскими), контекстом, своими стандартными визардами.
================================================================
4. Клиента можно “дрессировать” на определенную манеру общения с чат-ботом, которая позволяет ему стандартными вопросами дотолкать чат-бота до назначенной цели.
================================================================
Онлайн общение чат-бота с клиентом вполне обозримое и поддающееся систематизации, поэтому легко докрутить стандартные цели клиента до 100% удовлетворяемости.
================================================================
5. Мы можем ставить конкретные задачи перед разработчиками ИИ. Мы предоставляем им замкнутую предметную модель, с командами и просим построить цифровое пространство, где высчитывается вектор запроса клиента, вектор сравнивается с базовыми векторами команд. На основе этого чат выбирает нужную команду или запускает мини-диалог.
================================================================
Обратная связь в чат-боте организована как в простейшем организме, это реакция на события (сообщения пользователя) в виде выполнения команд. Тут можно подключить ИИ. Ответ клиента - это прежде всего заполнение контекста (в том числе уточнение цели).
Справка: принцип работы нейросети заключается в нахождении связей между контекстами слов согласно предположению, что слова, находящиеся в похожих контекстах, имеют тенденцию значить похожие вещи. Таким образом, можно выявить семантическую близость слов и определить, например, к чему ближе слово кот – к животному или авиации. Работа нейросети, по сути, копирует процесс, происходящий в мозгу человека, когда он обрабатывает сказанные человеку фразы: происходит обработка фразы целиком, а не по каждому слову отдельно.
================================================================
6. Команды эмитирует клиент, мы лишь “ловим” его указания через его сообщение.
================================================================
Будем считать что наш ИИ может связать сказанное клиентом с какой-то командой из нашей предметной области. На первоначальном этапе ИИ можно заменить частотным словарем Rainbow Table. Достаточно быстро можно набрать связки - тысячи вариантов того что может написать клиент -> соответствие определенной команде из конкретной предметной области. Если мы не поняли сказанное клиентом, то можно просто вывести подсказки, чтобы определить команду. Если этого не хватает, то мы запускаем соответствующий мини-диалог для уточнения контекста.
================================================================
7. Малый сценарий - отдельный диалог в рамках предметной области нацеленный на уточнение. Малый сценарий похож на отдельную страницу визарда.
================================================================
В отличие от классических сценариев чат-ботов я хотел бы перенести всю тяжесть на малые сценарные реплики-беседы, связанные конкретизацией контекста или получение конечного запроса. Это позволяет мыслить в рамках визардов, но без них, просто заполняя контекст предметной области и определения конечной цели клиента.
Реализация
Создание чат-бот машины.
Модель работы машины - мы находимся в цикле обработки действий (событий) пользователя, ведем контекст, узнаем у пользователя в какую предметную область мы хотим попасть, подталкиваем пользователя в воронку возможностей через выполнения команд предметной области, включаем диалоги для уточнения цели пользователя, заполняем контекста разговора и докручиваем пользователя до получения конечного запроса, после чего удовлетворяем его запрос.
Элементы чат-бот машины
Менеджер диалогов, пакеты предметных областей, сценарные мини-диалоги, как ответы на события от пользователя, заполнение контекста через сценарные мини-диалоги. Компонент распознавания сущностей.
Прототипирование навыков чат-бота.
Берем предметную область, строим команды предметной области, пишем диалоги для выполнения промежуточных целей, определяем визарды как набор данных.
Тестирование
Подход с использованием предметных областей позволяет отвязаться от жестких сценариев, мы всегда можем добавить экспериментальный диалог, который если не сработает может быть переадресован на предыдущий вариант диалога.
Используемая терминология
Кнопочный интерфейс - это средство переключения предметной области, уточнения предметной области и так далее. Это хинты видные пользователю, которые позволят клиенту в явном виде запросить выполнение команды.
Прогностическая модель действий пользователя - атрибут предметной области, который позволяет автору предметной области объяснить ожидаемое поведение клиента в этой предметной области.
Переключение диалога - переход (по запросу клиента или ИИ решает, что клиент хочет чего-то другого) из одной предметной области в другую.
Канал - место где бот ожидает пользователя.
Навык чат бота - описание того что он может делать. В нашем случае это набор предметных областей.
Сбор необходимой информации - это наполнение диалогового контекста.
Диалоговая задача - атрибут предметной области, который обозначает конечную цель клиента в рамках этой предметной области.
Событие - атрибут предметной области. Типы событий - сообщение от клиента, менеджер диалога может сгенерировать событие - “переход на оператора”.
Контекст события - обрыв связи, долгое молчание клиента, и т.д.
Логи диалогов - разговоры всегда записываются и анализируются.
Типичные обстоятельства - набор осуществленных действий клиента, которые позволят спрогнозировать и предложить ему определенные действия.
Пользовательская сущность (пользовательский контекст) - набор данных про клиента, которая нужна для работы именно этой предметной области. Она живет только в этой предметной области, восстанавливается при повторном вхождении клиента в эту предметную область.
Системная сущность - набор данных про клиента которую мы получаем при входе клиента в чат.
Структура диалога чат бота - как набор циклов (воронок) уточнения.
Осуществленное намерение характеризуется как совокупность этапов, формирование и уточнение умысла пользователя, создание прогностической модели цели пользователя, сбор необходимой информации, выполнение намерения пользователя.