[JAVA] Gehen wir mit Watson Assistant (ehemals Conversation). ② Erstellen Sie einen Chatbot für die Hotelreservierung

Ziel

Wir bringen Sie an den Punkt, an dem Sie mit Watson Slack Bot und Line Bot auch ohne Wissen erstellen können.

[Aktualisiert am 6. Juni 2019] Dieser Beitrag wurde während der Watson Conversation-Ära, dem Vorgänger von Watson Assistant, verfasst. Obwohl Screenshots noch alt sind, sind die grundlegenden Ideen und Operationen von Watson Assitant noch nicht abgeschlossen Ändert sich nicht, lesen Sie es daher bitte als neueste Umgebung. </ font>

■ Ich möchte Folgendes ansprechen.

(1) Einführung in das Denken, Erstellen eines Kontos ** ② So gestalten Sie einen Dialogfluss am Beispiel "Hotelreservierung" ** ← Dieser Artikel ** ③ Verwendung des Kontexts, praktische Verwendung verschiedener Funktionen, die im Tutorial nicht erwähnt werden ** ④ Verknüpfung mit Java-Logik ⑤ Erstellen Sie einen Chat-Bot mit Watson + Java + Slack

Dieses Mal werde ich als Teil 2 ** ② "Hotelreservierung" als Beispiel für die Gestaltung eines Dialogflusses ** erläutern.

Klicken Sie hier zum letzten Mal → (1) Einführung in das Denken, Erstellen eines Kontos.

Arbeitsbereich erstellen

Beim letzten Mal haben wir sogar den Arbeitsbereich erstellt und waren bereit, mit dem interaktiven Design zu beginnen.

Wenn Sie noch keinen Arbeitsbereich erstellt haben, gehen Sie zu https://www.ibmwatsonconversation.com und erstellen Sie einen.

step13.png

Machen Sie einen Hotelreservierungs-Chatbot

Der Watson-Konversationsdialogfluss kann mit einem Entwurfswerkzeug im Web erstellt werden, das als ** Dialogknoteneditor ** bezeichnet wird (im Folgenden als Knoteneditor bezeichnet).

Dieses Mal erstellen wir einen einfachen ** Hotelreservierungs-Chatbot ** basierend auf Hotelreservierungen.

Machen Sie eine Absicht

Ich werde Schritt für Schritt eins nach dem anderen erklären. Es wurde noch keine ** Absicht ** registriert. Klicken Sie daher auf [Neu erstellen], um die ** Absicht ** zu erstellen, die für Hotelreservierungen erforderlich ist.

Wählen Sie auf der oberen Registerkarte ** Absichten ** aus und klicken Sie auf Neu erstellen.


Erstellen Sie zunächst eine Absicht, die bedeutet, dass Sie ein Zimmer reservieren. Der Intent-Name lautet ** # Reserve_room **.


Registrieren Sie als nächstes den Beispielsatz von ** Zimmer reservieren **. ** Buchen Sie ein Zimmer ** Sie müssen mindestens 5 Beispiele für Sätze registrieren, die Sie bei der Reservierung möglicherweise sagen.

Wenn ich ein Zimmer reserviere, denke ich, dass es verschiedene Sätze gibt, also werde ich eingeben, was mir einfällt.

--Ich möchte ein Zimmer reservieren --Ich möchte eine Reservierung machen --Ich möchte eine Reservierung machen ――Ich möchte ein Zimmer sichern

  • Ich würde gerne einen Termin vereinbaren

image2-2.png


Wenn Sie fertig sind, klicken Sie auf Fertig

image2-3.png


Erstellen Sie als Nächstes eine Absicht, die ** die Reservierung storniert **. Klicken Sie auf Neu erstellen.

image2-4.png


Nennen Sie die Absicht ** #cancel_room ** und geben Sie wie zuvor einen Beispielsatz ein, den Sie beim Abbrechen eines Raums sagen könnten.
  • Ich möchte das Zimmer stornieren
  • Kassieren Sie den Raum
  • Ich möchte meine Reservierung stornieren
  • Ich möchte meine Reservierung stornieren
  • abbrechen wollen

