Добро пожаловать обратно в последнюю часть, часть: 3 . в части: 1 и части: 2 мы прочитали о чат-ботах, типах чат-ботов, основных терминах, связанных с чат-ботами, и создали базового чат-бота. мы также узнали о файловой структуре чат-бота RASA и подробно изучили каждый файл. теперь мы запустим нашего чат-бота, добавим в него новые разговоры, а также протестируем его.

давайте начнем снова -

Добавление нового диалога

Добавление новых историй со статическими ответами

  1. откройте файл data/nlu.yml и скопируйте любой формат намерения. замените имя намерения новым именем намерения. заменить и добавить соответствующие примеры для этого нового намерения. всегда заботьтесь об отступах. если какой-либо отступ неверен, это покажет ошибку в обучении.
  2. откройте файл domain.yml, зарегистрируйте новое намерение в файле домена, скопировав старое намерение, а затем замените имя нового намерения старым. (старый все еще там, мы используем копию прошлого, чтобы сохранить тот же формат). добавьте статический ответ в раздел ответов. имя должно начинаться с utter_
  3. откройте файл data/stories.yml, добавьте новую историю с помощью той же копии. изменить старое намерение на новое намерение. и действие для нового ответа (utter_example). мы можем сделать столько истории, сколько захотим. но короткие рассказы предпочтительнее. просто добавьте намерения, зарегистрируйте их в файле домена и добавьте ответы в файл домена. (шаг 1 и 2). и сделать историю в stories.yml
  4. сохраните все файлы и снова обучите модель.

Добавление новых правил со статическими ответами

  1. откройте файл data/nlu.yml и скопируйте любой формат намерения. замените имя намерения новым именем намерения. заменить и добавить соответствующие примеры для этого нового намерения. всегда заботьтесь об отступах. если какой-либо отступ неверен, это покажет ошибку в обучении.
  2. откройте файл domain.yml, зарегистрируйте новое намерение в файле домена, скопировав старое намерение, а затем замените имя нового намерения старым. (старый все еще там, мы используем копию прошлого, чтобы сохранить тот же формат). добавьте статический ответ в раздел ответов. имя должно начинаться с utter_
  3. открыть файл data/rules.yml добавить новое правило тем же копированием. изменить старое намерение на новое намерение и действие на новый ответ (utter_example). здесь мы можем установить короткие правила и использовать только одно намерение в одной истории.
  4. сохраните все файлы и снова обучите модель.

Добавление новых историй с динамическими ответами

  1. откройте файл data/nlu.yml и скопируйте любой формат намерения. замените имя намерения новым именем намерения. заменить и добавить соответствующие примеры для этого нового намерения. всегда заботьтесь об отступах. если какой-либо отступ неверен, это покажет ошибку в обучении.
  2. откройте файл action/actions.py. написать новое действие здесь. формат для приветствия мира уже существует. мы можем использовать этот формат и обновлять его в соответствии с нашими требованиями.
  3. откройте файл domain.yml, зарегистрируйте новое намерение в разделе намерений, скопировав старое намерение, а затем замените имя нового намерения старым. (старый все еще там, мы используем копию прошлого, чтобы сохранить тот же формат). таким же образом зарегистрируйте новое действие в разделе действий.
  4. откройте файл data/stories.yml, добавьте новую историю с помощью той же копии. изменить старое намерение на новое намерение и действие на новое действие. мы можем сделать столько истории, сколько захотим. но короткие рассказы предпочтительнее. просто добавьте намерения, зарегистрируйте их в файле домена, добавьте действие в файл действия и зарегистрируйте его в файле домена. (шаги 1,2 и 3). и сделать историю в stories.yml
  5. сохраните все файлы и снова обучите модель.

