Практическое руководство

Создавайте чат-ботов с помощью Rasa 2.0 без усилий: пошаговое руководство

Прямо от установки до общения с ним

Что такое раса?

Rasa - это платформа машинного обучения с открытым исходным кодом для автоматизированных текстовых и голосовых разговоров. Понимайте сообщения, проводите беседы и подключайтесь к каналам обмена сообщениями и API.

Что нового в Rasa 2.0?

Простота использования для новичков и замена уценки на YAML.

Установка Расы

Основная предпосылка здесь - Анаконда. Это помогает обрабатывать пакеты и предохранять различные зависимости кода друг от друга.

Независимо от того, работаете ли вы в системе Windows или Linux, эти команды будут работать:

conda create -n rasa python=3.6
conda activate rasa
# pip install rasa[full] # adds all dependencies of rasa
pip install rasa

Это оно!

Если вы используете pip install rasa[full], он установит все зависимости (spaCy и MITIE) Rasa для каждой конфигурации, что упростит вашу жизнь.

Осторожность:

Во время установки возникает конфликт в зависимостях Tensorflow и Rasa, то есть NumPy. Tensorflow требует Numpy ‹0,19, а Rasa - 0,19,4.

Если вы попытаетесь запустить Rasa, вы столкнетесь с ошибкой выполнения.

Чтобы решить эту проблему, просто понизьте свой Numpy:

pip install numpy==0.19

Перед тем, как мы начнем

Давайте разберемся с некоторыми основными концепциями Раса.

Намерение

О чем хочет спросить пользователь?

Сущность

Какая важная информация содержится в запросе пользователя?

История

Как может пойти разговор?

Действие

Какие действия должен предпринять бот по конкретному запросу?

Давайте начнем

Первое, что нужно сделать:

rasa init

Затем вам будет предложено создать образец проекта Rasa в текущей папке.

Вот как будет выглядеть образец проекта. Файл модели создается после обучения модели.

Первая остановка: nlu.yml

Вот как выглядит файл. Для начала это довольно интуитивно понятно.

Чтобы создать своего собственного чат-бота, вам придется закодировать в него некоторые намерения. Если вы делаете чат-бота для города, намерениями будут туристические направления, рестораны и т. Д.

Убедитесь, что названия намерений не повторяются.

Чтобы выразить новое намерение, нам просто нужно выполнить одно из указанных выше намерений. Намерение сообщает нам название намерения. Примеры говорят нам, на каком языке следует понимать это намерение. Обязательно приведите хотя бы 2 примера.

Вторая остановка: actions.py

Чтобы создать свои собственные настраиваемые действия, можно следовать этому примеру.

Вам нужно будет создать дочерний класс Action, который будет иметь две функции: name и run. Функция name будет возвращать имя действия, которое будет использовать чат-бот. Функция run будет содержать функции, выполняемые вашим действием, такие как вычисление некоторых чисел, получение данных из Интернета и т. Д. Используя dispatcher.utter_message, вы можете отправить ответ через чат-бот, такой как ответ на вычисление.

Убедитесь, что названия любых двух действий не совпадают.

Третья остановка: domain.yml

domain.yml содержит знания о домене чат-бота, то есть информацию, необходимую ему для работы (что люди будут спрашивать, и что он должен ответить или сделать?).

Если вы хотите использовать действия в своем чат-боте, вам также необходимо добавить в этот файл раздел действия. Если нет, пропустите эту часть.

actions:
  - action_1
  - action_2

В разделе действия введите название действий, которые вы создали на предыдущем шаге.

В разделе намерения вы должны указать свои собственные намерения.

Следующим шагом будет создание высказываний в разделе ответы, то есть ответы, которые ваш чат-бот будет давать пользователю, когда задается вопрос о намерениях.

Убедитесь, что имена ответов не повторяются.

Дайте уникальные имена ответов и под ними дайте ответ, который вы хотели бы дать, когда задали вопрос об определенном намерении.

Четвертая остановка: stories.yml

Это то место, где мы все сшиваем.

В разделе Истории представлены различные способы ведения беседы между пользователем и чат-ботом. Здесь вы размещаете свои истории для своего чат-бота.

Следуя примеру вышеприведенных примеров, вы сначала укажите название истории и шаги в ней. Вы можете указать названия высказываний и действий в части рассказа о действиях.

Таким образом, ваши намерения относятся к разделу намерения истории, а ваши действия и высказывания - к части действия рассказа.

Обучение чат-бота

Теперь вы поместили всю информацию о вашем персонализированном чат-боте в различные файлы. Давайте обучим вашего чат-бота.

rasa train

Просто введите указанную выше команду и позвольте волшебству случиться!

Запуск чат-бота

Теперь вы можете интегрировать этого чат-бота в свой собственный веб-сайт, Facebook Messenger, Slack, Telegram, Twilio, Microsoft Bot Framework, Cisco Webex Teams, RocketChat, Mattermost и Google Hangouts Chat. Вы также можете подключить чат-бота к любой другой платформе, но вам придется создать свой собственный настраиваемый коннектор.

А пока давайте протестируем его на локальном хосте.

Примечание. Если вы использовали действия в своем чат-боте, вам необходимо раскомментировать раздел action_endpoint в endpoints.yml . Затем откройте отдельный терминал. Убедитесь, что вы находитесь в папке Rasa. Затем вам нужно запустить rasa run actions

Теперь наступает момент истины.

Есть два способа запустить Rasa: в оболочке и на локальном хосте.

В оболочке

Для запуска Rasa внутри оболочки просто введите команду в терминале, открытом в папке Rasa:

rasa shell

Эта команда запустит сервер Rasa, и вы сможете поговорить с чат-ботом прямо в терминале.

На локальном хосте

Другой способ - запустить Rasa на локальном сервере. Для этого просто запустите следующую команду из терминала, открытого в папке Rasa:

rasa run

Это запустит Rasa в вашей локальной системе и предоставит конечную точку REST на порту 5000 на локальном хосте.

Разговор с чат-ботом

В оболочке

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

Бот отвечает: «Привет! Как дела? »На мой« привет ».

На локальном хосте

Для связи с конечной точкой REST, предоставляемой сервером Rasa, вы можете использовать команды cURL (для любителей Linux) или Postman. Я предпочитаю Почтальон из-за простоты использования.

Вам необходимо отправить POST запрос на URL:

http: // localhost: 5005 / webhooks / rest / webhook

В теле запроса выберите вариант необработанные в Postman.

В формате JSON необходимо указать два ключа: отправитель и сообщение.

Введите фиктивное значение в поле отправителя, и сообщение будет вашим запросом к чат-боту.

Вам будет возвращен JSON с ключами: recipient_id и text. text будет содержать ответ чат-бота на ваш запрос и recipient_id будет таким же, как ключ отправителя, который вы отправили в запросе.

Резюме

Мы поняли, как легко создать чат-бота с помощью Rasa. Мы поняли основные концепции структуры Rasa, то есть намерение, сущность, действие и историю. Мы поняли, что нужно сделать для создания персонализированного чат-бота, подходящего для наших нужд. Мы поняли, как запускать Rasa в оболочке и на локальном хосте (и взаимодействовать с ним). Мы также понимали различные подводные камни, которые могут возникнуть при установке и запуске Rasa.