image2-5.png


Nach dem Erstellen von zwei Absichten wird das Ballonsymbol ** Ask Watson **![Askwatson.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/28c90fe7-d850-8326] in der oberen rechten Ecke angezeigt -3bca-59f4fd2cc1f9.jpeg) Klicken Sie auf.
Dadurch wird rechts ein Bereich mit der Aufschrift ** Probieren Sie es aus ** geöffnet. Dies ist ein praktisches Tool, mit dem Sie die erstellte Absicht und den erstellten Dialog sofort ausführen und überprüfen können. Wenn Sie sich das ansehen, heißt es jedoch: ** Watson trainiert **. Dies bedeutet, dass Watson die Absicht (Beispielsatz) lernt, die zuvor erstellt wurde.
Warte einen Moment hier. Das Lernen wird frühestens in wenigen Minuten abgeschlossen sein. Wenn der ** Watson trainiert ** verschwindet, versuchen Sie, den Text sofort einzugeben.
** Geben Sie "Ich möchte ein Zimmer nehmen" ein **
Dann wurde es eine solche Anzeige. Wenn Sie nach unten schauen, steht ** Reserve_Zimmer **. Dies bedeutet, dass der soeben eingegebene Satz "Ich möchte ein Zimmer nehmen" als Absicht von ** # Reserve_Zimmer ** bestimmt wurde.
Geben Sie nun ** "Ich möchte meine Reservierung stornieren" ** ein
Dies wurde als ** # cancel_room ** bestimmt.
Geben Sie dann ** "Ich möchte den Raum stornieren" **,

** Ich habe versucht "Ich möchte den Raum stornieren, oder?" **, Es wurde korrekt als ** # cancel_room ** bestimmt. Wie ich letztes Mal erwähnt habe, ist es gut, dass Watson die Ausdrucksschwankungen von Sätzen absorbiert und interpretiert, auch wenn es sich nicht um die registrierten Beispielsätze handelt.

Machen Sie einen Dialog

Als nächstes werden wir tatsächlich den Dialogteil erstellen. Klicken Sie auf dem Bildschirm auf die Registerkarte ** Dialog **, um einen Bildschirm wie diesen anzuzeigen. Klicken Sie auf [Erstellen].

3-10.jpg

Dadurch werden automatisch zwei Rechtecke mit den Bezeichnungen ** Willkommen ** und ** Andere ** erstellt. Der von diesem Rechteck angezeigte Teil wird als Knoten bezeichnet. (Bisher wurde nichts automatisch generiert, jetzt wird es mit einem Update um Mai 2017 generiert.)

Sie können den Knoten öffnen und schließen, indem Sie auf den Teil "**> **" klicken. 3-11.jpg


Klicken Sie auf den Teil mit der Aufschrift ** Willkommen **. ![3-12.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/0a7e78b8-e22b-8b20-6c98-5ee9338a4f22.jpeg)
Dadurch wird der Editor des Knotens auf der rechten Seite geöffnet. ![3-13.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/c9d5dee9-9c75-5d35-c132-6339258388cd.jpeg)
Bearbeiten Sie hier und benennen Sie ** Willkommen ** bei ** Start ** um. Willkommen ** auch in den Antworten unten. Hallo ** a ** Bitte geben Sie Ihr Geschäft ein, ist das River Sun Hotel. Was sind Ihre Anforderungen? Ändern **. Jetzt sieht es aus wie in einem Hotel.

3-14.jpg


Öffnen Sie dann den Knoten ** Andere **, ändern Sie den Knotennamen in ** Andere ** und löschen Sie den standardmäßig in Antworten eingegebenen Text. Um es zu löschen, klicken Sie auf die Markierung (-) auf der rechten Seite des Textes.

3-15.jpg


Und es gibt eine neue ** Entschuldigung. Ich habe Nicht verstanden. Sie können Ihr Zimmer reservieren oder stornieren. **Eingeben. Übrigens bedeutet ** input.text ** umgeben von ** ** den vom Benutzer eingegebenen Text. ** input ** ist eine reservierte Variable, die als globale integrierte Variable bezeichnet wird, aber es ist in Ordnung, dies hier zu verstehen. Es wird separat erklärt.

3-16.jpg


Versuchen wir es jetzt einmal mit dem Dialog. Klicken Sie oben rechts auf ** Ask Watson **![Askwatson.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/28c90fe7-d850-8326-3bca-59f4fd2cc1f9.jpeg) Ich werde.

3-17.jpg


Der Bereich ** Probieren Sie es aus ** wird geöffnet. Geben Sie unten im Texteingabebereich "Ich möchte ein Zimmer reservieren" ein. Dann wird die Absicht "Ich möchte ein Zimmer reservieren" als ** # Reserve_Zimmer ** interpretiert. Da es in diesem Knoten jedoch keinen Knoten gibt, der unter der Bedingung ** # Reserve_room ** ausgelöst wird, wechselt er zum Knoten ** irgendetwas_else **.

4-01.jpg


Fügen wir nun einen Knoten hinzu, der die Raumreservierungsabsicht ** # Reserve_room ** behandelt. Klicken Sie auf den Knoten ** Willkommen ** und Sie sehen unten und rechts (+) Markierungen. Klicken Sie unten auf die Markierung (+).

4-02.jpg


Ein neuer Knoten wird unter dem Knoten ** Willkommen ** hinzugefügt. Gleichzeitig wird der Knotenbearbeitungsbereich rechts geöffnet. Bearbeiten Sie diesen Knoten.

4-03.jpg


Der Knotenname lautet ** Start_making_a_reservation **.

Geben Sie als Nächstes ** # ** in den Trigger-Teil ein, und Intent-Kandidaten werden angezeigt. Wählen Sie also ** # Reserve_room ** aus.

Beschreiben Sie in Trigger den bedingten Ausdruck ** nach der if-Anweisung **.
Knoten werden in der Reihenfolge von oben ausgewertet, ausgelöst durch Benutzereingaben usw. Wenn dieser bedingte Ausdruck jedoch während der Auswertung erfüllt wird, wird die Verarbeitung dieses Knotens (Rückgabe einer Antwort, Verzweigung usw.) ausgeführt. .. Übrigens ist ** # Reserve_room ** eine Abkürzung für ** intent == 'Reserve_room' **. Es ist in Ordnung, ** intent == 'Reserve_room' ** so zu schreiben, wie Sie eine if-Anweisung in der Programmierung schreiben würden.

4-04.jpg


Bearbeiten Sie dann die Antworten. Dies beschreibt, wie dieser Knoten reagiert, wenn er verarbeitet wird. Dieser Knoten ist der Knoten, der ** # Reserve_room ** verarbeitet. Mit anderen Worten, es ist der Vorgang, bei dem der Benutzer sagt "Ich möchte ein Zimmer reservieren". Lassen Sie Watson also antworten ** "Reservierung. Ich bin schlau" **. Je nach Bedingung können mehrere Antworten zurückgegeben werden. Wenn Sie beispielsweise ein zweites Zimmer reservieren, können Sie die Antwort ändern, je nachdem, ob Sie bereits ein Zimmer reserviert haben oder nicht. Obwohl der Editor so konzipiert ist, dass er Text zurückgibt, kann er auch komplexere Antworten zurückgeben (Objekte im JSON-Format). Dies wird separat erklärt.

4-05.jpg


Nachdem Sie einen ** Start_making_a_reservation ** -Knoten haben, ** fragen Sie Watson **![Askwatson.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/28c90fe7-d850- Versuchen wir es mit 8326-3bca-59f4fd2cc1f9.jpeg). Als ich ** "Ich möchte ein Zimmer reservieren" ** eingab, wurde die Absicht als ** # Reserve_Zimmer ** festgelegt, und Watson antwortete richtig ** "Es ist eine Reservierung. Ich bin schlau" **.

4-06.jpg


Seien Sie nicht nur bereit, ein Zimmer zu buchen, sondern auch zu stornieren. Klicken Sie auf die Markierung (+), um einen Knoten hinzuzufügen.

4-07.jpg


Der Knotenname lautet ** Start_canceling_reservation **, die Bedingungen für die Eingabe des Triggers sind ** #cancel_room ** und die Antworten lauten "** Raumstornierung wurde akzeptiert. Wir warten erneut auf Sie * *"Es wurde gemacht.

4-08.jpg


Klicken Sie in der oberen rechten Ecke auf ** Ask Watson **![Askwatson.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/28c90fe7-d850-8326-3bca-59f4fd2cc1f9.jpeg). Versuchen wir den Dialog. Wenn Sie ** Ich möchte das Zimmer stornieren ** eingeben, wird es als ** #cancel_room ** erkannt und die Antwort lautet "Wir haben die Stornierung des Zimmers akzeptiert. Wir warten darauf, dass Sie es wieder verwenden." hätten.

4-09.jpg


Bis zu diesem Punkt haben wir einen Dialog erstellt, der Reservierungen und Stornierungen für Hotelzimmer akzeptiert. Als Reaktion auf Benutzereingaben sagen Sie einfach ** Reserviert **, ** Storniert ** , Der Dialog ist noch nicht ** interaktiv **.

Bei der Buchung eines Hotelzimmers muss der Benutzer mindestens angeben, wann er bleiben möchte. Lassen Sie uns also das Datum der Unterkunft angeben.

Wählen Sie zuerst den Knoten ** Start_making_a_reservation ** aus und drücken Sie die Markierung (-) rechts neben dem Text ** "Reserviert. Ich bin schlau" ** in Antworten, um ihn zu entfernen.

4-10.jpg

Erstellen Sie eine Entität

Klicken Sie dann auf der oberen Registerkarte auf ** Entitäten **.

4-11.jpg


Dieser Bildschirm wird angezeigt, wenn Sie noch keine Entität definiert haben. Wählen Sie nun ** Systementitäten ** Systementitäten sind spezielle Entitäten, die von Watson bereitgestellt werden.

4-12.jpg


Setzen Sie ** @ sys-date ** auf ** on **. ** @ sys-date ** ist eine Entität, die Daten, Tage usw. erkennen kann. Wenn beispielsweise heute der 5. Juni 2017 ist, wird "morgen" als 6. Juni 2017 und "nächster Freitag" als 16. Juni 2017 interpretiert. Es ist eine kluge Entität.

4-13.jpg


Wir werden weitere Knoten hinzufügen, damit wir das Aufenthaltsdatum verarbeiten können. ** Start_making_a_reservation ** Klicken Sie auf die Markierung (+) rechts neben dem Knoten.

4-14.jpg


Setzen Sie den hinzugefügten Knotennamen auf ** Reservation_date_specified ** und geben Sie die Systementität ** @ sys-date ** in der bedingten Anweisung an. Diese Bedingung bedeutet ** ”, wenn der vom Benutzer eingegebene Text eine Entität enthält, die @ sys-date ** entspricht.

4-15.jpg


Antworten

** Ich habe die Reservierung gemacht. Vielen Dank! ** ** **

Geben Sie die. ** ** ist ein Durcheinander, aber ** ** ist die Notation, die Watson anweist, die hier eingeschlossene Notation zu berechnen.

Die tatsächliche Notation lautet ** Entitäten ['Sys-Datum']?. Value.reformatDateTime ('JJJJ Jahr MM Monat TT Tag') **, aber ** Entitäten ['Sys-Datum'] ** Es bedeutet, die Entität (dh das Datum) mit dem Namen sys-date ** herauszunehmen und im Format ** 'JJJJ Jahr MM Monat TT Tag ** zu formatieren und anzuzeigen.

