1. Chatbot_RASA est un système de dialogue basé sur des tâches à plusieurs tours basé sur RASA. Le projet prend en charge un accès rapide au dialogue basé sur des tâches dans différents scénarios, a une bonne capacité de généralisation et présente les caractéristiques d'une haute qualité de dialogue à plusieurs tours. la nouvelle version de RASA prend en charge le dialogue basé sur les connaissances et les questions-réponses sur la base de connaissances. J'ai fait quelques développements secondaires sur la base de RASA, comme l'introduction de bert au stade nlu, l'introduction de l'apprentissage par renforcement dans la politique, etc.
2. Ce projet fournira progressivement des dialogues pour vérifier la météo, vérifier la livraison express, vérifier les billets d'avion, discuter, etc. En même temps, vous pouvez également utiliser ce projet pour vérifier rapidement l'application de modèles d'algorithmes dans les systèmes de dialogue.
1. Architecture globale de RASA :
2. Processus d'exécution :
1. Après avoir reçu les informations de l'utilisateur, rasa les enverra à l'interprète. Le format de données envoyé à l'interprète est un dictionnaire qui contient : le texte original, l'intention reconnue, l'emplacement, le sentiment, etc.
2. L'interprète transmettra les données au Tracker. Le rôle du Tracker est d'enregistrer l'état de la conversation et de suivre la progression de la conversation.
3. La stratégie obtiendra l'état actuel de la conversation auprès de Tracker et déterminera une action optimale.
4. Le robot détermine une réponse et l'envoie à l'utilisateur en fonction de l'action, puis renvoie l'état actuel au Tracker, met à jour l'état de la conversation et répète le cycle jusqu'à la fin de la conversation.
3. Intention
4. Fente
Actuellement, slot propose onze balises :
1. Adresse : N° ** Rue **, ** Chemin, ** Rue, ** Village, ** District, ** Ville, ** Province, etc. (marquez-le s'il apparaît seul). L'adresse doit être marquée complètement. 2. Titre du livre : roman, magazine, recueil d'exercices, manuel, support pédagogique, atlas, livre de cuisine, type de livre pouvant être acheté en librairie, y compris les livres électroniques. 3. Entreprise : ** Entreprise, ** Groupe, ** Banque (à l'exception de la Banque centrale et de la Banque populaire de Chine, qui sont toutes deux des agences gouvernementales), telles que : New Oriental, y compris Xinhuanet/China Military Network, etc. 4. Jeux : jeux courants. Notez qu'il existe certains jeux adaptés de romans et de séries télévisées. Il est nécessaire d'analyser si les scènes spécifiques sont des jeux. 5. Gouvernement : y compris les agences administratives centrales et les agences administratives locales. Les organes administratifs centraux comprennent le Conseil d'État, ses départements constitutifs (y compris les ministères, les comités, la Banque populaire de Chine et le Bureau d'audit), les agences relevant directement du Conseil d'État (telles que les douanes, la fiscalité, l'industrie et le commerce, et le ministère de l'Environnement de l'État). Administration de la Protection, etc.), les militaires, etc. 6. Films : Films, y compris certains documentaires tournés en salles S'ils sont adaptés en film en fonction du titre d'un livre, il faut distinguer s'il s'agit du titre du film ou du titre du livre en fonction du titre. contexte de la scène. 7. Nom : fait généralement référence au nom d'une personne, y compris les personnages de romans, tels que Song Jiang, Wu Song et Guo Jing. Surnoms de personnages de romans : Timely Rain, Flower Monk, surnoms de personnages célèbres, auxquels les surnoms peuvent correspondre. à un personnage précis. 8. Organisation : équipe de basket-ball, équipe de football, orchestre, club, etc., y compris les gangs du roman tels que : Temple Shaolin, Beggar Gang, Iron Palm Gang, Wudang, Emei, etc. 9. Fonction : Titres professionnels dans l’Antiquité : gouverneur, magistrat, division d’État, etc. Directeurs généraux modernes, journalistes, présidents, artistes, collectionneurs, etc. 10. Scène : attractions touristiques communes telles que : parc Changsha, zoo de Shenzhen, océanarium, jardin botanique, fleuve Jaune, fleuve Yangtze, etc. 11. Heure : informations temporelles mentionnées lors de la conversation, telles que : aujourd'hui, demain, la semaine prochaine, demain matin, etc.
Dans le même temps, l'emplacement peut être ajouté ou supprimé selon différents scénarios.
1. Avant d'exécuter avec succès le projet, vous devez installer certains packages pip externes :
pip installer chatbot_nlu
pip installer chatbot_dm
2. Installez bert-as-service
3. Vérification des données
validation des données rasa --domain domain/cuishou_domain.yml
4. Former NLU et Core
rasa train --domain domain/domain.yml --data data --config config/config_with_components.yml --out models
5.Évaluer les modèles
6. Démarrer l'action
python -m rasa_sdk.endpoint --actions actions
7. Démarrez le service de conversation
1. Apprentissage interactif : # --skip-visualization
actions d'exécution rasa --actions actions&
rasa interactive -m models/20200107-105951.tar.gz --endpoints endpoints.yml
2. Mode débogage
rasa run --endpoints config/endpoints.yml --enable-api --m models/20200113-162316.tar.gz --log-file bot.out.log --debug3. mode coquille
shell rasa --debug
Pour des instructions spécifiques, veuillez vous référer à la documentation officielle de RASA.
1. Après avoir activé les modèles d'action et de dialogue, RASA peut fournir des services sous forme REST, les appeler pour des projets ou accéder aux comptes publics WeChat, aux groupes DingTalk, etc. Ici, je voudrais vous présenter un autre de mes projets :
Chatbot_Aide
Ce projet peut facilement connecter votre robot à une plateforme tierce et réaliser une interaction facilement et rapidement.
2. Une fois le service démarré, vous pouvez tester le service dans postman :
Liste des interfaces :
/ 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
Description de l'interface
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 Accès au groupe DingTalk, prenant en charge les messages push actifs et les interactions sortantes
- 2020.1.9 Accéder à WeChat
- 2020.5.1 Résoudre le problème de demande inter-domaines de rasa
- 2020.6 Présentation de Botfront