Wie man einen Q&A Bot für Microsoft Teams erstellt ohne eine Zeile zu coden

Wie man einen Q&A Bot für Microsoft Teams erstellt ohne eine Zeile zu coden

Vor knapp einer Woche, am SharePoint Saturday in München, hielt Wictor Wilén eine spannende Session zum Tema Microsoft Teams. Er zeigte dabei die Möglichkeiten auf mit denen man Microsoft Teams erweitern und um Tabs und Connectoren ergänzen kann. Zusätzlich nutzte Wictor auch die Gelegenheit seinen neuen Yeoman Generator für Tabs in Teams zu veröffentlichen (http://www.wictorwilen.se/yo_teams-tab).

Inspiriert von diesem spannenden Vortrag war es an der Zeit selbst zu versuchen in wie weit man das dort gezeigte auch bereits im eigenen Tenant verwenden kann. Ziel war die Anlage eines QnA Bots ohne dafür eine Zeile Code zu benötigen und genau das wollen wir uns nun genauer ansehen.

Wenn man, so wie ich, zu Beginn nicht wirklich weiß wo man anfängt, ist am besten man zieht diesen Blog Post zur Hilfe: Create BOT from FAQ page with no coding — QnA Maker as new member of Cognitive Service. Hier wird man Stück für Stück durch den sogenannten QnA Maker geführt, ein eigenes Tool in das man sich am besten mit dem gleichen Konto einloggt wie in seinen Azure Tenant.

Für den Aufbau der Knowledgebase stehen mehrere mögliche Quellen im QnA Maker zur Auswahl. Diese bilden später die Grundlage für den Bot. Die Knowledgebase kann man direkt über eine URL automatisch befüllen. Man könnte zum Beispiel direkt auf eine public FAQ Seite auf einer Webpage verlinken. Der QnA Maker wird den Text von dort nehmen, parsen und in seine Knowledgebase übernehmen. Man kann aber auch einfach ein PDF, Worddokument oder ein simples TXT im tab seperated Format hochladen. Die Grenze der Knowledgebase sind im Moment 20MB, was für einen ersten Versuch mehr als ausreichend sein sollte.

Hat man keine öffentlich erreichbare FAQ oder kein Dokument das in Frage kommt zur Hand, kann man alternativ auch manuell die Fragen und Antworten in einen Table auf der Webseite einpflegen. Hier ein Beispiel wie man aus einem internen OneNote seine Knowledgebase aufbauen kann:

Nach der Eingabe folgt der wichtigste Schritt in Richtung AI des Bots, das Trainieren. Ich fühle mich hier etwas zurück geworfen in eine Zeit als Vorlesungen zum Thema maschinelles Lernen meinen Tagesablauf bestimmt haben und nein, ich hätte mir vor knapp 10 Jahren nicht gedacht, dieses Wissen je wieder auszugraben.

Trainieren der AI des Bots

Wie jeder Algorithmus wird auch unser Bot nur durch trainieren richtig gut. Mittels des Reiters Test auf der linken Seite kommt man direkt im QnA Maker auf eine Oberfläche wie oberhalb dargestellt. Man kann also einfach mittels Webchat mit dem Bot in Interaktion treten, ihn Sachen fragen und sieht links die Treffer die von der AI vorgeschlagen werden. Als korrigierende Maßnahme kann man nun Antworten umpriorisieren um so noch bessere Treffer für seine Nutzer zu erreichen.

Man kann sich nun einige Zeit mit dem Bot im Trainingsmodus beschäftigen, oder einfach nach zwei, drei Versuchen direkt den Publish Knopf drücken. Ab diesem Zeitpunkt ist die vorhandene Knowledgebase quasi veröffentlich.

Der nächste Schritt ist nun der Wechsel nach portal.azure.com und die Anlage eines Bot Services. Nach Antwort der typischen Azure Fragen nach Name, Ressourcegruppe etc. kommt man an einen Schirm wo man auswählen kann welches Template der Bot verwenden will. Zuerst muss man sich für C# oder NodeJS entscheiden, darunter befindet sich die Template Auswahl. Hier bitte auf die Kachel mit Question and Answer klicken und im anschließenden Dropdown seine vorhin veröffentliche Knowledgebase auswählen. Hat alles geklappt wird der Bot erstellt und man kommt direkt in den Develop Reiter des Bot Services:

Develop Reiter des Bot Services

Natürlich kann man hier nun auch direkt in den Code eingreifen, in meinem Fall C#, aber rein für diesen Blog Beitrag belassen wir den Code so wie er ist und klicken auf den Reiter Channels.

Channels

Hier werden die unterschiedlichen Channels für unser Bot Service gelistet. Im Standard ist Skype und der Web Chat Channel bereits vorhanden, den Microsoft Teams Eintrag muss man noch von unten über den Add Button hinzufügen. Klickt man nun auf „Add to Teams“ wird man über einen Redirect über die Website von Teams in das Chat Fenster des Clients geleitet und kann beginnen mit dem Bot zu interagieren:

mit dem Bot interagieren Ein Tipp den Wictor uns in München noch gegeben hat: Sollte der Tenant Admin die Verwendung von Bots abgedreht haben, kann man den Bot mittels Suche nach seiner GUID in Teams trotzdem finden und so einen Chat starten. Ob das mit der GA Version von Teams auch noch so sein wird, bleibt abzuwarten.

Natürlich kann man den Bot auch in Skype ansprechen. Dazu öffnent man die Skype Consumer Preview und sucht im Botverzeichniss einfach nach seinem Bot.

Skype Consumer Preview

Zusätzlich zu den oben erwähnten Varianten rund um den Aufbau der zugrunde liegenden Knowledgebase gibt es noch die Möglichkeit diese via API anzusprechen. So könnte man auch Content der für den QnA Maker nicht öffentlich erreichbar ist automatisiert einpflegen und aktualisieren.

Ressourcen: