Bot Entwicklung + Test mit Node.js

Bot Builder SDK bietet UniversalBot (Gehirn vom Bot) und ChatConnector (verbindet den Bot zu den anderen Bot-Framework Connector Services) Klassen an, damit der Bot konfiguriert werden kann, um messages zu senden und zu empfangen.

Action: Bot ist fähig Unterbrechungen zu verstehen und dementsprechend beim Gespräch zu reagieren.

LUIS kann dem Bot als Cognitive Service hinzugefügt werden, um natürliche Sprache zu verstehen.

Saving State: Wichtig die Antwort von der letzten Frage / Session zu merken. Hierfür sollte userData, conversationData, privateConversatoindata, dialogData genutzt werden um temporäre Daten zu speichern.

Waterfall im Dialog:

Waterfall ist eine Implementierung eines Dialogs, welches genutzt wird um Informationen vom Nutzer zu sammeln oder dem Nutzer über eine Reihe von Aufgaben zu führen. Es werden zum Beispiel 4 Fragen gestellt, anschließend wird eine Aussage mit Hilfe der letzten Antworten getroffen.

Beispiel:

Frage 1 vom Bot: Was für Schuhe möchten Sie kaufen?

Antwort: Edle Schuhe

Frage 2 vom Bot: Welche Farbe?

Antwort: Braun

Frage 3 vom Bot: Wie teuer dürfen sie sein?

Antwort: Kleiner 100

Aussage vom Bot: Ich werde nun für Sie braune edle Schuhe unter 100 Euro heraussuchen.

 

Mit UniversalBot wird eine Funktion gehandhabt um messages zu senden und zu erhalten. Dieses Objekt wird dem ChatConnector weitergereicht. Der Chatconnector fordert auch die AppID und das Passwort ein, damit er mit einem Kanal verbinden/integriert werden kann.

  • send: zu schreiben
  • say: zu sagen

Mit Hilfe von Azure kann ein Bot über eine Weboberfläche erstellt werden.

  1. Basic: Dialog um auf Input zu antworten
  2. Form : Erstellt einen Bot, dass Input vom User sammelt, damit er ein eingeführtes Gespräch führen kann (Waterfall)
  3. Language understanding: Erstellt einen Bot, dass die natürliche Sprache mit Hilfe von LUIS die Absicht (Intent) versteht.
  4. Proactive: Erstellt einen Bot um den Nutzer auf Events aufmerksam macht
  5. Question and Answer: Erstellt einen Bot, der ein „knowledge Base“ nutzt, um die Fragen vom Anwender zu beantworten

Anschließend kann gewählt werden, ob der Bot auf .Net oder Node.js Basis erstellt werden soll. In der Entwickleroberfläche kann auch der Code sofort angepasst werden. Dieser kann auch getestet werden.

 

Wenn die Sprache Node.js selektiert wurde, dann werden folgende Dateien von Azure erstellt.

  • json (function bindings)
  • json (Konfigurationsparameter)
  • json (Referenzen)

Testen / Debuggen eines Bots mit dem Emulator
Der Code muss auf Visual Studio geöffnet werden. Der Node muss über die Kommandozeile im Debugmodus gestartet werden (siehe Abbildung). Im Emulator wird der Bot getestet und im Visual Studio kann das debugging starten.
Debuggen ist lokal möglich. Besonders mit Hilfe von Visual Studio kann das Debuggen einfach erfolgen. Auf dem Emulator kann man sich Details von jedem Datenaustausch anzeigen lassen. Auch liegt ein Log von der Konversation vor. Mit Hilfe der Details, die als JSON Ojekte gezeigt werdem, kann man Unit Tests durchführen.

Was sagen die anderen zu der Idee?