Category Archives: Bot

Bot – sprechende Systeme bzw. Programme

27Jun/17

Entwicklung eines Bots – Ein Beispiel

In diesem Artikel möchte ich ein Bot präsentieren, der mit dem Bot Framework von Microsoft entwickelt wurde. Die Aktivitäten kann bis zur Veröffentlichung des Bots in 6 Schritten zusammengefasst werden.

  1. Entwicklung des Bots mit Hilfe der Dokumentation vom Bot Framework. Testen und Debugging von Entwicklung erfolgte auf Visual Code und botframework-emulator
  2. Auf dem Microsoft Azure Portal (Visual Studio Team Services) kann ein „Leistungstest“ bzw. ein „Performance test“ durchgeführt werden. Mit dieser Funktion wurde die Leistung der Seite für ein „User load“ (Nutzeranzahl) von 150 und für die Dauer von 1 Minute getestet. Nützliche Information zur Antwortzeit, CPU&Memory gemäß Visual Studio wurden präsentiert. Funktionstests werden durch DirectLine durchgeführt. In diesem Fall muss Microsoft Bot Framework selber „gehosted“ werden.
  3. Registrieren des Bots auf http://dev.botframework.com
  4. Eine WebApp wird auf Azure installiert. Der Code wurde über github nach Azure gebracht. Anschließend wird sie mit Microsoft APP ID & PW mit dem Bot verknüpft.
  5. Verbreitung des Bots auf verschiedenen Kanälen wie Web, Skype, Slack
  6. Live Test: Ein finaler Livetest kann entweder auf der dev.botframework Seite oder direkt online auf der Seite des Bots durchgeführt werden.

Was macht dieser Bot:?

  • Nach Eingabe eines Textes vom User stellt der Bot den User eine Frage
  • Anhand der Antwort schickt er ein RichCard mit Link, Bild, und Button zurück
  • Eine Eingabevalidierung (input validation) bei drei 3 fehlerhaften Eingaben vom User liegt auch vor. Der User bekommt einen entsprechenden Hinweis


Und wie finden Sie den Bot?

Nun gehen wir kurz auf die Schritte während der Entwicklung ein.

Während auf Visual Code entwickelt wird, kann mit Hilfe von ChatConnector lokal auf den Emulgator auf einen lokalen Port 3978 getestet werden. Rechts beim botframework-emulator, liegt ein Log und die Details von Und finden Sie den Bot?

In Visual Code kann man „Debuggen“ auswählen. Auch Breakpoints kann man einsetzen. Die Variablen können beim Debuggen detailliert betrachtet werden. Auch der Dialog Stack ist zu sehen.

So nun kommen wir zum Code. Ich könnte Ihnen meinen github Link zur Verfügung stellen. Doch will ich Sie animieren, diesen Bot selber nachzuprogrammieren. Viel Erfolg! Wenn Sie Hilfe brauchen, dann schicken Sie eine kurze Email an info@internetretailing.de.

Der Code ist in vier Teilen geteilt.

  1. Import von Modulen und Einstellung des Servers
  2. Einstellung ChatConnector
  3. Einstellung UniversalBot
  4. Implementierung der Logik des Dialogs
18Jun/17

Text Analyse API, Sentiment Analyse, LUIS und QnA Maker

Text Analyse API (Stimmung, Schlüsselbegriffe, Themen und Sprache in Ihren Texten erkennen):

  • Empfindungsanalyse: Wert  0-1
  • Stichwörter extrahieren
  • Themenerkennung: Ein Thema wird anhand von Schlüsselbegriffen identifiziert
  • Erkennung der Landessprache

In diesem Fall muss man kritisch betrachten, da nur „Laptop“ als Schlüsselbegriff selektiert wunde. Ob dieses Wort alleine bzgl. der Stimmung aussagekräftig ist, ist fraglich.

Sentiment-Analyse

Mit der Sentiment-Analyse wird die allgemeine Stimmung eines Textes bewertet. Ein bot parst den Text und soll feststellen, ob eine bestimmte Tonart hinterlegt ist.

Es gibt Wörter wie „lieben, gut, Freude, schön“, die man mit positiven Emotionen verbindet. Wohingegen Wörter wie hassen, schlecht, nicht gut, ’scheixxe‘ negativen Emotionen äußern. Doch bei verneinten Sätze wie „Ich finde es nicht schlecht“ wird die Stimmungsanalyse nach den Schlüsselwörtern schon schwierig. Auch bei gemischten Sätzen wie “Der Apfel ist super, doch die Birne ist schlecht“ ist es nicht einfach die Emotion des Satzes zu identifizieren.

Eine erfolgreiche Technik dieses Problem zu adressieren, kommt aus dem Stanford Natural Language Processing Bibliothek. Ein „Recursiv Neural Tensor Network“ (RNTN) Algorithmus teilt den Satz in einzelnen Wörtern auf. Dieses Model verbindet die Wörter miteinander, welche zusammengehören und bewertet diese von extrem negativ bis hin zu extrem positiven Stimmung (1 bis 25 Punkte). Die NLP Bibliothek basiert auf Java. Diesen Analyse Engine kann man in seinem Programm integrieren, um die Sentiment Analyse durchzuführen. Der Algorithmus von dem Team in Standford hat IMDB Film Review ‚geparsed‘ und ziemlich genau die Bewertung des Films vorhergesagt.

LUIS und QnA Maker

LUIS und QnA Maker identifizieren einen intent und extrahieren deren entities. Auf dieser Weise soll der Text verstanden werden. Wie funktioniert LUIS? Luis analysiert Texte nach dem Ihn bekannten intent und entity Schema. Auf der LUIS-Seite, wo man die App erstellt, werden Luis entities und intents beigebracht. Mit Hilfe von utterances lernt er verwandte Sätze mit ähnlicher Bedeutung korrekt zu interpretieren. Luis kann anschließend einem Bot integriert werden. LUIS vergibt dem intent und entity eines Satzes  einen Score von 0 bis 1 (1 heißt positiver Befund). Mit einem Vergleichsoperator wird ein intent bzw. entitiy bewertet und eine Folgeaktion im Bot beschrieben bzw. definiert.

Falls der Text nicht verstanden wird, ist es möglich, dass Nutzer messages an eine reale Person weiterleitet. Sie antwortet die Frage dem Bot und diese geht dann weiter zum Anwender.
Der für die Integration von Luis verwendete Code sieht wie folgt aus.

Einen Bot in eine Webseite einbetten

Ein Bot auf einer Webseite macht Sinn, sofern auf der Webseite ein Besucher nicht schnell die gesuchte Information findet. Besonders bei einer kompliziert strukturierten Webseite macht dies Sinn.

Backchannel Mechanismus kommuniziert über Direct Line API und nutzt den open source web chat control. Durch diesen Kanal werden GPS Location des Besuchers und andere Webseiten-infos an Bots geschickt.

31Mai/17

Testen – Botentwicklung

In diesem Artikel schauen wir uns das Thema Test bei der Einführung eines Bots näher an. Bei einer Entwicklung eines Bots finden grundsätzlich Unit-Tests, Integrationstests, Funktionstests und final der User Acceptance-Test (UAT) statt. Parallel wird auch regelmäßig ein Lasttest (load test) durchgeführt, welcher produktionsnahen Last simuliert. In diesem Artikel wird der Funktionstest bei Bot-Entwicklung näher angeschaut. Weitere Artikel zu den anderen Testarten werden folgen.

Funktionstest

In diesem Test stehen die Anforderungsdokumente im Vordergrund. Funktionen werden auf Ihre richtige und korrekte technische Umsetzung hin getestet. Anhand von Anforderungsdokumenten sollten ausreichend Testfälle vorliegen. Die Testfälle sollten nicht nur den „happy path“, sondern sollten auch Fälle mit Fehlern/Exceptions einschließen.

6 Schritte beim Funktionstest:

  • Wichtige Funktionen der Software sind zu identifizieren und somit zu priorisieren
  • Testdaten sind gemäß Konzept anzulegen
  • Input und erwartetes Output müssen im Rahmen der Testfälle definiert werden
  • Ausführen von Testfällen
  • Vergleich des Outputs und der erwarteten Ergebnisse
  • Fehler dokumentieren / bug oder defect erfassen

Automatisches Testen mit Microsoft Bot Framework

Der klassische Entwicklungsprozess startet auf Visual Code oder Visual Studio. Dann wird „gedebuggt“. Auf botframework-emulator kann der Code simuliert und getestet werden. Oft werden Entwicklertests auf diesem Wege durchgeführt. Bei kleineren Projekten kann man dieses Verfahren auch nutzen. Doch bei größeren Vorhaben ist dieses Verfahren nicht effizient und effektiv, da ein ausführlicher Test notwendig ist. Denn Fehler in der Produktion, abhängig von der Branche, kann einen signifikanten Reputationsschaden zur Folge haben. Um die Testphase gut auszunutzen, sind automatische Testverfahren mit entsprechender Dokumentation nützlich. Die Entwicklung von Testfällen ist ein enormer aber nur ein Einmalaufwand. Die Vorteile von dieser Testautomatisierung sind allerdings:

  • Testdurchführung kann beliebig oft durchgeführt werden
  • Testumgebung kann ausgelastet werden
  • Wiederholungsmöglichkeit der Testergebnisse
  • Schnelles Feedback für die Entwickler
  • Revisionssichere Dokumentation
  • Kosten und Zeitersparnis
  • Größere Datenmengen können effizient getestet werden

 

Welche Lösungen gibt es dabei? Wie testet man idealerweise einen Dialog?

Wie führt man einen funktionalen Test durch? Ein Weg ist mit Hilfe des Kanals „Direct Line“. Nach der Erstellung eines Bots auf https://dev.botframework.com/bots, haben Sie die Möglichkeit den Kanal „Direct Line“ zu aktivieren. Anschließend sollten Sie den Bot selber hosten. Mit Hilfe von „Direct Line“ senden Sie Nachrichten direkt an den gehosteten Bot. Dieser erfasst die Antwort und prüft die Richtigkeit der Nachricht an Hand der definierten Testfälle, die in dem Code hinterlegt sind. Anbei ein Beispielcode wie so ein Testfall im Code als ein Task aussehen kann (ein Thread wäre zu ‚teuer‘ auf C#).  In dem Beispiel oben wird die Texteingabe im Feld „Action“ simuliert. Die generierte Antwort mit dem „Expected Reply verglichen“, welche das Testergebnis bestimmt. Diese Testfälle in C# zu schreiben ist einfach. Für mehr Informationen sehen Sie sich den folgenden Code auf github an (Azure – Funktionale Tests; Die Klasse TestRunner ist der Kern zur Ausführung der Testfälle).

12Mai/17

QnA Bot Maker

Im Rahmen dieses Artikels werden wir Ihnen präsentieren, wie Sie ein FAQ Bot auf Ihrer Webseite erstellen können.

1. Gehen Sie auf QnA Maker
2. Melden Sie sich an
3. Klicken Sie auf Create new service

 

4. Geben Sie hier nun den Service Namen, URL von Ihrem FAQ oder laden Sie Ihr FAQ als pdf, doc, xlsx Datei hoch

5. Nun extrahiert der Bot den zur Verfügung gestellten FAQ Text. Er teilt ihn in „Question“ und „Answer“ Spalten auf.

Unter Knowledgebase sehen Sie das dem Bot verfügbare Wissen. Jederzeit kann ein Frage-Antwort Paar mit Hilfe des Buttons +Add new QnA pair hinzugefügt werden. Je mehr Fragen vorliegen, desto mehr Wissen kann das Bot haben.

Unter Test können Sie Ihren Chatbot testen. Doppeldeutige Fragen können eindeutige Antworten zugewiesen werden. Mit Save and Train lernt der Bot aus den von Ihnen eingegebenen Antworten.

Unter Settings sehen Sie die wesentlichen Einstellungen von Ihrem FAQ.

Integration des Bots in Ihre Anwendung

6. Mit Publish veröffentlichen Sie Ihre FAQ.

Nach Veröffentlichung finden Sie unter Settings “Deployment details“. Dieser beinhaltet die Knowledgebase ID und den Subscription Key. Anhand dieses http Requests können Sie einen Handshake zwischen dem Bot und der Azure App veranlassen. Hierfür muss eine API gebaut werden.

7. Ein alternativer Weg ist die Verknüpfung des Azure Bot Service mit der FAQ Knowledge base.  Melden Sie sich bei Azure an und erstellen Sie ein Bot Service ( Vorschau).

8. Sie erstellen eine APP mit einer APP ID und einem Passwort, welche von Microsoft generiert werden. Bitte bewahren Sie das Passwort auf.

9. Sie können nun auf Basis von C# oder Node.js Ihren Bot auf Azure erstellen. Mit „Create bot“ wird er nun final erstellt.

10. Unter launch.json passen Sie bitte die Knowledgebase ID und den Subscription key an.

Anschließend speichern und der Bot kann getestet werden.

Unter edit Webchat finden Sie Ihren Embded Code für Ihren iframe, den Sie einfach in Ihrem HTML Code einfügen können.

Mit den genannten Schritten erstellen Sie einen FAQ Bot.  Mit Hilfe des QNA Maker können Sie Ihren Bot stets trainieren und seine Qualität verbessern.

11. Debuggen und den FAQ weite ausbauen: Hierfür müssen Sie den Code lokal ausführen und weiterentwickeln. Anschließend können Sie den aktuell Code über ein Repositpry oder mit Hilfe von Visual Studio direkt an Azure schicken.

01Mai/17

Bot Entwicklung + Test mit Node.js

Bot Builder SDK bietet UniversalBot (Gehirn vom Bot) und ChatConnector (verbindet den Bot zu den anderen Bot-Framework Connector Services) Klassen an, damit der Bot konfiguriert werden kann, um messages zu senden und zu empfangen.

Action: Bot ist fähig Unterbrechungen zu verstehen und dementsprechend beim Gespräch zu reagieren.

LUIS kann dem Bot als Cognitive Service hinzugefügt werden, um natürliche Sprache zu verstehen.

Saving State: Wichtig die Antwort von der letzten Frage / Session zu merken. Hierfür sollte userData, conversationData, privateConversatoindata, dialogData genutzt werden um temporäre Daten zu speichern.

Waterfall im Dialog:

Waterfall ist eine Implementierung eines Dialogs, welches genutzt wird um Informationen vom Nutzer zu sammeln oder dem Nutzer über eine Reihe von Aufgaben zu führen. Es werden zum Beispiel 4 Fragen gestellt, anschließend wird eine Aussage mit Hilfe der letzten Antworten getroffen.

Beispiel:

Frage 1 vom Bot: Was für Schuhe möchten Sie kaufen?

Antwort: Edle Schuhe

Frage 2 vom Bot: Welche Farbe?

Antwort: Braun

Frage 3 vom Bot: Wie teuer dürfen sie sein?

Antwort: Kleiner 100

Aussage vom Bot: Ich werde nun für Sie braune edle Schuhe unter 100 Euro heraussuchen.

 

Mit UniversalBot wird eine Funktion gehandhabt um messages zu senden und zu erhalten. Dieses Objekt wird dem ChatConnector weitergereicht. Der Chatconnector fordert auch die AppID und das Passwort ein, damit er mit einem Kanal verbinden/integriert werden kann.

  • send: zu schreiben
  • say: zu sagen

Mit Hilfe von Azure kann ein Bot über eine Weboberfläche erstellt werden.

  1. Basic: Dialog um auf Input zu antworten
  2. Form : Erstellt einen Bot, dass Input vom User sammelt, damit er ein eingeführtes Gespräch führen kann (Waterfall)
  3. Language understanding: Erstellt einen Bot, dass die natürliche Sprache mit Hilfe von LUIS die Absicht (Intent) versteht.
  4. Proactive: Erstellt einen Bot um den Nutzer auf Events aufmerksam macht
  5. Question and Answer: Erstellt einen Bot, der ein „knowledge Base“ nutzt, um die Fragen vom Anwender zu beantworten

Anschließend kann gewählt werden, ob der Bot auf .Net oder Node.js Basis erstellt werden soll. In der Entwickleroberfläche kann auch der Code sofort angepasst werden. Dieser kann auch getestet werden.

 

