Добро пожаловать обратно в последнюю часть, часть: 3 . в части: 1 и части: 2 мы прочитали о чат-ботах, типах чат-ботов, основных терминах, связанных с чат-ботами, и создали базового чат-бота. мы также узнали о файловой структуре чат-бота RASA и подробно изучили каждый файл. теперь мы запустим нашего чат-бота, добавим в него новые разговоры, а также протестируем его.
давайте начнем снова -
Добавление нового диалога
Добавление новых историй со статическими ответами
- откройте файл data/nlu.yml и скопируйте любой формат намерения. замените имя намерения новым именем намерения. заменить и добавить соответствующие примеры для этого нового намерения. всегда заботьтесь об отступах. если какой-либо отступ неверен, это покажет ошибку в обучении.
- откройте файл domain.yml, зарегистрируйте новое намерение в файле домена, скопировав старое намерение, а затем замените имя нового намерения старым. (старый все еще там, мы используем копию прошлого, чтобы сохранить тот же формат). добавьте статический ответ в раздел ответов. имя должно начинаться с utter_
- откройте файл data/stories.yml, добавьте новую историю с помощью той же копии. изменить старое намерение на новое намерение. и действие для нового ответа (utter_example). мы можем сделать столько истории, сколько захотим. но короткие рассказы предпочтительнее. просто добавьте намерения, зарегистрируйте их в файле домена и добавьте ответы в файл домена. (шаг 1 и 2). и сделать историю в stories.yml
- сохраните все файлы и снова обучите модель.
Добавление новых правил со статическими ответами
- откройте файл data/nlu.yml и скопируйте любой формат намерения. замените имя намерения новым именем намерения. заменить и добавить соответствующие примеры для этого нового намерения. всегда заботьтесь об отступах. если какой-либо отступ неверен, это покажет ошибку в обучении.
- откройте файл domain.yml, зарегистрируйте новое намерение в файле домена, скопировав старое намерение, а затем замените имя нового намерения старым. (старый все еще там, мы используем копию прошлого, чтобы сохранить тот же формат). добавьте статический ответ в раздел ответов. имя должно начинаться с utter_
- открыть файл data/rules.yml добавить новое правило тем же копированием. изменить старое намерение на новое намерение и действие на новый ответ (utter_example). здесь мы можем установить короткие правила и использовать только одно намерение в одной истории.
- сохраните все файлы и снова обучите модель.
Добавление новых историй с динамическими ответами
- откройте файл data/nlu.yml и скопируйте любой формат намерения. замените имя намерения новым именем намерения. заменить и добавить соответствующие примеры для этого нового намерения. всегда заботьтесь об отступах. если какой-либо отступ неверен, это покажет ошибку в обучении.
- откройте файл action/actions.py. написать новое действие здесь. формат для приветствия мира уже существует. мы можем использовать этот формат и обновлять его в соответствии с нашими требованиями.
- откройте файл domain.yml, зарегистрируйте новое намерение в разделе намерений, скопировав старое намерение, а затем замените имя нового намерения старым. (старый все еще там, мы используем копию прошлого, чтобы сохранить тот же формат). таким же образом зарегистрируйте новое действие в разделе действий.
- откройте файл data/stories.yml, добавьте новую историю с помощью той же копии. изменить старое намерение на новое намерение и действие на новое действие. мы можем сделать столько истории, сколько захотим. но короткие рассказы предпочтительнее. просто добавьте намерения, зарегистрируйте их в файле домена, добавьте действие в файл действия и зарегистрируйте его в файле домена. (шаги 1,2 и 3). и сделать историю в stories.yml
- сохраните все файлы и снова обучите модель.
Добавление новых правил с динамическими ответами
- откройте файл data/nlu.yml и скопируйте любой формат намерения. замените имя намерения новым именем намерения. заменить и добавить соответствующие примеры для этого нового намерения. всегда заботьтесь об отступах. если какой-либо отступ неверен, это покажет ошибку в обучении.
- откройте файл action/actions.py. написать новое действие здесь. формат для приветствия мира уже существует. мы можем использовать этот формат и обновлять его в соответствии с нашими требованиями.
- откройте файл domain.yml, зарегистрируйте новое намерение в разделе намерений, скопировав старое намерение, а затем замените имя нового намерения старым. (старый все еще там, мы используем копию прошлого, чтобы сохранить тот же формат). таким же образом зарегистрируйте новое действие в разделе действий.
- открыть файл data/rules.yml добавить новое правило тем же копированием. изменить старое намерение на новое намерение и действие на новое действие. здесь мы можем установить короткие правила и использовать только одно намерение в одной истории.
- сохраните все файлы и снова обучите модель.
Приоритет ответа на общую картину
мы, пользователь, вводим данные в чат-бот. он будет классифицировать ввод в намерении, а также даст вероятность этих намерений. он выберет намерение с наивысшей вероятностью. после этого сначала он будет искать правило, основанное на этом намерении. если правила нет, то он будет искать истории и давать вам ответ в соответствии с этим правилом или историей.
при классификации намерений, если вероятность какого-либо из них не превышает пороговое значение, тогда этот ввод будет классифицироваться как резервный ввод. Ответ будет сгенерирован в соответствии с предопределенным пользователем правилом/историей для отката.
поэтому уровень приоритета в порядке убывания будет
- Правила
- Истории
- Отступать
Запуск моделей 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.
Надеюсь, это поможет вам в создании собственного чат-бота. если вам это нравится, ставьте лайки и следите за более глубоким контентом, связанным с машинным обучением, глубоким обучением и наукой о данных.
Надеюсь, поможет
" до скорой встречи"
с любовью-
Вивек Праджапати