Watsons Backend scheint auf Spring (Java Framework) zu laufen, und Variablen können mit SPEL (Spring Expression Language) aufgerufen und bearbeitet werden. Die Typen dieser Variablen und die Datentypen, die behandelt werden können (einige Java-Datentypen können so behandelt werden, wie sie sind), werden separat erläutert.

4-16.jpg


Klicken Sie oben rechts auf ** Ask Watson **![Askwatson.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/28c90fe7-d850-8326-3bca-59f4fd2cc1f9.jpeg) Ich werde die Operation soweit versuchen

4-17.jpg


Geben Sie ein ** Ich möchte nächsten Freitag ein Zimmer reservieren **. Und ich habe keine Antwort bekommen. Es wird als Absicht als ** # Reserve_room ** und als Einheit als ** @ sys-date: 2017-06-16 ** anerkannt. Dies bedeutet, dass ** Ich möchte nächsten Freitag ein Zimmer reservieren ** am Knoten ** Start_making_a_reservation ** gestoppt wird. ** Gestoppt ** wartet tatsächlich ** auf Benutzereingaben **. Wenn die Absicht von ** # Reserve_room ** kommt, wie kann ich dann zum nächsten Knoten, dh ** Reservation_date_specified ** auf der rechten Seite, wechseln, ohne etwas im Knoten ** Start_making_a_reservation ** zurückzugeben? Ist es?

4-18.jpg


Verwenden Sie in diesem Fall den Sprung. Wie in der Abbildung gezeigt, ** Springe zu **![Springe zu.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/2e038441-2922-41ea-8525-3c8342da87d2.jpeg )Klicken.

4-19.jpg


** Springe zu **![Springe zu.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/2e038441-2922-41ea-8525-3c8342da87d2.jpeg) zu einem anderen Knoten Dies ist eine Funktion zum Springen. Selbst wenn Sie sagen, zu einem Knoten springen, können Sie aus den folgenden drei auswählen, wo Sie in den Knoten springen möchten.
  • Condition  
    Springt zur bedingten Anweisung (Trigger) des Knotens. Die Bedingung (z. B. Benutzereingabe) wird von der Sprungquelle geerbt und vom Knoten erneut ausgewertet. So wählen Sie ** Gehe zu Bedingung ** <img src = "https://qiita-image-store.s3.amazonaws.com/0/170905/b121a268-4ab6-f73d-6b60-714821770a3f.jpeg " width = Klicken Sie auf "100px">.

  • Response  
    Springt zur Antwort des Knotens. Da die Benutzereingabe von der Sprungquelle nicht ausgewertet wird, wird der Knoten aus der Antwort verarbeitet, auch wenn die Bedingung für diesen Knoten nicht erfüllt ist. Zur Auswahl ** Zur Antwort gehen ** .

  • ** Benutzereingabe **Uinput.jpg
    Springt zu ** Warten auf Benutzereingabe **, nachdem der Knoten ausgeführt wurde, nicht zum Knoten. Zur Auswahl wird ein Ballonsymbol in 〇 ** Benutzereingabe **Uinput.jpg gezeichnet. 1421-0eef-95bc-584a6de224b6.jpeg) Klicken Sie auf.

4-21.jpg


Wählen Sie hier ** Gehe zu Bedingung **. Dies liegt daran, dass wir in dem vom Benutzer eingegebenen Text feststellen möchten, ob wir ein Aufenthaltsdatum angegeben haben.

4-22.jpg


Lassen Sie uns bisher Schritt für Schritt vorgehen, wenn der Benutzer sagt ** "Ich möchte nächsten Freitag ein Zimmer reservieren" **
(1) Erstens entspricht es der Knotenbedingung ** Start_making_a_reservation ** ** # Reserve_room **.

(2) Da das Sprungziel im Knoten ** Start_making_a_reservation ** angegeben ist, springen Sie als Nächstes zum Trigger (Bedingung) des Knotens ** Reservation_date_specified **.

(3) Der Auslöser des Knotens ** Reservation_date_specified ** des Sprungziels bewertet erneut ** "Ich möchte nächsten Freitag ein Zimmer reservieren" **.

(4) Da die Entität ** Next Friday ** enthalten ist, wird sie vom Knoten ** Reservation_date_specified ** verarbeitet, und die Antwort des Knotens ** Reservation_date_specified ** wird angezeigt.

4-23.jpg


Verwenden Sie ** Ask Watson **![Askwatson.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/28c90fe7-d850-8326-3bca-59f4fd2cc1f9.jpeg) Ich werde es versuchen. Geben Sie ein ** Ich möchte nächsten Freitag ein Zimmer reservieren **

4-24.jpg


Dann erhielt ich eine Antwort mit der Aufschrift ** "Es ist der 16. Juni 2017. Ich habe eine Reservierung vorgenommen. Danke." **, also scheint es gut zu funktionieren. Die Eingabe ** nächsten Freitag ** wurde auch als ** 16. Juni 2017 ** interpretiert. Es ist klug.

4-25.jpg


Klicken Sie dann unter ** Reservation_date_specified ** auf die Markierung (+).

4-26.jpg


Was ich mit diesem Knoten tun möchte, ist, was zu tun ist, wenn der Benutzer eine Reservierungsanfrage ** ohne Angabe von Datum und Uhrzeit stellt. Zum Beispiel könnten Sie aufgefordert werden, "ein Zimmer zu buchen". Geben Sie ** any_else ** in Trigger mit dem Knotennamen ** Else ** ein.

4-27.jpg

Wenn der Benutzer kein Datum und keine Uhrzeit angegeben hat, werden die Antworten ** wann bleiben Sie? (Beispiel: 29. April, morgen, nächsten Samstag) ** und ein Satz, der das Datum der Unterkunft angibt.

4-28.jpg


Klicken Sie dann auf ** Springe zu **![Springe zu.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/2e038441-2922-41ea-8525-3c8342da87d2.jpeg) Ich werde.

4-29.jpg


Wählen Sie ** Benutzereingabe ** als Sprungziel. Dies ist ** wann wirst du bleiben? (Beispiel: 29. April, morgen, nächster Samstag) ** Hiermit werden Benutzereingaben nach der Anzeige wieder akzeptiert **. Wenn Sie hierher springen, beginnt die Auswertung am Knoten ** Reservation_date_specified **, während der Benutzer sie eingibt. Wenn der Benutzer ein Datum wie ** nächsten Freitag ** angibt, wird der Knoten ** Reservierungsdatum_spezifiziert ** verarbeitet, und wenn er völlig anders ist, wird er vom Knoten ** Sonst ** erneut verarbeitet. Getan werden.

4-30.jpg


