Статья о разработке чат-бота по ответам на часто задаваемые вопросы пользователей. Разработка еще ведется на текущий момент и хотелось бы получить от профессионалов обратную связь: вопросы, мнения, пожелания, комментарии
Уважаемые коллеги, предлагаю в этой статье ознакомиться с возможностями разрабатываемой нами системы «Консультант 1С». Будет несколько скомкано, так как писалось на коленке
Цель разработки – освободить одинэсников от часто задаваемых вопросов пользователей, а пользователям экономить время и общаться с помощником онлайн, получая ответы мгновенно:
А почему в ТОРГ-12 не выводится должность в графе «Отпуск разрешил»?
А как обновить КЛАДР?
А как заполнить производственный календарь?
И прочее… прочее… прочее
После первого же года работы с 1с мы стали понимать, что львиную долю рабочего времени съедают ответы на вопросы пользователей, ответы на которые мы зачастую и сами не знали. Приходилось самостоятельно гуглить, читать форумы, переваривать кучу информации, чтобы выдать корректный ответ пользователю, резонно интересующимся об алгоритме работы РАУЗ (расширенная аналитика учета затрат).
Обычно пользователи при возникновении вопросов в работе программы действуют следующим образом (последовательность может меняться):
Обращение к коллегам с надеждой, что они уже сталкивались с аналогичной проблемой;
Поиск в интернете на тематических форумах;
Звонок на линию консультации или своему знакомому фрилансеру, который часто в этот момент занят чем-то другим, и отправка вопроса на e-mail с надеждой получить ответ когда-нибудь.
Далее подключается специалист по выбранной тематике, анализирует вопрос и спустя сутки и более, наконец-то, …. пользователь получает пачку уточняющих вопросов.
Мы решили изменить эту порочную практику.
Мы обозначили для себя проблематику и стали искать решение. Вроде бы все просто - из университетского курса работы с экспертными системами было понятно - надо всего лишь построить огромную базу знаний и правильно обрабатывать вопросы пользователей («Я ничего не трогала, оно само сломалось!!! Срочно помогите»).
Построение базы знаний – работа трудоемкая, но простая и понятная. А вот процесс обработки вопроса пользователя стал для камнем преткновения. Мы видели два решения:
Построение словаря системы с кучей if … then;
Разработка (как бы это громко не звучало) искусственного интеллекта, обучающегося на большой выборке данных.
Первый вариант предполагает в последующем очень трудоемкую поддержку этого словаря с развитием функционала 1с. Грубо говоря, каждое новое обновление релиза потребует от нас новых усилий по актуализации словаря. Не говоря уже о выходе новых конфигураций, коих выходит довольно много в последнее время («автоматизация бабушек, торгующих семечками»).
Второй же вариант, построенный на математической модели данных в среде Python, уже в в первом приближении давал хороший результат. Если вкратце, то по словам-якорям (так мы назвали определяющие слова, такие, например, как «Расчет», «Себестоимость», «Отчетность») мы построили многомерное пространство, осями которого стали эти слова-якоря:
0 – якорь не связан с вопросом,
1 – якорь содержится в ответе на вопроc.
В добавок системе нужна обратная информация от пользователя для обучения. Поэтому пользователю предлагается 3 наиболее близких по версии системы ответа, один из которых пользователь выбирает в качестве верного, а система корректирует точность.
Ниже показан пример работы демо-системы, в которую загружены 230 пар вопрос-ответов по теме «Управление торговлей 10.3».
Был задан вопрос по установке счетов учета номенклатуры. Стоит сказать, что правильного ответа в системе нет. Вот результат.
Вопрос:Как установить счета номенклатуры?
Ответы:
Чтобы было понятно, каждый ответ связан с каким-то вопросом. Вот полный ответ системы с ранжированием по совпадению.
А теперь зададим тот же вопрос, но поточнее:
Было: «Как установить счета номенклатуры?»»
Стало: «Как установить счета учета номенклатуры?»
Ответ для 1с:
Полный ответ системы со связанными вопросами:
Здесь уже наблюдается два ответа из нужной тематики и точность в процентах выше.
Стоит сказать о том, что для работы пользователей в 1с используется внешняя обработка, которая посылает по API к серверу вопрос, а ответ раскладывает на форме. Также скоро будет готов веб-интерфейс.
На этом, в принципе, все. Хотелось бы услышать от профессионального сообщества мнения о нашей работе. В добавок нужно сказать, что сейчас мы активно занимаемся поиском и подготовкой базы знаний для системы – будем рады сотрудничеству.