1. Chatbot_RASA는 RASA를 기반으로 한 다단계 작업 기반 대화 시스템입니다. 이 프로젝트는 다양한 시나리오에서 작업 기반 대화에 대한 빠른 액세스를 지원하며 우수한 일반화 능력과 높은 품질의 다단계 대화 기능을 갖추고 있습니다. RASA 버전에서는 지식베이스에 대한 Q&A와 검색에 대한 Q&A를 지원합니다. RASA를 기반으로 nlu 단계에 bert를 도입하고 정책에 강화 학습을 도입하는 등 몇 가지 보조 개발을 수행했습니다.
2. 이 프로젝트는 날씨 확인, 특급 배송 확인, 항공권 확인, 채팅 등을 위한 대화를 점차적으로 제공할 것입니다. 동시에 이 프로젝트를 사용하여 대화 시스템에서 알고리즘 모델의 적용을 신속하게 확인할 수도 있습니다.
1. RASA 전체 아키텍처:
2. 실행 프로세스:
1. rasa는 사용자 정보를 수신한 후 이를 통역사에게 보냅니다. 통역사에게 전송되는 데이터 형식은 원본 텍스트, 인식된 의도, 슬롯, 감정 등을 포함하는 사전입니다.
2. 통역사는 데이터를 Tracker로 전송합니다. Tracker의 역할은 대화 상태를 기록하고 대화 진행 상황을 추적하는 것입니다.
3. 정책은 추적기에서 현재 대화 상태를 파악하고 최적의 작업을 결정합니다.
4. 로봇은 Action을 기반으로 응답을 판단하여 사용자에게 전송하고, 현재 상태를 Tracker에 피드백하고, 대화 상태를 업데이트하며, 대화가 끝날 때까지 이 사이클을 반복합니다.
3. 의도
4. 슬롯
현재 슬롯은 11개의 태그를 제공합니다.
1. 주소: 번호 ** 거리 **, ** 도로, ** 거리, ** 마을, ** 구, ** 시, ** 도 등(단독으로 나타나는 경우 표시). 주소는 완전히 표시되어야 합니다. 2. 책제목 : 소설, 잡지, 운동집, 교과서, 교구, 지도책, 요리책, 전자책을 포함하여 서점에서 구입할 수 있는 책의 종류. 3. 회사: ** 회사, ** 그룹, ** 은행(정부 기관인 중앙은행과 중국인민은행 제외), 예: Xinhuanet/China Military Network 등 New Oriental 등 4. 게임: 일반적인 게임. 소설이나 TV 시리즈를 각색한 게임도 있다는 점에 유의하세요. 특정 장면이 게임인지 분석이 필요합니다. 5. 정부 : 중앙행정기관, 지방행정기관을 포함한다. 중앙행정기관에는 국무원, 그 구성부서(부처, 위원회, 중국인민은행, 감사원 포함), 국무원 직속 기관(세관, 세무, 공상, 국가환경보호국 등)이 포함된다. 보호청 등), 군 등 6. 영화: 극장에서 상영되는 일부 다큐멘터리를 포함한 영화. 책 제목을 기준으로 영화로 개작하는 경우, 내용에 따라 영화명인지 책 제목인지 구분할 필요가 있습니다. 장면. 7. 이름 : 일반적으로 사람의 이름을 말하며, 송강, 오송, 곽경 등 소설 속 인물을 포함한다. 소설 속 인물의 별명 : 적비, 화승, 유명 인물의 별명을 통칭한다. 특정 문자에 해당할 수 있습니다. 8. 조직: 농구팀, 축구팀, 오케스트라, 클럽 등 소설 속 갱단 포함: 소림사, 거지갱, 철종려갱, 우당, 어메이 등 9. 직위: 고대의 직위: 주지사, 치안판사, 국가 부서 등. 현대의 단장, 언론인, 사장, 예술가, 수집가 등 10. 장면: 창사 공원, 심천 동물원, 해양 수족관, 식물원, 황하, 장강 등 일반적인 관광 명소. 11. 시간: 대화 중에 언급된 시간 관련 정보(예: 오늘, 내일, 다음 주, 내일 아침 등)
동시에 다양한 시나리오에 따라 슬롯을 추가하거나 삭제할 수 있습니다.
1. 프로젝트를 성공적으로 실행하기 전에 일부 외부 pip 패키지를 설치해야 합니다.
pip 설치 chatbot_nlu
pip 설치 chatbot_dm
2. bert-as-service 설치
3. 데이터 검증
rasa 데이터 유효성 검사 --domain 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 --액션 작업
7. 대화 서비스를 시작하세요
1. 대화형 학습: # --skip-visualization
rasa 실행 작업 --작업 작업&
rasa Interactive -m models/20200107-105951.tar.gz --endpoints 끝점.yml
2. 디버그 모드
rasa run --endpoints config/endpoints.yml --enable-api --m models/20200113-162316.tar.gz --log-file bot.out.log --debug3. 쉘 모드
rasa 쉘 --디버그
구체적인 지침은 RASA 공식 문서를 참조하세요.
1. RASA는 액션 및 대화 모델을 활성화한 후 REST 형식으로 서비스를 제공하고 프로젝트를 위해 이를 호출하거나 WeChat 공개 계정, DingTalk 그룹 등에 액세스할 수 있습니다. 여기서 저는 제 또 다른 프로젝트를 소개하고 싶습니다.
챗봇_도움말
이 프로젝트는 귀하의 로봇을 타사 플랫폼에 쉽게 연결하고 쉽고 빠르게 상호 작용을 실현할 수 있습니다.
2. 서비스가 시작된 후 Postman에서 서비스를 테스트할 수 있습니다.
인터페이스 목록:
/ 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 그룹에 액세스하여 활성 푸시 메시지 및 발신 상호 작용을 지원합니다.
- 2020.1.9 위챗 접속
- 2020.5.1 rasa 도메인 간 요청 문제 해결
- 2020.6 봇프론트 소개