francis bonami - Fotolia

Was das Microsoft Bot Framework heute bereits kann

Mit dem Microsoft Bot Framework können Entwickler eigene Chatbots implementieren und veröffentlichen. So unterstützen die Bots Geschäftsprozesse.

Chatbots sind persönliche Assistenten, die den Alltag erleichtern. Sie finden hohe Akzeptanz bei Anwendern. Denn die intelligenten Systeme ermöglichen eine Interaktion über Sprache – fast wie mit einem realen Menschen. Mit dem Microsoft Bot Framework können Entwickler schnell und einfach eigene Chatbots implementieren, testen und veröffentlichen. Wir stellen Ihnen die Plattform vor und zeigen Ihnen an einem praktischen Beispiel, wie Bots die Umsetzung von Geschäftsprozessen unterstützen oder automatisieren können.

Mit der zunehmenden Automatisierung in der Arbeitswelt entstehen immer mehr kleinere Dienste, die Prozesse starten. Diese sind meist in Form von elektronischen Formularen umgesetzt, ob als Webformular oder Office-Dokument.

Nicht selten sind diese Formulare aber kompliziert aufgebaut – insbesondere, wenn Felder keinen Sinn machen und übersprungen werden können. Häufig enthalten einzelne Felder komplexe Regeln. Verstößt der Anwender beim Ausfüllen gegen die Regel, erhält er keine Fehlermeldung, da zur Verifikation vielleicht erst ein anderer Dienst benötigt wird.

Das alles führt dazu, dass Anwender unsicher sind, wie sie ein Formular im konkreten Fall ausfüllen müssen. Wir alle kennen das zum Beispiel aus unserer Steuererklärung. Doch während hier ein Steuerberater weiterhelfen kann, gibt es für Formulare in Unternehmen meist keinen Ansprechpartner – oder der Help Desk ist überlastet.

Chatbots als komfortable Alternative

Mit Chatbots wird das einfacher. Sie setzen dem Anwender kein großes Formular vor, sondern interagieren mit ihm. Der Nutzer spricht den Bot per Chat-Nachricht an, dieser antwortet mit einer Nachricht.

Das hat mehrere Vorteile. Zum einen ist eine Unterhaltung die natürliche Kommunikationsform für Menschen. Anders als ein großes Formular erzeugen sie keinen bürokratischen Stress. Zum anderen hat der Nutzer die Möglichkeit, Rückfragen zu stellen. Er kann auch von der geplanten Reihenfolge der Fragen abweichen oder gar die Beantwortung abbrechen und später wieder aufnehmen.

Je nach Intelligenz des Bots versteht er die natürliche Sprache des Nutzers und leitet aus den Nachrichten Schlussfolgerungen für nachfolgende Fragen ab. So kann er unpassende Fragen vermeiden. Die Antworten des Chatbots sind dabei nicht nur auf Texte oder einfache Auswahloptionen beschränkt. Er kann zum Beispiel frei formatierten Text mit Hyperlinks, Buttons oder auch Bildergalerien in den Nachrichten kombinieren. So lässt sich jede Nachricht individuell und optimal gestalten. Ferner lässt sich eine Konversation deutlich einfacher implementieren als ein komplexes Formular – insbesondere, wenn die Inhalte dynamisch sind.

Aufbau eines Bots.
Abbildung 1: Aufbau eines Bots.

Einen Chatbot mit dem Microsoft Bot Framework implementieren

Das Microsoft Bot Framework ermöglicht es, Chatbots schnell und einfach zu implementieren. Der Programmieraufwand beschränkt sich auf die Logik: Auf Anfragen eines Nutzers muss der Bot die Eingaben verarbeiten und passende Antworten generieren.

