1. Chatbot_RASA ist ein auf RASA basierendes mehrrundiges aufgabenbasiertes Dialogsystem. Das Projekt unterstützt den schnellen Zugriff auf aufgabenbasierte Dialoge in verschiedenen Szenarien und zeichnet sich durch eine gute Generalisierungsfähigkeit und eine hohe Qualität des mehrrundigen Dialogs aus Die RASA-Version unterstützt den wissensbasierten Dialog zur Wissensdatenbank und zum Abrufen. Ich habe einige sekundäre Entwicklungen auf der Grundlage von RASA durchgeführt, z. B. die Einführung von Bert in der NLU-Phase, die Einführung von Reinforcement Learning in die Richtlinie usw.
2. Dieses Projekt wird nach und nach Dialoge zum Überprüfen des Wetters, zum Überprüfen von Expresslieferungen, zum Überprüfen von Flugtickets, zum Chatten usw. bereitstellen. Gleichzeitig können Sie dieses Projekt auch verwenden, um die Anwendung von Algorithmusmodellen in Dialogsystemen schnell zu überprüfen.
1. RASA-Gesamtarchitektur:
2. Ausführungsprozess:
1. Nach Erhalt der Benutzerinformationen sendet rasa diese an den Dolmetscher. Das an den Dolmetscher gesendete Datenformat ist ein Wörterbuch, das Folgendes enthält: Originaltext, erkannte Absicht, Slot, Stimmung usw.
2. Der Dolmetscher übermittelt die Daten an den Tracker. Die Aufgabe des Trackers besteht darin, den Gesprächsstatus aufzuzeichnen und den Fortschritt des Gesprächs zu verfolgen.
3. Die Richtlinie ruft den aktuellen Konversationsstatus vom Tracker ab und ermittelt eine optimale Aktion
4. Der Roboter bestimmt eine Antwort und sendet sie basierend auf der Aktion an den Benutzer. Anschließend gibt er den aktuellen Status an den Tracker zurück, aktualisiert den Gesprächsstatus und wiederholt den Zyklus, bis das Gespräch endet.
3. Absicht
4. Steckplatz
Derzeit bietet Slot elf Tags:
1. Adresse: Nr. ** Straße **, ** Straße, ** Straße, ** Dorf, ** Bezirk, ** Stadt, ** Provinz usw. (markieren Sie es, wenn es alleine erscheint). Die Adresse muss bis ins kleinste Detail markiert werden. 2. Buchtitel: Roman, Zeitschrift, Übungssammlung, Lehrbuch, Lehrmittel, Atlas, Kochbuch, eine Buchart, die im Buchhandel erworben werden kann, auch E-Books. 3. Unternehmen: ** Unternehmen, ** Gruppe, ** Bank (mit Ausnahme der Zentralbank und der Volksbank von China, die beide Regierungsbehörden sind), wie zum Beispiel: New Oriental, einschließlich Xinhuanet/China Military Network usw. 4. Spiele: Übliche Spiele. Es muss analysiert werden, ob es sich bei den bestimmten Szenen um Spiele handelt. 5. Regierung: einschließlich zentraler Verwaltungsbehörden und lokaler Verwaltungsbehörden. Zu den zentralen Verwaltungsorganen gehören der Staatsrat, seine Teilabteilungen (einschließlich Ministerien, Ausschüsse, die Volksbank von China und das Rechnungsprüfungsamt), direkt dem Staatsrat unterstellte Behörden (z. B. Zoll, Steuern, Industrie und Handel sowie das staatliche Umweltamt). Schutzverwaltung usw.), das Militär usw. 6. Film: Film, einschließlich einiger Dokumentarfilme, die in Kinos gezeigt werden. Wenn er anhand des Titels eines Buches verfilmt wird, muss anhand des Kontexts unterschieden werden, ob es sich um den Filmnamen oder den Buchtitel handelt die Szene. 7. Name: Bezieht sich im Allgemeinen auf den Namen einer Person, einschließlich Charakteren in Romanen, wie Song Jiang, Wu Song und Guo Jing. Spitznamen von Charakteren in Romanen: Timely Rain, Flower Monk, Spitznamen berühmter Charaktere, durch die Spitznamen kann einem bestimmten Zeichen entsprechen. 8. Organisation: Basketballmannschaft, Fußballmannschaft, Orchester, Verein usw., einschließlich Banden im Roman wie: Shaolin Temple, Beggar Gang, Iron Palm Gang, Wudang, Emei usw. 9. Position: Berufsbezeichnungen in der Antike: Gouverneur, Magistrat, Staatsabteilung usw. Moderne Geschäftsführer, Journalisten, Präsidenten, Künstler, Sammler usw. 10. Szene: Gemeinsame Touristenattraktionen wie: Changsha Park, Shenzhen Zoo, Ozeanarium, Botanischer Garten, Gelber Fluss, Jangtsekiang usw. 11. Zeit: Zeitbezogene Informationen, die während des Gesprächs erwähnt werden, wie zum Beispiel: heute, morgen, nächste Woche, morgen Vormittag usw.
Gleichzeitig kann der Slot je nach Szenario hinzugefügt oder gelöscht werden.
1. Bevor Sie das Projekt erfolgreich ausführen können, müssen Sie einige externe Pip-Pakete installieren:
pip install chatbot_nlu
pip install chatbot_dm
2. Installieren Sie bert-as-service
3. Datenüberprüfung
Rasa-Daten validieren --domain domain/cuishou_domain.yml
4. Trainieren Sie NLU und Core
rasa train --domain domain/domain.yml --data data --config config/config_with_components.yml --out models
5. Modelle bewerten
6. Aktion starten
python -m rasa_sdk.endpoint --actions Aktionen
7. Starten Sie den Konversationsdienst
1. Interaktives Lernen: # --skip-visualization
Rasa-Run-Aktionen --actions Aktionen&
rasa Interactive -m models/20200107-105951.tar.gz --endpoints endpoints.yml
2. Debug-Modus
rasa run --endpoints config/endpoints.yml --enable-api --m models/20200113-162316.tar.gz --log-file bot.out.log --debug3. Shell-Modus
Rasa-Shell --debug
Spezifische Anweisungen finden Sie in der offiziellen Dokumentation von RASA.
1. Nach der Aktivierung der Aktions- und Dialogmodelle kann RASA Dienste in REST-Form bereitstellen, sie für Projekte aufrufen oder auf öffentliche WeChat-Konten, DingTalk-Gruppen usw. zugreifen. Hier möchte ich ein weiteres Projekt von mir vorstellen:
Chatbot_Hilfe
Dieses Projekt kann Ihren Roboter problemlos mit einer Plattform eines Drittanbieters verbinden und die Interaktion einfach und schnell realisieren.
2. Nachdem der Dienst gestartet wurde, können Sie den Dienst in Postman testen:
Schnittstellenliste:
/ 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
Schnittstellenbeschreibung
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 Zugriff auf die DingTalk-Gruppe, Unterstützung aktiver Push-Nachrichten und ausgehender Interaktionen
- 2020.1.9 Zugriff auf WeChat
- 2020.5.1 Lösen Sie das domänenübergreifende Anforderungsproblem von Rasa
- 2020.6 Einführung von Botfront