Neben einer festen Antwort je Absicht kann Kiko auch eine berechnete Antwort ausgegeben. Bei der Berechnung können Information aus einer externen Datenquelle verwendet werden.
Zur Berechnung der Antwort wird in diesem Beispiel ein individuell programmierter und gehosteter Webservice mit folgenden Aufgaben verwendet:
ein “Joke”-Datensatz wird aus einer externen Datenquelle abgefragt
der Inhalt des Jokes wird als Antwort an den Kiko-Server gesendet
Für die Frage wird eine einzelne Absicht genutzt mit folgenden Merkmalen
Erkennung per Schlagwort “Joke”,
Weiterleitung zum externen Subbot.
Der externe Subbot ist als Webservice individuell zu hosten. Dafür verwenden wir in diesem Beispiel den Service “Cloud Run” von Google, welcher aktuell bei einer niedrigen Anzahl von Abfragen kostenfrei genutzt werden kann und schnell eingerichtet ist.
Als Entwicklungsumgebung nutzen wir hier den “Cloud Shell Editor” von Google. Sie ist mit Tools und Erweiterungen für die Entwicklung mit z.B. nodejs vorkonfiguriert, sodass Sie die Entwicklung und Tests im Browser ausführen können.
Clonen Sie mit dem folgenden Link unsere Webservice-Vorlage “my-first-subbot“ von unserem Github-Konto “kiko-software” in Ihre Entwicklungsumgebung. Dafür benötigen Sie einen Google-Account.
Öffne das Projekt in Google Cloud Shell
Die Verarbeitung der Anfrage vom Kiko-Server findet in der Datei index.js statt.
Zu Beginn wird der Webserver initialisiert.
Bei der Verarbeitung wird ein Joke-Datensatz aus einer externen Datenbank geholt.
Die Zieladresse wird aus der Referer-Adresse der Subbot-Anfrage ermittelt.
Um sicherzustellen, dass die Antwort im richtigen Chat mit dem anfragenden Benutzer erscheint, muss die ConversationId aus der Anfrage in der Antwort verwendet werden.
In diesem Beispiel werden zwei Chat-Nachrichten gesendet.
Das letzte Element in der Anfrage ist ein Ereignis, das die Konversation mit dem Subbot beendet.
Am Ende des Skripts befindet sich der Code zum Starten des Webdienstes.
Veröffentlichen Sie den Webservice mittels “Cloud Run”. Im Ergebnis erhalten Sie eine URL, die Sie als Endpunkt-URL für den Webhook Ihres externen Subbots verwenden können.
Klicken Sie in der Fußzeile des Editors auf "Cloud Code".
Klicken Sie auf "Deploy to Cloud Run".
Wählen Sie Ihre bevorzugte Region und klicken Sie auf "Deploy".
Verwenden Sie die Ergebnis-URL, d. h.: URL: https://my-first-subbot-....a.run.app/ als Ihre externe Subbot-Webdienst-Endpunkt-URL.
Legen Sie im CMS über das Menü “Botliste” einen externen Subbot mit dem Namen “subbot-jokes” an. Tragen Sie beim Subbot über den Untermenüpunkt “Webhooks bearbeiten” im Feld “Nachricht erhalten” die URL des veröffentlichten Webservice ein.
Legen Sie über das Menü “Inhalt” im Metabot eine Absicht mit dem Namen “Joke erzählen” an und tragen Sie als Weiterleitung des Subbot “subbot-jokes” ein.
Zur Erkennung legen Sie den Entitätstyp “thema” mit dem Entitätswert “Joke” an.
Bei der Eingabe von “Joke” im Testchat unten rechts sollte nun als Antwort ein Witz in englischer erscheinen.