Um die Oberfläche muss man sich nur bedingt Gedanken machen. Denn mithilfe des Bot Connector Services lässt sich ein Bot in bestehende Applikationen einbinden. Die Verbindung zwischen Bot und Applikation erfolgt über einen Channel. Als Applikationen stehen hier vor allem chatbasierte Anwendungen wie Skype, Teams, Slack oder Facebook Messenger zur Verfügung. Praktisch ist, dass ein Bot gleichzeitig mehrere Channels nutzen kann. Es gibt drei Möglichkeiten, den Bot zu implementieren:

  • Am einfachsten ist es, den Azure Bot Service zu nutzen. Dieser hostet den Bot als PaaS. Sie müssen ihn lediglich konfigurieren und ihm einen oder mehrere Channels zuweisen. Die Implementierung kann mit C# oder Node.js entweder direkt in Azure erfolgen oder in Visual Studio beziehungsweise einer anderen Entwicklungsumgebung.
  • Soll der Bot in einer selbst gehosteten Umgebung laufen, können Sie ihn mithilfe eines Bot Builder SDKs kompilieren. Als Entwicklungssprache stellt Microsoft auch hier einen Bot Builder für C# und für Node.js zur Verfügung.
  • Als dritte Option kann ein Bot über eine REST API kommunizieren. Die Bot Connector REST API ermöglicht es Bots, Nachrichten an Channels zu senden und Nachrichten zu empfangen. Die REST API unterstützt dabei HTTPS als Transportprotokoll. Werden die REST-Nachrichten nur singulär abgesetzt, so fehlt für eine Kommunikation mit dem Anwender häufig der Zusammenhang zwischen den einzelnen Nachrichten. Mit der State REST API lassen sich Kontextinformationen speichern. So kann der Bot auf vergangene Chats mit dem gleichen Anwender zurückgreifen und zum Beispiel eine unterbrochene Konversation wieder aufnehmen.

Cognitive Services: Den Bot mit künstlicher Intelligenz ausstatten

Wie bereits dargelegt, liegt einer der Vorteile eines Chatbots darin, dass er über kurze Nachrichten kommuniziert und die Antworten des Anwenders in die eigenen Antworten einbeziehen kann. Daher ist es naheliegend, den Bot mit Intelligenz auszustatten. So wird die Kommunikation für den Nutzer noch natürlicher. Der Erweiterung sind prinzipiell keine Grenzen gesetzt, vom Verständnis des Kontextes über Analyse vorangegangener Kommunikation bis hin zu Sprach-/Bilderkennung und -ausgabe.

Holger Fleck, Axians IT Solutions

„Das Microsoft Bot Framework ermöglicht es, Chatbots schnell und einfach zu implementieren. Der Programmieraufwand beschränkt sich auf die Logik.“

Holger Fleck, Axians IT Solutions

Hierfür bietet Microsoft die Cognitive Services als Teil von Azure an. Dabei handelt es sich um eine Zusammenfassung mehrerer KI-Dienste. Mithilfe des Language Understanding Intelligent Service (LUIS) kann der Bot zum Beispiel die Intention des Anwenders erkennen. Er ist in der Lage, Sprache akustisch zu verstehen oder die eigenen Nachrichten in Sprache umzuwandeln und auszugeben.

Die Chat-Kommunikation beschränkt sich jedoch nicht nur auf Text. Der Anwender kann auch Bilder hochladen. Dadurch ergeben sich Einsatzszenarien, bei denen eine Bilderkennung sinnvoll erscheint. Beispiele könnten sein, dass man mittels Texterkennung einen Barcode, Zählerstand oder eine komplette Rechnung einliest. Der Anwender muss diese dann nicht umständlich abtippen.

Eine Oberfläche für den Bot

Sie können einen Bot in einer Applikation komplett selbst entwickeln oder ihn in verschiedene Applikation einbinden. Für Letzteres muss er im Bot-Framework-Portal registriert sein. Bei der Registrierung haben Sie die Möglichkeit, verschiedene Channels zu konfigurieren, die dann die Kommunikation zwischen dem Bot und der jeweiligen Applikation vermitteln.

Sowohl bei gewerblich betriebenen als auch bei Bots innerhalb eines Unternehmens ist es wichtig, die Bot-Nutzung im Auge zu behalten. Das Portal stellt dafür die Analysedienste von Azure Application Insights zur Verfügung. Sie ermöglichen es, die Kommunikationsdaten von Usern, Nachrichten und Channels auszuwerten.

Microsoft bietet eine Anbindung für verschiedene Dienste über Channels an (siehe Tabelle 1). Bei klassischen Messengern fehlt derzeit noch WhatsApp.