Versuchen Sie es erneut ** Fragen Sie Watson **![Askwatson.jpg](https://qiita-image-store.s3.amazonaws.com/0/170905/28c90fe7-d850-8326-3bca-59f4fd2cc1f9.jpeg) schauen

4-31.jpg


Geben Sie ein ** Ich möchte ein Zimmer reservieren **

4-32.jpg

Dann könnte ich es als ** # Reserve_Zimmer ** erkennen, aber da ** das Datum der Unterbringung ** nicht eingegeben wird, wechselt es wie geplant zum Knoten ** Sonst ** und ** "Wann bleiben Sie?" ? ... "** ist zurück gekommen.

4-33.jpg

Ein detaillierter Blick darauf, wie die Knoten mit dieser Eingabe übergegangen sind, ist wie folgt (siehe Abbildung unten).

-① Benutzer sagt ** "Ich möchte ein Zimmer reservieren" ** (eintreten)

-② Watson hat festgestellt, dass der Text ** # Reserve_room ** ist, sodass er den Bedingungen des Knotens ** Start_making_a_reservation ** entspricht und dieser Knoten ausgeführt wird.
-③ Springe vom Knoten ** Start_making_a_reservation ** zum ** Trigger ** des Knotens ** Reservation_data_specified . Da es nicht den Bedingungen von Trigger entspricht ( @ sys-date ** existiert nicht), wird der Prozess zum Knoten ** Else ** unten verschoben.
-④ ** Sonst ** Knoten wird ausgeführt und ** "Wann bleibst du?" ** wird ausgegeben.
-⑤ Springen Sie nach der Verarbeitung des Knotens ** Else ** zur Benutzereingabe. Hier wartet es auf Benutzereingaben.

4-34.jpg


Geben Sie jetzt ** nächsten Freitag ** ein

4-35.jpg


Dann wird der Knoten wie folgt überführt und ausgeführt

-⑥ Benutzer sagt ** "Nächsten Freitag" ** (eingeben)

-⑦ ** "Nächsten Freitag" ** wird als Entität ** @ sys-Datum ** beurteilt, ** Reservierungsdaten_spezifiziert ** Knoten wird ausgeführt, ** "Es ist der 16. Juni 2017. Reservierung. Danke. ”** wird angezeigt.

4-36.jpg


Übrigens haben wir folgenden Austausch realisiert.

** Benutzer "Ich möchte ein Zimmer reservieren" ** ** Watson "Wann wirst du bleiben?" ** ** Benutzer "Nächsten Freitag" ** ** Watson "Es ist der 16. Juni 2017. Ich habe eine Reservierung vorgenommen." **

4-37.jpg

Grundsätzlich kann ein komplizierterer Dialog realisiert werden, indem Absicht und Entität vorbereitet und Knoten kombiniert werden.

Zusammenfassung

Dieses Mal haben wir uns die Knotenübergänge am Beispiel eines einfachen ** Hotelreservierungsdienstes ** genauer angesehen. Das nächste Mal werden wir uns Conetxt und integrierte Variablen genauer ansehen, die für interaktives Design unverzichtbar sind.

Die Fortsetzung ist hier. ** Lassen Sie uns mit Watson Conversation ③ Chat-Bot für Hotelreservierungen unter Verwendung des Kontexts fortfahren **

herunterladen

Die in diesem Artikel erstellten Dialogdaten (JSON) können wie folgt heruntergeladen werden. Sie können dies tun, indem Sie es aus dem Watson Conversation-Editor importieren. https://github.com/riversun/watson_q02/blob/master/wcs_hotelreservation.json

Recommended Posts

Gehen wir mit Watson Assistant (ehemals Conversation). ② Erstellen Sie einen Chatbot für die Hotelreservierung
Los geht's mit Watson Assistant (ehemals Conversation) ⑤ Erstellen Sie einen Chatbot mit Watson + Java + Slack
Gehen wir zu Watson Assistant (ehemals Conversation). ④ Verknüpfung mit Java-Logik
Gehen wir zu Watson Assistant (ehemals Conversation). ① Einführung Was ist die Idee und das Absichtsverständnis der interaktiven Anwendung?
Watson Assistant (ehemals Conversation) auf Android
Machen wir eine Weihnachtskarte mit Verarbeitung!
Lassen Sie uns eine Suchfunktion mit Rails (Ransack) machen
Machen wir einen LINE Bot mit Ruby + Sinatra - Teil 2
Machen wir einen LINE Bot mit Ruby + Sinatra - Teil 1
Erstellen wir eine einfache API mit EC2 + RDS + Spring Boot ①
Erstellen wir eine Buchverwaltungs-Webanwendung mit Spring Boot part1
Lassen Sie uns mit Spring Boot part3 eine Webanwendung für die Buchverwaltung erstellen
Lassen Sie uns mit Spring Boot part2 eine Webanwendung für die Buchverwaltung erstellen