Этот чат-бот поможет получить информацию о случаях covid19 в штатах Индии.
Фреймворк Rasa используется для разработки чат-бота, который будет предоставлять информацию о случаях Covid 19 в штатах Индии. Rasa — это платформа машинного обучения с открытым исходным кодом, которая помогает нам разрабатывать чат-ботов с искусственным интеллектом.
Архитектура Rasa: как она обрабатывает сообщения и ответы.
- Пользователь общается с чат-ботом через сообщение, сообщение принимается и передается интерпретатору, который преобразует его в словарь, включая исходные сообщения и намерения. Этим занимается NLU. Файл NLU.md находится в папке проекта чат-бота.
Пример: показать случаи заболевания covid19 в штате Карнатака.
В этом сообщении показано намерение, а объектами являются covid19 и karnataka. Это будет преобразовано в словарь NLU.
2. Трекер — это объект, который отслеживает сообщения, поступающие от пользователя.
3.Политика получает текущее состояние трекера и решает, какое действие предпринять дальше.
4. Какие действия предпринять сейчас, зависит от вопроса пользователя
5.Совершенное действие отслеживается трекером.
6.Ответ отправляется пользователю.
Шаги для запуска проекта:
Обязательное условие: Rasa должна быть установлена в системе.
Инициализируйте Rasa в папке проекта, команда ‹Rasa Init›, она инициализирует начальный чат-бот в папке проекта. В папке проекта будут все необходимые файлы.
Структура каталогов проекта будет содержать необходимые файлы для разработки чат-бота.
Настройка среды разработки завершена. Теперь начнем писать Intent и сущности для получения информации о COVID19 в зависимости от состояния. Папка данных содержит файл nlu.md, файл откроется и начнет записывать намерение, связанное с поиском covid19. Эти данные необходимы для обучения модели.
Снимок файла nlu.md:
Следующим шагом будет создание историй для намерения covid_state в файле stories.md. История — это не что иное, как путь, по которому она будет следовать пути разговора. Интент covid_sate должен присутствовать в файле stories.md, так как это необходимо для определения пути диалога. Это должно быть то же имя, что и в файле nlu.md.
Сюжетный путь:
То же намерение «covid_state» присутствует в файле stories.md. Как бот будет реагировать, как только обнаружит намерение, путь определяется определением «atction_state». Это «action_state» должно присутствовать в файлах domain.yml и action.py.
Теперь откройте файл domain.yml и определите сущность в блоке сущности и action_state в блоке действия.
Следующим шагом будет определение действия, ответа или сообщения от пользователя. Ответ записывается в файл action.py.
Файл action.py может вызывать базу данных или файлы, откуда он получает данные, связанные с covid, для индийского штата.
Ответ на этот вопрос оформлен в файле action.py.
вопрос от пользователя к чат-боту:
Ковидные случаи в Карнатаке?
Чат-бот должен дать ответ на этот запрос в режиме реального времени. Но вопрос, как чат-бот получит эти данные для ответа пользователю. Существует открытый API, который дает данные в реальном времени. Будет использовать этот API для получения данных для бота.
API данных json размещен по ссылке ниже, мы будем использовать эту ссылку для нашей модели чат-бота.
https://api.covid19india.org/data.json
Файл action.py будет формировать ответ на запрос пользователя. В action.py будет пакет запросов импорта, который будет использоваться для получения запроса json для данных из вышеуказанного API. Метод, который запрашивает json API для данных covid и отфильтровывает их для соответствующего ответа на запрос. снимок кода метода выглядит следующим образом:
Чат-бот почти готов, будет модифицировать файл enpoints.yml и обучать модель.
Часть кодирования завершена, пришло время обучить модель.
Команда для обучения модели — «раса поезд», это создаст новую обученную модель в папке моделей.
Обучение модели займет несколько минут, а пока запустите действие ‹rasa run action›
Как только модель будет обучена, она начнет общаться с чат-ботом, связанным со случаями covid19 в Индии.
Начать общение с чат-ботом:
Это данные в реальном времени, которые периодически обновляются.
Интегрируйте этого чат-бота с сайтом:
Для размещения чат-бота на веб-сайте следует изменить файл учетных данных.yml, чтобы добавить socketio, открыть файл учетных данных.yml и добавить следующие строки:
socketio:
user_message_evt: user_uttered
bot_message_evt: bot_uttered
session_persistence: true
Далее нужно создать html-страницу, на которой будет работать этот бот, и добавить этот скрипт в тег body html-файла.
‹div id="webchat"/›
‹script src=""https://storage.googleapis.com/mrbot-cdn/webchat-latest.js"'›‹/script›
/ / Или вы можете заменить последнюю на конкретную версию
‹script›
WebChat.default.init({
selector: “#webchat”,
initPayload: “/get_started”,
customData: {"language": "en"}, // произвольные пользовательские данные. Сохраняйте минимум, так как они будут добавлены в сокет
socketUrl: ""http://localhost:5"000' ,
socketPath: “/socket.io/”,
title: “Демонстрация бота Rasa”,
subtitle: “Subtitle”,
})
‹/script ›
Далее следует запустить модель и изменить номер порта в скрипте html-страницы.
rasa run -m models — enable-api — cors «*» — отладка
Измените номер порта html-файла в соответствии с приведенным выше выводом.
Все установлено, проверьте следующее:
- проверьте, запущено ли действие, если не запустите его ‹действие запуска rasa›
- убедитесь, что команда выполняется, и сопоставьте порт с выводом этой команды и html-файлом, если он не соответствует, измените порт html-файла.
rasa run -m models — enable-api — cors «*» — отладка
Время пообщаться с ботом, чтобы получить информацию о covid 19 в штатах Индии.
Перейдите в папку проекта, откройте файл index.html в браузере Chrome и начните общаться с ботом.
Пожалуйста, перейдите по ссылке github для получения всего исходного кода: