QNAMaker Bots in K2 Apps einbinden #bots #ai

Wer auf der Suche nach einem einfachen Botsystem für seine Anwendungen ist, sollte sich mit qnamaker.ai (von Microsoft) auseinandersetzen. Der Service ist zwar momentan noch in der Preview, bietet allerdings schon viele Funktionen und v.a. auch eine REST API mit der man seine Bots in eigene Anwendungen integrieren kann.

Info: Wer über eine O365 Subscription verfügt kann mit wenigen Klicks diese Bots auch auf anderen Plattformen nutzen, z.B. MS Teams, Skype For Business etc.

Der wichtigste Aspekt für eine Integration mit K2 ist der Service Endpoint des Bots. Diesen bekommt man an mehreren Stellen präsentiert und so sieht das Ganze aus:

POST /knowledgebases/<urlpart>/generateAnswer
Host: https://westus.api.cognitive.microsoft.com/qnamaker/v2.0
Ocp-Apim-Subscription-Key: <key>
Content-Type: application/json
{"question":"hi"}

Anhand dieser Information kann man sich bereits Gedanken machen, wie die Swagger Datei für den K2 REST Broker auszusehen hat. Mittels Postman o.ä. Tools kann man schnell herausfinden wie die Response des Bots aussieht:

{
 "answers": [
 {
 "answer": "I have found this information: Berlin",
 "questions": [
 "Capital of Germany?"
 ],
 "score": 100
 }
 ]
}

Hat man eine passende Swagger Datei erstellt, kann man die REST Service Instance erstellen und folglich via SmartObject mit dem Bot kommunizieren. 👍

Die Art und Weise der Integration hängt von der Bot-Strategie ab, hier gibt es beliebige Möglichkeiten:

  • Ein Bot als Benutzerhandbuch für Apps (“Wie erstellt man einen Lieferantenvertrag?”)
  • Generischer HR Bot (“Wieviele Urlaubstage habe ich noch?”)
  • Business Data Bot (“Wie groß ist das Restbudget von Kunde X?”)

Steht das SmartObject bereit, kann man mit K2 SmartForms eine Bot-View bauen. Solche Views kann es dann pro Bot geben und können über Anwendungsgrenzen hinweg eingesetzt werden. Hier ein Beispiel: