Чат-бот на основе ИИ для линий помощи беженцам
Стремясь оказать быструю и качественную помощь беженцам, мы разработали чат-бот, который работает 24/7 в популярных мессенджерах, таких как Telegram, Viber, Facebook Messenger, а также на веб-сайтах. Результатом стал гибкий и эффективный смарт-бот, который значительно сокращает время отклика и помогает беженцам в получении необходимой информации и поддержки.

Задача

С начала войны компания QuData занимала активную позицию в помощи Украине и ее гражданам. В связи с увеличением волны украинцев, бегущих от войны, нужно было очень быстро и качественно предоставить базовую информацию о пересечении границы, визе, жилье, работе, образовании, документах, материальной помощи и многом другом. Конечно, это требует большого количества человеческого ресурса ведь по данным пограничной службы, количество беженцев превышало 2 миллиона. Украинский Дом в Варшаве, которым руководит фонд “Наш Выбор”, искали пути, как эффективно помочь им в тяжелой ситуации. Был необходим быстрый запуск инструмента, который может помогать миллионам украинцев 24/7 и сократить время, которое агенты тратят на простые и повторяющиеся вопросы.
Обзор решения

Наша команда приняла решение создать чат-бот, который быстро и одновременно может ответить на базовые вопросы большого количества пользователей. Были выбраны наиболее популярные каналы связи среди Украинцев: Telegram, Viber, Facebook Messenger и WEB.
Наши коллеги из Украинского дома в Польше собрали наиболее часто задаваемые вопросы и ответы на них. В связи с необходимостью запуска такого инструмента, команда QuData в кратчайшие сроки создала, протестировала и запустила виртуального ассистента для беженцев.
Первоначально было предложено решение с помощью фреймворка Rasa. Нам нужно было существенно снизить время обучения модели, поскольку в приоритетности были кратчайшие сроки выполнения. Наша команда создала модель машинного обучения NLU (понимание природного языка) и NLG (генерация природного языка). Модель идентифицирует высказывания и сообщения и группирует их по умыслу. Ключевые слова выделяются в сообщениях как сущности.
Исторически сложилось, что в Украине общаются на украинском и русском языке. Большинство людей используют эти два языка одновременно, то есть в одном предложении могут быть как слова и фразы на украинском, так и русском. Это было своеобразным вызовом, ведь модель NLU может понимать определенный язык. Мы нашли решение этой проблемы, чтобы улучшить качество распознавания языка пользователей.


Технические детали

Наш чат-бот использовал несколько модулей и дополнительный модуль обработки NLU. Сначала нашей командой было предложено решение NLU от фреймворка Rasa и наш NLU-движок.
В версии бота с фреймворком Rasa для обучения и работы используются модели машинного обучения. Мы пытались найти самое эффективное решение, которое можно реализовать в кратчайшие сроки. Поскольку процесс обучения, которым мы занимались, был длинный и неустойчивый, мы решили использовать личный NLU-движок и алгоритм. Модуль NLU обучается в 10 раз быстрее, чем модуль Rasa.
Наш движок, написан на Python, загружает конфигурацию модели и логики и использует их для работы. Определением намерений и выделения сущностей занимается наш NLU-движок, который является составной частью блока логики.
В результате сравнения и анализа мы определили основные преимущества нашего NLU:
- Более гибкая система "намерение - ответ". Например, на одно намерение может быть определено несколько ответов, каждый из которых выполняется при определенном условии.
- История ответов. Сохраняет последовательность распознанных намерений и ответов на них – благодаря истории ответов легко понимать диалог.
- Может из одной модели распознавать несколько языков. При формировании блока логики, можем указать на каком языке происходит обращение.
Стек технологий

Python

NLU

RASA