Wenn die Sprache Node.js selektiert wurde, dann werden folgende Dateien von Azure erstellt.

  • json (function bindings)
  • json (Konfigurationsparameter)
  • json (Referenzen)

Testen / Debuggen eines Bots mit dem Emulator
Der Code muss auf Visual Studio geöffnet werden. Der Node muss über die Kommandozeile im Debugmodus gestartet werden (siehe Abbildung). Im Emulator wird der Bot getestet und im Visual Studio kann das debugging starten.
Debuggen ist lokal möglich. Besonders mit Hilfe von Visual Studio kann das Debuggen einfach erfolgen. Auf dem Emulator kann man sich Details von jedem Datenaustausch anzeigen lassen. Auch liegt ein Log von der Konversation vor. Mit Hilfe der Details, die als JSON Ojekte gezeigt werdem, kann man Unit Tests durchführen.

28Feb/17

Microsoft Bot Framework

Das Bot Framework bietet zahlreiche libraries and services an, die helfen um Schnittstellen zu bauen um deine APP ins Laufen zu bringen.

  1. Kommunikationswege mit dem Bot: Speech, Typing or Touching
  2. Art und Weise Bots zu trainieren: Intents, Entities, Utterances

Mit Bot analytics findet man heraus wie hoch die Anzahl der Kunden, Anzahl an wiederkehrenden Kunden, Zahl der Konversationen und wie der Ursprungskanal (Skype, Webseite etc.)  sind.

Eine Interaktionen mit einem Bot kann in natürlicher Sprache erfolgen.

Beispiel:

Nutzer: Friseur am Samstag?

Bot: Klar. Folgende Termine sind Verfügbar: 10.00 Uhr, 11.00 Uhr etc.

Nutzer: 10:00 Uhr

Bot: Perfekt. Ein Termin wurde erfolgreich um 10.00 Uhr am 25.03.2017 reserviert.

Warum Bot Framework? Bot Frame bietet Tools und Features an, um die Entwicklung von Bots zu vereinfachen.

 

  1. Bot Builder bietet SDKs für .Net und Node.js Plattformen an, um den Bot zu bauen. Auch ein Emulator für Debugging Zwecke liegt vor. Dieser SDK bietet libraries, samples und Werkzeuge an, um Bots zu bauen und zu debuggen. Im SDK sind Dialoge und einiges an Basiswissen eingebaut.  Die Gesprächslogik wird auf einem Web Service gehosted. Node.js nutzt das Framework „restify“, bekannt für Web Services, um einen Webserver für das Bot zu erstellen.
  2. Bot Framework Portal bietet eine Möglichkeit um Bot zu registrieren, verknüpfen und zu verwalten. Auch Analysetools liegen vor.
  3. Auf verschiedenen Channels können die Bots verwendet werden wie Email, Skype, Facebook, Slack und SMS. Mit channel Inspector kann ein Bot auf verschiedenen Kanälen getestet werden.

Mit Hilfe von Microsoft Cognitive Services können Sprachverständnis und Bilderkennung dem Bot hinzugefügt werden.

Erstellung eines Bot mittels des Azure Bot Service

Der Azure Bot Service unterstützt die Entwicklung eines Bots, da eine Infrastruktur für die Bot Entwicklung vorliegt.

Ein Bot kann lokal oder auf der Azure Plattform erstellt werden. Ein lokal erstellter Bot kann auf dem Bot-Framework-Emulator getestet und gestartet werden. Mit Node (SDK) Bwird eine app.js gestartet. Gleichzeitig wird der Bot-Framework Emulator gestartet. Hiermit wird auf dem lokalen Rechner auf einer virtuellen Maschine der Bot getestet.

Wie funktioniert das Bot-Framework?

Das Bot-Framework bietet Tools und Services an, die einem helfen Bots zu bauen und zu veröffentlichen inkl. dem Bot Builder SDK, Developer Portal und dem Bot Connector.

Bots Bauen:

Bots sind Apps die eine Konversations-Schnittstelle für die Kundenbedürfnisse anbieten. Wenn der Bot auf dem Developer Portal registriert und verbunden ist, dann kann die ganze Welt über Facebook, Skype, Slack und weiteren Kanälen den Bot verwenden

 

Azure Bot Service bietet eine integrierte Entwicklungsumgebung für Bots. Ein Bot kann von Ihrem Webbrowser geschrieben, verbunden, getestet und verwaltet werden. Einfache Bots brauchen sogar keinen Code. Der Bot läuft auf der Azure Cloud und ist somit auch skalierbar.

Channel: ist die Verknüpfung zwischen Bot-Framework und einer der Kommunikationsapps wie Skype, Facebook etc.

Bot Connector verbindet den Bot zu einem Kanal und verwaltet den Nachrichtenaustausch.

Activity : Ein Objekt wird genutzt um Informationen zwischen einem Bot und einem Kanal  auszutauschen. Message ist ein Typ von Activity.

Dialog organisiert die Logik im Bot und verwaltet die Konversation. Ankommende Nachrichten werden in einem Stack gespeichert.

Rich card beinhaltet einen Titel, eine Beschreibung, einen Link und Bilder. Somit kann eine message unterschiedliche rich cards beinhalten im Rahmen einer Liste.

Test und Debug: Der Bot-Framework-Emulator ist eine Desktop Applikation, womit Entwickler Ihre Applikation testen und debuggen können. Der Bot läuft auf einem localhost oder remote durch ein Tunnel. JSON Anfragen und Antworten werden geloggt. Auch Visual Studio Code kann hierfür genutzt werden.

Deploy to the cloud: Vom github oder Visual Studio kann der Bot über Azure oder einem anderen Host deployed werden.

Register Bot:  Ein fertiger Bot sollte im developer Portal registriert werden. Das Dashboard  bietet  Management und Verwaltungsdaten an. Darüber hinaus können weitere Konfigurationen durchgeführt werden.

Bing: mit dem Bot zu verbinden macht den Bot öffentlich. Ein privater Bot sollte auf die Verknüpfung mit Bing verzichten.

 

Wie wird der Bot intelligenter? Intelligente Bots antworten auf Fragen wie reale Menschen

  • Sprachverständnis (LUIS): ist fähig natürliche Sprache zu verstehen mit Hilfe von trainierten Sprachmodellen
  • Rechtschreibungskorrektur: Bing Spell Check API
  • Sentiment Analyse (Stimmungserkennung): Text Analytics API identifiziert Stimmung, Themen und Sprache vom Text
  • Sprachmodellierung: Web Language Model wertet die Worthäufigkeit aus, sagt das nächste Wort voraus in dem fortgeschrittene Sprachmodelle berücksichtigt werden.

 

 

Design eines Bots

Ein Bot muss einen Mehrwert liefern als App, Webseite, Anrufe und andere Kommunikationsmittel. Wie kann der Bot die maximale Kundenzufriedenheit liefern?

Löst der Bot das Problem der Kunden schnell (in einer geringen Anzahl von Schritten / in kürzester Zeit)?

Auf Antworten wie „Stop, Abbrechen, Aufhören“ muss der Bot auch schnell reagieren können. Auch die gewählten UX Elemente müssen zu der Intention eines Bots passen. Das primäre Kriterium eines Bots ist und bleibt das Problem des Kunden mit höchster Kundenzufriedenheit zu lösen.

Wie schreibt man ein Event Handling? Anbei stellen wir Ihnen ein Möglichkeit ein Event und die Aktion eines Bots vorzubereiten.

25Jan/17
chat bot service

Was sind eigentlich Chatbots?

chat bot service

Chattende Roboter? Chattende Systeme? Ja, diese Antworten sind nicht ganz falsch.

Bei Chatbots handelt es sich um intelligente Programme, die automatisch mit Nutzern kommunizieren. Jeder Nutzer kann in natürlicher Sprache im Rahmen eines Chats kommunizieren. Das hinterlegte Programm antwortet wie eine natürliche Person. Wie funktioniert dieses Phänomen? Wie kann man selber ein Chatbot erstellen? Diese Fragen werden im Rahmen dieses Artikels adressiert.

 