Добавление новых правил с динамическими ответами

  1. откройте файл data/nlu.yml и скопируйте любой формат намерения. замените имя намерения новым именем намерения. заменить и добавить соответствующие примеры для этого нового намерения. всегда заботьтесь об отступах. если какой-либо отступ неверен, это покажет ошибку в обучении.
  2. откройте файл action/actions.py. написать новое действие здесь. формат для приветствия мира уже существует. мы можем использовать этот формат и обновлять его в соответствии с нашими требованиями.
  3. откройте файл domain.yml, зарегистрируйте новое намерение в разделе намерений, скопировав старое намерение, а затем замените имя нового намерения старым. (старый все еще там, мы используем копию прошлого, чтобы сохранить тот же формат). таким же образом зарегистрируйте новое действие в разделе действий.
  4. открыть файл data/rules.yml добавить новое правило тем же копированием. изменить старое намерение на новое намерение и действие на новое действие. здесь мы можем установить короткие правила и использовать только одно намерение в одной истории.
  5. сохраните все файлы и снова обучите модель.

Приоритет ответа на общую картину

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

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

поэтому уровень приоритета в порядке убывания будет

  1. Правила
  2. Истории
  3. Отступать

Запуск моделей rasa

Запуск модели rasa в терминале

Пообщаться в терминале с чат-ботом. мы должны сделать 2 терминала

Откройте 1-й терминал и запустите сервер действий

rasa run actions

Откройте 2-й терминал и запустите оболочку rasa.

rasa shell

Это начнет разговор в терминале. Чтобы остановить или перезапустить чат, используйте

/stop

наслаждайтесь общением с ботом rasa.

Запуск модели rasa в rasa-x

Чтобы общаться в rasa-x с чат-ботом.. нам нужно сделать 2 терминала

Откройте 1-й терминал и запустите сервер действий

rasa run actions

Откройте 2-й терминал и запустите rasa x, он откроет rasa x в веб-браузере.

rasa x

Это начнет разговор в терминале. Чтобы остановить или перезапустить чат, используйте

/stop
/stop

наслаждайтесь общением с ботом rasa.

Запуск модели rasa в фоновом режиме

Чтобы запустить раса-модель в фоновом режиме, нам нужно сделать 2 терминала.

Откройте 1-й терминал и запустите сервер действий

rasa run actions

Откройте второй терминал и запустите модель rasa в фоновом режиме.

rasa run -m models — endpoints endpoints.yml — port 5002 — credentials credentials.yml

Это запустит сервер rasa в фоновом режиме. Вы можете отправить внешний ввод в чат-бот, и он даст ответ.

мы берем нашу модель из каталога моделей. конечные точки берутся из файла endpoints.yml… в файле конечных точек указаны конечные точки сервера действий, который работает на порту 5055… Модель rasa работает на порту с номером 5002… если вы хотите изменить номер порта, измените его в файле учетных данных.yml а также в приведенной выше команде… Учетные данные берутся из файла учетных данных.yml…

вы можете отправить запрос на публикацию в чат-бот по

import requests
message = input(“User — “)
r = requests.post(‘http://localhost:5002/webhooks/rest/webhook', json={“message”: message})
response = r.json()
print(response)

Это импортирует библиотеку запросов. затем возьмите ввод от пользователя (т.е. сообщение). отправьте почтовый запрос на порт 5002, где работает наша модель с сообщением (пользовательский ввод). затем чат-бот дает ответ, который хранится в переменной r. затем мы конвертируем эту переменную r в формат json. из этих данных json можно извлечь текст, URL-адрес изображения, URL-адрес страницы, кнопки.

наслаждайтесь общением с ботом rasa.

Тестирование чат-бота rasa

Перед обучением и тестированием модели нам необходимо проверить данные. Это делается для проверки правильности формата и дублирования/повторения данных.

rasa data validate

Чтобы протестировать RASA NLU, мы можем разделить данные на набор поездов и набор тестов.

rasa data split nlu

Это разделит данные в соотношении 80/20. создается новая папка в том же каталоге, содержащая тестовые и обучающие данные.

также нам нужно обновить файл test_stories.yml и вручную добавить истории тестирования, чтобы протестировать RASA CORE.

после этого обучите модель на training_data.yml, а затем протестируйте модель на тестовом наборе с помощью

rasa test

Лучший способ протестировать часть RASA NLU — перекрестная проверка. вы можете сделать это по

rasa test nlu — cross-validation

Вот и все

Это конец статьи о чат-боте RASA.

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

Надеюсь, поможет

" до скорой встречи"

с любовью-

Вивек Праджапати