1. Chatbot_RASA — это система многораундового диалога на основе задач, основанная на RASA. Проект поддерживает быстрый доступ к диалогу на основе задач в различных сценариях, обладает хорошей способностью к обобщению и обладает характеристиками высокого качества многораундового диалога. новая версия RASA поддерживает диалог, основанный на знаниях, в базе знаний и вопросы и ответы при извлечении. Я сделал некоторые вторичные разработки на основе RASA, такие как введение bert на этапе nlu, внедрение обучения с подкреплением в политику и т.д.
2. В этом проекте будут постепенно предоставляться диалоги для проверки погоды, проверки экспресс-доставки, проверки авиабилетов, общения в чате и т. д. В то же время вы также можете использовать этот проект для быстрой проверки применения алгоритмических моделей в диалоговых системах.
1. Общая архитектура RASA:
2. Процесс исполнения:
1. После получения информации о пользователе Rasa отправит ее интерпретатору. Формат данных, отправляемый интерпретатору, представляет собой словарь, который содержит: исходный текст, распознанный Intent, Slot, Sentiment и т. д.
2. Переводчик передаст данные на трекер. Роль трекера — записывать статус разговора и отслеживать ход разговора.
3. Политика получит текущий статус разговора от Трекера и определит оптимальное действие.
4. Робот определяет ответ и отправляет его пользователю на основе действия, а затем передает текущий статус Трекеру, обновляет статус разговора и повторяет цикл до тех пор, пока разговор не завершится.
3. Намерение
4. Слот
На данный момент слот предоставляет одиннадцать тегов:
1. Адрес: № ** Улица **, ** Дорога, ** Улица, ** Деревня, ** Район, ** Город, ** Область и т. д. (отметьте его, если он указан отдельно). Адрес необходимо разметить полностью. 2. Название книги: роман, журнал, сборник упражнений, учебник, учебное пособие, атлас, кулинарная книга, тип книги, которую можно приобрести в книжном магазине, в том числе электронные книги. 3. Компания: ** Компания, ** Группа, ** Банк (кроме Центрального банка и Народного банка Китая, которые являются государственными учреждениями), например: New Oriental, включая Xinhuanet/China Military Network и т. д. 4. Игры: обычные игры. Обратите внимание, что есть игры, адаптированные из романов и сериалов. Необходимо проанализировать, являются ли конкретные сцены играми. 5. Правительство: включая центральные административные органы и местные административные органы. К центральным административным органам относятся Государственный совет, входящие в его состав департаменты (включая министерства, комитеты, Народный банк Китая и Счетная палата), агентства, находящиеся в непосредственном подчинении Государственного совета (такие как таможня, налогообложение, промышленность и торговля, а также Государственное управление охраны окружающей среды). Управление охраны и др.), военные и др. 6. Фильмы. Фильмы, в том числе некоторые документальные, снятые в кинотеатрах. Если по названию книги адаптируется фильм, необходимо различать, является ли это названием фильма или названием книги, основанным на названии. контекст сцены. 7. Имя: обычно относится к имени человека, включая персонажей романов, таких как Сун Цзян, У Сун и Го Цзин. Прозвища персонажей в романах: «Своевременный дождь», «Цветочный монах», прозвища известных персонажей, которым могут соответствовать прозвища. конкретному персонажу. 8. Организация: баскетбольная команда, футбольная команда, оркестр, клуб и т. д., включая банды в романе, такие как: храм Шаолинь, банда нищих, банда железной пальмы, Удан, Эмэй и т. д. 9. Должность: Профессиональные звания в древности: губернатор, магистрат, государственное деление и т. д. Современные генеральные менеджеры, журналисты, президенты, художники, коллекционеры и т. д. 10. Сцена: общие туристические достопримечательности, такие как: парк Чанша, зоопарк Шэньчжэня, океанариум, ботанический сад, Желтая река, река Янцзы и т. д. 11. Время: информация, связанная со временем, упоминаемая во время разговора, например: сегодня, завтра, на следующей неделе, завтра утром и т. д.
При этом слот можно добавлять или удалять по разным сценариям.
1. Прежде чем успешно запустить проект, вам необходимо установить несколько внешних пакетов pip:
pip installchatbot_nlu
pip installchatbot_dm
2. Установите службу bert-as-service.
3. Проверка данных
Проверка данных rasa --domain домен/cuishou_domain.yml
4. Тренируйте NLU и ядро
rasa train --domain domain/domain.yml --data data --config config/config_with_comComponents.yml --out модели
5. Оценка моделей
6. Начать действие
python -m rasa_sdk.endpoint --actions действия
7. Запустите службу разговоров.
1. Интерактивное обучение: # --skip-visualization
раса запустить действия --действия действия&
rasa интерактивный -m модели/20200107-105951.tar.gz --endpoints endpoints.yml
2. Режим отладки
rasa run --endpoints config/endpoints.yml --enable-api --m models/20200113-162316.tar.gz --log-file bot.out.log --debug3. режим оболочки
оболочка раса --debug
Конкретные инструкции можно найти в официальной документации RASA.
1. После активации моделей действий и диалога RASA может предоставлять услуги в форме REST, приглашать их к участию в проектах или получать доступ к общедоступным учетным записям WeChat, группам DingTalk и т. д. Здесь я хотел бы представить еще один мой проект:
Чат-бот_Помощь
Этот проект позволяет легко подключить вашего робота к сторонней платформе и легко и быстро реализовать взаимодействие.
2. После запуска сервиса вы можете протестировать его в почтальоне:
Список интерфейсов:
/ conversations / < conversation_id > / messages POST add_message
/ conversations / < conversation_id > / tracker / events POST append_events
/ webhooks / rest GET custom_webhook_RestInput . health
/ webhooks / rest / webhook POST custom_webhook_RestInput . receive
/ model / test / intents POST evaluate_intents
/ model / test / stories POST evaluate_stories
/ conversations / < conversation_id > / execute POST execute_action
/ domain GET get_domain
/ socket . io GET handle_request
/ GET hello
/ model PUT load_model
/ model / parse POST parse
/ conversations / < conversation_id > / predict POST predict
/ conversations / < conversation_id > / tracker / events PUT replace_events
/ conversations / < conversation_id > / story GET retrieve_story
/ conversations / < conversation_id > / tracker GET retrieve_tracker
/ webhooks / socketio GET socketio_webhook . health
/ status GET status
/ model / predict POST tracker_predict
/ model / train POST train
/ model DELETE unload_model
/ version GET version
Описание интерфейса
a 、获取版本接口 GET方法
url : http : // 172.18 . 103.43 : 5005 / version
b 、获取服务的状态 GET方法
url : http : // 172.18 . 103.43 : 5005 / status
{
"model_file" : "models/20200109-103803.tar.gz" ,
"fingerprint" : {
"config" : "99914b932bd37a50b983c5e7c90ae93b" ,
"core-config" : "506804ad89d3db9175b94c8752ca7537" ,
"nlu-config" : "45f827a042c25a6605b8a868d95d2299" ,
"domain" : 2088252815302883506 ,
"messages" : 2270465547977701800 ,
"stories" : 1278721284179639569 ,
"trained_at" : 1578537378.2885341644 ,
"version" : "1.4.1"
},
"num_active_training_jobs" : 0
}
c 、会话接口 POST方法
url : http : // 172.18 . 103.43 : 5005 / webhooks / rest / webhook
参数:{
"sender" : "000001" ,
"message" : "你好"
}
返回参数:
[
{
"recipient_id" : "202005210002" ,
"text" : "您好,我是智能助手小笨,有什么可以帮您的?"
}
]
d 、 button接口
e 、检索story
f 、 story (话术)可视化
- 2020.1.7 Доступ к группе DingTalk, поддержка активных push-сообщений и исходящих взаимодействий
- 2020.1.9 Доступ к WeChat
- 2020.5.1 Решение проблемы междоменных запросов rasa
- 2020.6 Представляем ботфронт