Der Einsatz von Chatbots ist vielfältig und auch in unterschiedlichen Branchen zu unterschiedlichen Zwecken möglich. Kann ein Chatbot einen Menschen ersetzen?

Hierfür muss das Programm die Chatthemen verstehen und thematisch einordnen können. Zusätzlich müssen die Fragen beantwortet werden können. Hierfür muss das Programm maschinell Lernen und künstliche Intelligenz einsetzen, damit aus einem Gespräch, die wesentlichen Inhalte entnommen werden können. Bei einem Satz wie:

„Ich möchte Schuhe kaufen“. Das Bot analysiert den Satz und extrahiert daraus die Absicht des Benutzers.

Intent:  kaufen

Artikel: Schuhe

Bei diesem einfachen Satz lernt die Maschine schnell und versteht, dass der potenzielle Kunde Schuhe kaufen möchte. Anhand dieser Frage kann das Bot zurückfragen, welche Größe, Preiskategorie, Marke etc. für den Nutzer relevant ist. Somit entsteht ein aktives Gespräch. Schwieriger wird es bei Sätzen, wo selbst der Nutzer uneindeutig kommuniziert. Hierbei kommt es auf die Erfahrung vom Bot an, welche Antwort er liefert.

 

Worauf muss man bei der Entwicklung eines Chatbots achten?

  1. Die Intention und das Ziel des Chatbots muss eindeutig sein!
  2. Der Mehrwert des Chatbots muss eindeutig sein.
  3. Die Zielgruppe der Chatbot muss bekannt sein

Technische Schwierigkeiten bei einem Bot:

  • Technisch herausfordernd; ein Text nach seiner Absicht zu analysieren und zu verstehen erfordert komplexe Algorithmen
  • Nachhaltig Maschinen lernende Systeme zu bauen erfordert viel Zeit , Geld und intelligente Ressourcen
  • Domain spezifisch; eigene Maschinen lernende Systeme zu bauen braucht eine Handvoll Experten von Datenanalysten

 

Ein Bot braucht die Cloud

Das maschinelle Lernen und KI für Textanalyse und Sprachverständnis benötigt viel Rechenkapazitäten, die man in einem Server schwer handhaben kann.  Es ist deshalb ratsam, die Frameworks für die Entwicklung von Bots als Service in der Cloud laufen zu lassen.

Wie entwickelt man ein Chatbot?

Ein Chatbot zu entwickeln kann sehr aufwändig sein, wenn man keine existierenden Frameworks nutzt. Diese vereinfachen das Leben eines Chatbot Entwicklers, da die komplexen mathematischen Algorithmen bereits von den großen Anbietern in deren Frameworks implementiert sind.

Die bekanntesten Frameworks sind:

04Jan/17

Microsoft Azure eine Plattform für Bots oder auch mehr?

Cloud Computing ist das Buzz Wort seit mehreren Jahren in der Informationstechnologie. Die Server- Kosten sollen sich nur auf die in Anspruch genommene Leistung beschränken, bessere Leistungen, Skalierbarkeit und Schnelligkeit gelten als positive Punkte für diese Technologie. In der Vergangenheit hat das Unternehmen selber eine Infrastruktur besessen und muss die Wartung auch selbst betreiben.

Cloud Computing kann man auch als die Anwendung von Remote Servern im Internet, zur Verwaltung von Daten verstanden werden. Pay-for-Use macht diesen auch attraktiver. Firmen können Ihre komplette IT-Infrastruktur auslagern an die Cloud-Dienstleister.

Pay-for-Use Basis für die erbrachte Computer Ressuorce

  • Public Cloud: Google, Azure, AWS –> Cloud-Dienste werden offen über das Internet jedem zugänglich gemacht
  • Private Cloud: Firmen besitzen Server, Infrastruktur selber, wegen Datenschutz und IT Sicherheit
  • Hybride Cloud: Mischformen von Public und Private Cloud wird als Hybride Cloud genannt.

 

Azure

  • Sammlung von Cloud Serviceleistungen; IT Experten bauen, entwickeln und verwalten Apps in den verschiedenen Data Centers.
  • Azure bietet eine gute Anzahl von Services die IT im Cloud aufzubauen

