В этой статье мы создадим чат-бота с нуля, используя платформу RASA, исходный код которой открыт под управлением RASA technologies GmbH. Есть много технической документации по созданию чат-ботов, однако здесь я постараюсь сделать это простым и легким.

Примечание. Я использую веб-сайт бронирования рейсов Make My Trip (MMT), чтобы получить информацию о внутренних рейсах.

Почему РАСА?

Что отличает RASA от Dialogflow, chatterbot или любого другого пакета? Во-первых, для этого нужны некоторые технические навыки / навыки программирования, поэтому мы, разработчики, не собираемся умирать без работы :). Помимо шуток, эти технические навыки позволяют нам легко настраивать нашего чат-бота по сравнению с другими пакетами чат-ботов. Исходный код доступен в репозитории GitHub. А также кодирование на Python старой школы в записных книжках, таких как jupyter или notepad ++, кажется, что вы создаете что-то своими руками.

Давайте начнем прямо сейчас!

Определения

Раса НЛУ - понимание естественного языка; Классификация намерений и извлечение сущностей

Модель управления Rasa Core-Dialogue, которая предсказывает, что будет дальше в разговоре, на основе NLU и истории разговора.

Давайте будем краткими и перейдем к созданию чат-бота. Надеюсь, вы уже установили последнюю версию ядра RASA и RASA NLU.

Добавить понимание естественного языка

Шаг 1. Создайте файл данных, который определяет намерения:

Создайте папку проекта MMT. В MMT создайте две подпапки «data» и «config». «Data» содержит намерение с примерами, а «config» содержит файл конфигурации .yml.

Я создал файл .md в разделе «данные». Его также можно создать в формате .json. Я дал четыре намерения (бегство, информирование, подтверждение, отрицание). Мы определим намерение на основе данных, вводимых пользователем. Мы должны обучить модель NLU, предоставляя несколько примеров для каждого намерения.

Кроме того, я отметил объекты для некоторых вводимых пользователем данных, таких как местоположение и дата. (например, [DEL] (местоположение) «DEL» - это значение, а «местоположение - это объект»).

Шаг 2. Создайте файл конфигурации (.yml или .yaml)

Файл конфигурации определяет используемый нами конвейер. Входящие сообщения обрабатываются последовательностью компонентов. Эти компоненты выполняются один за другим в так называемом конвейере обработки. Существуют компоненты для извлечения сущностей, классификации намерений, предварительной обработки и т. Д. Каждый компонент обрабатывает ввод и создает вывод. Выходные данные могут использоваться любым компонентом, который идет после этого компонента в конвейере.

Мы обсудим встроенные конвейеры и пользовательские конвейеры в следующих разделах.

Шаг 3. Обучите модель NLU

Обучите модель с данными NLU и настройками конвейеров. Модель сохраняется внутри models / nlu.

Для оценки я проанализировал вопрос («Получу ли я последнюю информацию о рейсе»), и уверенность оказалась 95% для намерения: полет. Значит, наша модель обучена хорошо.

Теперь я обучу ядро ​​RASA или модель управления диалогом в следующем разделе и попробую запустить бота на моем локальном компьютере.

Часть 2

Https://medium.com/@ashumountain/build-a-flight-search-chatbot-from-scratch-using-rasa-part-2-4e99abee4e88

Репозиторий проекта на Github:

Https://github.com/ashukrishna100/MMTchatbot/tree/master/MMT/MMT