[JAVA] Erstellen Sie einen Facebook Messenger mit der Talk-API von api.ai und a3rt
Überblick
- Verwenden Sie api.ai für den Teil, in dem Sie eine feste Nachricht zurückgeben möchten, z. B. "Wie heißt Sie?" Oder "Wie lautet Ihr Geburtsdatum?" Das kostenlose Gespräch bleibt [a3rt talkAPI] überlassen (https://a3rt.recruit-tech.co.jp/product/talkAPI/).
- Verwenden Sie den Webhook von api.ai, um während einer bestimmten Konversation Wetter / Nachrichten mithilfe einer externen API zurückzugeben.
- Da es diesmal problematisch ist, wird es leer installiert. Bereiten Sie nur die Box vor.
- Webhook ist in Java implementiert.
api.ai
agent
- Der Agent ist der Bot-Körper. .. Ich denke. ..
- Das Einstellen von Name, Sprache und Zeitzone ist nicht schwierig.
- Diesmal lautet der Agentenname "kunipon". Lol
intent
- intent ist ein Feld, in dem Benutzer wie "Was möchten Sie wissen?" und "Welche Art von Gefühlen" klassifiziert werden, indem registriert wird, was der Benutzer wahrscheinlich sagt.
- Sie können mehrere Antworten auf Benutzerkonversationen registrieren und nach dem Zufallsprinzip zurückgeben.
- Registrieren Sie diesmal Folgendes
Absichtsname |
Beispiel für ein Registrierungsgespräch |
Antwort |
acquaintance |
„Wie ist dein Name?" „Wer bist du?" |
Das ist Kunipon |
age |
"Wie alt" "Wie alt bist du?" |
9 Jahre alt |
teach_me |
"Bitte sag es mir" "Wie ist das Wetter morgen in Tokio?" |
* Dies wird später beschrieben |
entity
- Wird verwendet, um die Essenz des in der Absicht registrierten Textes zu identifizieren.
- Zum Beispiel möchte ich diesmal feststellen, ob ich das Wetter / die Nachrichten wirklich wissen möchte, also "Sag mir das Wetter morgen" oder "Sag mir die Nachrichten heute" in der Absicht "learn_me" angeben. Registrieren Sie die Entität.
- Mehrere Elemente und Synonyme für Elemente können in einer Entität registriert werden.
- Es muss nicht auch je nach Anwendung synonym sein.
- Dieses Mal habe ich mich wie folgt registriert.
Entitätsname |
Referenzname |
Synonim Beispiel |
teach_me |
weather |
"Wetter" "Sonnig" "Heiß" |
teach_me |
news |
"News" "Events" "Topics" |
intent2
- Nachdem Sie festgestellt haben, dass die Konversation des Benutzers zur Absicht "Teach_me" gehört, müssen Sie feststellen, was sich der Benutzer im Status "Teach_me" befindet. Daher kann der Absicht eine Entität zugeordnet werden.
- Wenn die zugeordnete Entität in der Konversation nicht vorhanden ist, kann eine andere Antwort als die Standardantwort zurückgegeben werden.
- Wenn der Benutzer diesmal beispielsweise "Bitte sagen Sie es mir" sagt, wird die Antwort "Ich kann das Wetter oder die Nachrichten überprüfen, aber welche möchten Sie?" Zurückgegeben.
- Wie unten gezeigt, verfügt die Teach_me-Entität der Tabelle ohne Aktionselement über eine Flüssigkeitsprüfung, und die Antwort wird in Eingabeaufforderungen registriert.
Versuchen Sie es einmal
- Da das als Entität registrierte Wort "Wetter" enthalten ist, können Sie sehen, dass der Parameter learn_me Wetter ist.
default fallback
- Dieser Typ reagiert, wenn ein Gespräch kommt, das nicht der registrierten Absicht entspricht.
- Aktion wird von Ihnen selbst entschieden, aber ist die Standardeingabe input.unknown?
webhook
- Wird verwendet, wenn Sie Daten zu einem bestimmten Zweck über die API erfassen und die erfassten Daten als Antwort zurückgeben möchten.
- Aktivieren Sie zuerst den Webhook auf der Erfüllungsseite und legen Sie die URL fest.
- Sie können localhost usw. nicht als URL registrieren, und Sie werden wütend, eine öffentliche URL festzulegen, aber an diesem Punkt müssen Sie sich nicht beeilen, um Heroku oder etwas anderes zu verwenden. Ich meine, wenn Sie Heroku geben, können Sie nicht debuggen. .. Google fordert mich außerdem auf, ngrok während der Entwicklung zu verwenden.
Local fulfillment testing with ngrok
- ngrok kann mit
brown cask install ngrok
installiert werden. Wenn Sie etwas wie ngrok http 8080
ausführen, können Sie eine öffentliche URL wie Forwarding https: //abcd1234.ngrok.io-> localhost: 8080
erstellen.
- Gehen Sie danach zur Seite mit der Zielabsicht, klicken Sie unten auf Erfüllung und überprüfen Sie den angezeigten "Webhook verwenden".
- Überprüfen Sie mit Teach_me Intent (um Informationen mit API zu bringen) und Standard-Fallback (um an a3rt Talk API zu senden, wenn in api.ai unbekannt).
facebook messenger
- Informationen zur Integration mit api.ai finden Sie unter hier.
- Du kannst so reden.
Schließlich
- Das Beispiel von github ist hilfreich.
- Die tatsächliche Quelle. Ich hoffe es hilft jemandem. ..