Im Bot-Portal angebotene Channels

Klassische Messenger

GroupMe, Kik, Skype / Skype for Business und Telegram

Komplexere Lösungen

Facebook, Microsoft Teams und Slack

Kommunikationsdienste

Cortana, E-Mail (Office 365) und Twilio (derzeit nur SMS)

Suchplattform

Bing

Eigene Website

Web Chat

Auch in Bing lässt sich ein Bot integrieren. Hier erfolgt die Kommunikation über die Suchzeile – der Bot antwortet in die Suchergebnisliste. Darüber hinaus kann ein Bot über ein E-Mail-Konto kommunizieren (derzeit ist dieses nur mit Office 365 Accounts möglich). Auch ein einfaches Web Chat Control steht zur Verfügung, sofern der Bot im Portal registriert ist. Er lässt als iFrame-Element in eine eigene Webseite einbinden. Auf dieser Webseite erscheint dann ein einfaches Chat Control als Verbindung zum Bot.

Derzeit gibt es keine Möglichkeit, eigene Channels zu entwickeln. Allerdings bietet das Bot Framework auch eine Kommunikation zwischen einem Client und dem Bot über eine API (Direct Line) an: Ein Client sendet Nachrichten an den Bot über HTTP POST und empfängt Daten entweder mit HTTP GET oder einem WebSocket vom Bot.

Textnachrichten und interaktive Aktionen

Viele Applikationen, die ein Bot per Channel nutzt, können neben reinen Texten auch Bilder darstellen und Mausklicks verarbeiten. Das Bot Framework unterstützt diese Optionen durch verschiedene Formen von Nachrichten. Bei der Definition einer Nachricht kann man den Text mit Markdown-Formatierungen (zum Beispiel fett, Überschriften, Listen, Hyperlinks und Bilder) erweitern.

Darüber hinaus lassen sich Nachrichten auch mit Dateianhängen ergänzen (zum Beispiel Videos, Audio-Dateien oder andere Dateien). Diese stehen dann in der Nachricht als Link zum Download bereit. Nützlich sind aber vor allem Buttons, die dem Benutzer das Eintippen einer Antwort abnehmen. Auf eine Ja/Nein-Frage eines Bots kann er dann zum Beispiel antworten, indem er auf die entsprechende Option klickt.

Johannes Wahl, Axians IT Solutions

„Sie können einen Bot in einer Applikation komplett selbst entwickeln oder ihn in verschiedene Applikation einbinden.“

Johannes Wahl, Axians IT Solutions

Darüber hinaus kann der Bot Nachrichten auch per Sprachsynthese vorlesen – sofern der Channel dafür geeignet ist. Eine Übersicht, wie die unterschiedlichen Nachrichten in der jeweiligen Applikation auf einem Smartphone dargestellt werden, zeigt der Channel Inspector.

Dabei gilt zu beachten, dass nicht alle Funktionen in allen Channels verfügbar sind. Das Bot Framework bietet zudem die Möglichkeit, Channel-spezifische Funktionalitäten zu implementieren.

Praxisbeispiel: Entwicklung eines Chatbots

Wer einen Bot entwickeln möchte, findet im Bot Framework ein entsprechendes Software Development Kit: das BotBuilder SDK. Es stellt Bibliotheken und Werkzeuge bereit, um Bots zu erstellen und zu debuggen. Im Folgenden erläutern wir anhand eines Beispiels die grundlegenden Konzepte, die für das Entwickeln von Bots relevant sind. Diese Konzepte sind unter anderem die bereits bekannten Channels, Dialoge, FormFlow und Activities.

Unser Chatbot soll zwei verschiedene Aufgaben ausführen können: Zum einen Besprechungsräume für eine bestimmte Anzahl von Personen suchen, um diese anschließend zu reservieren. Zum anderen Projekträume auf einer Microsoft-SharePoint-Plattform bereitstellen.

Doch woran arbeite ich als Entwickler, wenn ich einen Bot programmiere? Die Bot-Application-Vorlage für Visual Studio erzeugt einen Webservice. Der zentrale Einstiegspunkt ist die Post Methode der MessagesController Klasse:

Listing 1

public async Task<HttpResponseMessage> Post([FromBody]Activity activity)

{

 if (activity.Type == ActivityTypes.Message)

 {

 await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());

 }

 else

 {

  HandleSystemMessage(activity);

 }

 var response = Request.CreateResponse(HttpStatusCode.OK);

 return response;

}

Ende

Wie Listing 1 zeigt, ist alles, was zwischen Bot und Channel hin und her gesendet wird, ein Objekt vom Typ Activity, welches der sogenannte Connector verschickt. Der Connector ist ein zentrales Konzept innerhalb des Bot Frameworks und Bestandteil desselben. Er stellt einen einzigen REST-API-Endpunkt zur Verfügung, über den ein Bot mit verschiedenen Channels wie zum Beispiel Facebook, Slack oder Skype kommunizieren kann.

Wenn ein Benutzer einem Bot eine Nachricht schreibt, versendet der Connector also ein Objekt vom Typ Activity. Es gibt mehrere Arten von Activities. Sie ermöglichen es dem Bot, auf unterschiedliche Ereignisse speziell zu reagieren. Activities vom Typ Message sind die sichtbare Kommunikation im Channel zwischen Bot und Endbenutzer.

Wie in Listing 1 zu sehen, wird in diesem Fall ein neuer Dialog erstellt oder ein bestehender Dialog an einem vorherigen Punkt weitergeführt. Auf eine vollständige Auflistung verzichten wir an dieser Stelle aufgrund des Umfanges. Hier nur ein kurzes Beispiel: Beim Hinzufügen und Entfernen von Kontakten zu einer Unterhaltung wird eine für die Benutzer unsichtbare Art von Activity versendet, damit der Bot gegebenenfalls auf dieses Ereignis reagieren kann. Für solche Fälle erzeugt die Vorlage standardmäßig die Methode HandleSystemMessage.

Unser Beispiel-Bot ist jetzt in der Lage, grundlegend auf Nachrichten zu reagieren. Für die zwei Use Cases fehlt jedoch noch ein wichtiges Konzept: Dialoge. Sie ermöglichen es, einen Gesprächsverlauf zu entwerfen und zu lenken. Dialoge können wiederum aus weiteren Dialogen bestehen. Auf diese Art und Weise lässt sich eine höhere Wiederverwendbarkeit erzielen.

Der Dialog Context enthält den Stack aller aktiven Dialoge zu jedem Zeitpunkt aufrecht. Jede Klasse, die als Dialog verwendet werden soll, muss das Interface IDialog implementieren und als Serializable gekennzeichnet sein. Jeder Dialog muss die Methode StartTask enthalten, die den Konversationsfluss einleitet.

Listing 2

public Task StartAsync(IDialogContext context)

{

 context.Wait(MessageReceivedAsync);

 

 return Task.CompletedTask;

}

 

private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)

{

 var reply = Common.CommonConversation.CurrentActivity.CreateReply("Hallo, wobei kann ich Ihnen helfen? Bitte wählen Sie aus den unten stehenden Optionen.");

 reply.Type = ActivityTypes.Message;

 reply.TextFormat = TextFormatTypes.Plain;

 

 reply.SuggestedActions = new SuggestedActions()

 {

  Actions = new List<CardAction>()

  {

   new CardAction(){ Title = "Besprechungsraum buchen", Type=ActionTypes.ImBack, Value="Besprechungsraum buchen" },

   new CardAction(){ Title = "Projektraum erzeugen", Type=ActionTypes.ImBack, Value="Projektraum erzeugen" }

  }

 };

 

 await Common.CommonConversation.Connector.Conversations.ReplyToActivityAsync(reply);

 

 context.Wait(ProcessRequest);

}

Ende

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Legacy-Systeme sind ein Hindernis für Chatbot-Entwicklung.

Sicherheit und Datenschutz bei Chatbots beachten.

Chatbots: Was ist bei der Revolution im Kundenservice zu beachten?

Artikel wurde zuletzt im April 2018 aktualisiert

Erfahren Sie mehr über Business-Software

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close