Virtuelle Maschine (VM) –> Rechner im virtuellen Server –> Hypervisor erlaubt das Betreiben von mehreren virtuellen Maschinen auf einem physischen Rechner. VM sind kompatibel mit Linux und MAC (iOS) Rechner

Um eine VM erstellen gehen Sie auf  Neu,  Compute und dann auf Windows Server.

Azure DB

  • SQL Database— Relationelle Databank
  • Document DB –> Nosql
  • Redis Cache — Schlüssel/Wert Speicher

Web  App erstellen und bereitstellen von leistungsfähigen Websites ist schnell und mit geringem Aufwand möglich.

Azure:

  • Cloud Services (DNS, Data center, backup, storage)
  • Webseiten
  • Virtuelle Maschinen
  • Mobile services (Backend in der Cloud)
  • Media services (stream from cloud)

Microsoft Cortana Intelligence Suite:

Advanced Analytics

Big data —>machine learning

Cloud –> geeignet für unbegrenzten Speicher

Intelligence –> Prediction Accuracy gestiegen

Data —> Intelligence –> Action

 

Cortana Intelligence ist eine Plattform und ein Prozess um fortgeschrittene Analysen von Anfang bis zum Ende durchzuführen.

Advanced Analytics Process:

Date Sources –> Ingest–> process analysis—> publish

21Dez/16

Microsoft Azure und sein Bot Framework

Azure ist die Microsoft Cloud-Computing Plattform mit zahlreichen IT Diensten, die an Softwareentwickler gerichtet sind. Für folgende IT Produkt wird Azure verwendet:

  • SaaS: Software as a Service
  • IaaS: Infrastructure as a Service
  • PaaS: Platform as a Service

Das Bot Framework besteht hauptsächlich aus drei Schlüsselkomponenten:

  1. Bot Builder: Software Development Kit: Hier kann der Entwickler auf Basis von .Net, Node.js oder REST API seine Bots entwickeln.
  2. Developer Portal: Hier kann ein fertiger Bot mit verschiedenen Plattformen wie Skype, Facebook, oder Kik verknüpft werden.
  3. Bot Directory ist eine Sammlung von Chatbots worunter Nutzer, Chatbots suchen und finden können.

Microsoft hat mit seinem Framework den Entwicklern einfach gemacht einen Bot zu entwickeln. Sie setzen sogar auf bekannte Protokoll-Standards, so dass eine Einarbeitung nicht notwendig ist. Ein wesentlicher Vorteil ist, dass ein Bot mit Hilfe von Web Control ein API schnell entwickelt und in verschiedene Anwendungen integriert werden kann.

LUIS (Language Understanding Intelligent Service):

Dieser Service ermöglicht einen Menschen zu verstehen, der in natürlicher Sprache schreibt. Er sucht nach „intent“ (Absicht) von einem Satz und dann werden die Entitäten (Objekte wie Alter, Temperatur, Kaufartikel etc.) gesucht. Die Entitäten sind zum Teil vormodelliert und weitere werden LUIS vom Anwender beigebracht.

Ein intent ist eine Aktion, welche der Nutzer vom Bot erwartet. Möglichkeiten für Intent:  Ticket buchen. Kalendereintrag einfügen, Fehler beheben;

Entities sind reale Objekte wie Personen, Ort, Organisation oder Produkt:

Dem System kann mit Beispielsätzen die Entität beigebracht werden. Der Bot baut sich ein Muster und wird nach einer Zeit selbst die Entitäten identifizieren.

Bei diesem Beispielsatz (siehe Abbildung) wird der intent „BookFlight“ identifiziert. Zu knapp 97 % besteht Gewissheit (Confidence), dass es bei dem Satz um diesen intent geht.

Ein Typischer Bot ist wie folgt aufgebaut:

  • Bot web service (inkl. Bot Code und Bot Builder SDK)
  • ) API, SDK ruft Microsoft Cognitive Services auf
  • ) SDK Bilder kommuniziert mit dem Bot Connector Service und dieser kommuniziert mit den anderen Kanälen wie Skype, Facebook, Slack etc.