Чат-бот на основі Штучного Інтелекту для біженців

Прагнучи надати швидку та якісну допомогу біженцям, ми розробили чат-бот, який працює 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

Python

NLU

NLU

Rasa

RASA

JavaScript

JavaScript