Chatbot in Azure–So einfach geht’s
avatar

Ich habe in letzter Zeit etwas mit Chatbots herum gespielt. Die Erstellung der Basic-Variante geht sehr einfach. Heute möchte ich Euch zeigen wie das geht und wie man den Chatbot anschließend veröftentlicht (am Beispiel vom Messenger Telegram).

Als Voraussetzung sollte der Entwickler über einen Azure-Konto z.B. aus der MSDN verfügen.

 

Wie erstelle ich einen ChatBot?

Öffnen Sie Ihr Azure-Portal und Erstellen Sie einen BotService (App Services –> Bot Service –> Erstellen)

image

Geben Sie dem Bot einen Namen und wählen Sie die weiteren Parameter.

image

Nun gilt es abzuwarten, bis der Bot in Azure erstellt ist (Tipp: Es reicht nur für eine sehr kurze Kaffeepause). Anschließend öffnet man den Bot und wird aufgefordert eine AppId und ein Passwort zu erstellen.

image

Die Registrierung ist sehr einfach. Beim Generieren des Passwortes das Passwort speichern (wird einmalig gleich wieder benötigt).

Anschließend kann ein Samplebot erstellt werden. Es werden die Sprachen C# und NodeJs angeboten. Unser Bot Hans-Dieter wird ein Form-Bot.

image

Und wieder müssen wir wieder eine kurze Zeit warten bis Hans-Dieter einsatzfähig ist (Tipp: Kaffeepause).

Nach der Erstellung wird einem die Azure Development Plattform gezeigt. Hier ist es möglich den Code in der Cloud zu editieren. Auf der rechten Seite sieht man ein Chatfenster in dem man mit Hans-Dieter chatten kann. So können die Änderungen sofort getestet werden.

image

Wie funktioniert Hans-Dieter eigentlich?

Dafür muss ich ein wenig ausholen. Seit kurzer Zeit hat Microsoft Azure Functions eingeführt(https://azure.microsoft.com/de-de/services/functions/). Azure Functions können über einen Rest-Service aufgerufen werden, bearbeiten dann den Input und geben einen entsprechenden Output zurück.

In unserem Falle ist dies das Form, welches im Code zu sehen ist. Da Log im unteren Bereich des Bildschirms zeigt uns dann auch genau wann die Function aufgerufen wurde (“Webhook triggered”) und wenn die Function abgeschlossen ist (“Function completed”).

image

Tipp am Rande: Die Seite der Azure Functions bietet übrigens eine tolle Code Challenge.

 

Wie kann ich mein Formular ändern?

Die Daten die im Formular abgefragt werden, können relativ einfach geändert werden. Ich möchte das Hans-Dieter später unsere Kaffeemaschine dazu bringt mir einen Kaffee zu machen (Tipp: Jetzt keine Kaffeepause).

Ich möchte das Hans-Dieter zunächst den Namen und anschließend die Art Kaffee erfragt. Dafür wechsele ich in die Date BasicForm.csx. Dort findet man auch die Beispieleinträge aus dem Autobeispiel von oben.

Die einzige Änderung die ich mache, ist die Enums für CarOptions und ColorOptions sowie die zugehörigen Properties aus dem BasicForm zu löschen. Anschließend füge ich mein eigenes Enum CoffeeOptions hinzu.

public enum CoffeeOptions { Americano = 1, Cappucino, CafeAuLait, Espresso, Lungo };

Anschließend rufe ich sie im Formular auf.

[Prompt(„Please select your favorite coffee type {||}“)]
public CoffeeOptions Coffee { get; set; }

Ein kleiner Test beweist, dass Hans-Dieter nun meine Bestellung entgegen nimmt.

image

Wie bekomme ich den Bot nun auf mein Handy?

Wie oben beschrieben, möchte ich das anhand des Messengers Telegram zeigen. Zunächst geht man in den Reiter Channels. Die Channels bieten ein gute Auswahl (Skype, Webchat, Direct Line (= Webservice), Email, Facebook Messenger, GroupMe, kik, Microsoft Teams, Slack, Telegram, Twilio). Ist man im Reiter Channels wählt man bei Telegram “add” und folgt dem HowTo.

image

Im Anschluss kann der Bot in Telegram aufgerufen werden. Er läuft unter @HansDieter_bot.

Screenshot_2017-01-04-15-21-20

 

Nun kann Hans-Dieter auf dem genutzt werden. Der findige Entwickler speichert seine Auswahl nun noch im Azure Storage ruft diesen mittels Raspberry Pi (oder einem anderen gefälligen IoT-Gerät) auf, koppelt das noch mit dem Kaffeevollautomat und freut sich auf seinen Kaffee.

Vielen Dank Hans-Dieter

Schreibe einen Kommentar