Jeder kennt es: „Fachpersonalmangel in der IT Branche“, ein gängiges Mantra seit Jahren. Aber wo geschieht eigentlich der Erstkontakt zwischen Unternehmen und den Fachmännern und Fachfrauen der IT-Zukunft?
Während der Ausbildung!
Jeder kennt es: „Fachpersonalmangel in der IT Branche“, ein gängiges Mantra seit Jahren. Aber wo geschieht eigentlich der Erstkontakt zwischen Unternehmen und den Fachmännern und Fachfrauen der IT-Zukunft?
Während der Ausbildung!
Das Microsoft Bot Framework mitsamt dem Bot Builder SDK, das für C# und Node.js verfügbar ist, bietet das Rüstzeug zum Senden und Empfangen von Nachrichten sowie eine Anbindung an verschiedene Chat Kanäle wie Facebook oder Skype. Weiters erleichtert es durch die Bereitstellung bereits vorgefertigter Hilfsklassen die Verwendung der Microsoft Cognitive Services.
Eine Übersicht über das Microsoft Bot Framework und dessen Schnittstellen ist in Abbildung 1 zu sehen.
Bei den Microsoft Cognitive Services sind vor allem der QnA Maker sowie die Language Understanding Intelligent Services (LUIS) für die Bot-Kommunikation sehr hilfreich.
Für die Erstellung eines neuen QnA Maker Services gibt es verschiedene Möglichkeiten. Die Knowledge Base kann erzeugt werden durch:
Mit der Knowledge-Base als Startpunkt können dann bei Bedarf Verbesserungen vorgenommen werden. Gibt ein Benutzer beispielsweise eine Frage ein, die nicht hinterlegt ist, werden die wahrscheinlichsten Alternativen zur Auswahl zurückgegeben. Wird eine dieser Alternativen vom Benutzer ausgewählt, erhält das System ein Feedback, welches zur Verbesserung beitragen kann. Ein Beispiel für diese Vorschläge ist in Abbildung 2 dargestellt.
Eine weitere Möglichkeit zur Verbesserung ist es, den Bot zu trainieren. Hierbei kann man die besten Antworten auswählen und auch alternative Phrasen zu einer bestimmten Frage hinzufügen. Ein Beispiel hierfür ist in Abbildung 3 dargestellt.
Weiters können alle bestehenden Konversationen abgefragt und die Fragen sortiert nach Häufigkeit trainiert werden.
Dieser Service analysiert die Bedeutung (Intent) und die dazugehörigen Objekte (Entities) von verschiedenen Aussagen. Abbildung 4 zeigt ein Beispiel, das die Bedeutung der Fragen (Intent) zu einer gewissen Person (Entity) behandelt.
Abbildung 5 zeigt, wie mit Hilfe des LUIS Service Portals Intents erzeugt werden können.
Mit Hilfe dieser Trainingsdaten wird im nächsten Schritt eine bestimmte Wahrscheinlichkeit zugewiesen (siehe Labeled Intent in Abbildung 6).
Das dabei erstellte Model kann danach für neue (auch unbekannte) Nachrichten die Wahrscheinlichkeiten berechnen.
Ist das Model fertig kann LUIS nun in der Bot-Implementierung verwendet werden. Als Einstiegspunkt bei jedem Bot dient der Messages Controller. Dieser ist in Abbildung 7 ersichtlich. Der Message Controller bekommt ein Activity Objekt übergeben. Ist das Activity Objekt vom Typ Message dann wird der LuisDialog aufgerufen. Andere Typen sind beispielsweise das Hinzufügen eines Chatteilnehmers oder das Beenden einer Konversation, auf welche wir hier nicht weiter eingehen.
Die Nachricht wird dann über die REST Schnittstelle analysiert und je nachdem, welcher Intent am wahrscheinlichsten ist, wird der dazugehörige Task ausgeführt und eine entsprechende Rückmeldung an den Benutzer gesendet (siehe Abbildung 8).
Auch bei LUIS kann das Model stetig verbessert werden, indem bisherige Zuweisungen bei Bedarf korrigiert werden.
Am Samstag, 22. April 2017 fand das weltweite Community-Event „Global Azure Bootcamp 2017“ statt. Auch in Österreich und zwar im Linzer Wissenstrum organisierte Rainer Stropek und sein Team dieses Ereignis. Es war ein schönes Erlebnis dort teilnehmen zu dürfen. Wir, d.h. Nahed Hatahet und ich durften gemeinsam das Thema „Microsoft Teams um smarte Bots erweitern“ vortragen.
Mein Teil des Vortrags war einerseits eine Live-Demo, die zeigt, wie man einen Bot grundlegend mit Visual Studio erstellt, und andererseits eine Demo, die zeigt, wie man einen Bot mit den kognitiven Diensten von Microsoft erweitert. Diese Demos möchte ich hier nochmals herzeigen und allen Interessierten damit den Anfang eigene Bots mit dem Microsoft Bot Framework zu erstellen, erleichtern. Da es sich um zwei Demos handelt, hab ich auch zwei Artikel vorbereitet, hier folgt nun Teil 1, der sich ganz einfach an dieses Thema annähert. 🙂
Cookie | Dauer | Beschreibung |
---|---|---|
_GRECAPTCHA | 6 Monate | Dieses Cookie wird von Google gesetzt. Zusätzlich zu bestimmten Standard-Google-Cookies setzt reCAPTCHA bei der Ausführung ein erforderliches Cookie (_GRECAPTCHA), um die Risikoanalyse durchzuführen. |
cli_user_preference | 1 Jahr | Diese Cookies werden vom GDPR Cookie Consent WordPress Plugin gesetzt. Das Cookie wird verwendet, um die Benutzereinwilligung für die Cookies zu speichern. |
cookielawinfo-checkbox-advertisement | 1 year | Dieses Cookie wird vom GDPR Cookie Consent Plugin gesetzt und wird verwendet, um die Zustimmung des Benutzers für die Cookies in der Kategorie "Werbung" aufzuzeichnen. |
cookielawinfo-checkbox-analytics | 1 Jahr | Diese Cookies werden vom GDPR Cookie Consent WordPress Plugin gesetzt. Das Cookie wird verwendet, um die Benutzereinwilligung für die Cookies unter der Kategorie "Analytics" zu speichern. |
cookielawinfo-checkbox-necessary | 1 Jahr | Dieses Cookie wird vom GDPR Cookie Consent Plugin gesetzt. Die Cookies werden verwendet, um die Einwilligung des Benutzers für die Cookies in der Kategorie "Notwendig" zu speichern. |
cookielawinfo-checkbox-others | 1 Jahr | Diese Cookies werden vom GDPR Cookie Consent WordPress Plugin gesetzt. Das Cookie wird verwendet, um die Benutzereinwilligung für die Cookies unter der Kategorie "Andere" zu speichern. |
CookieLawInfoConsent | 1 Jahr | Diese Cookies werden vom GDPR Cookie Consent WordPress Plugin gesetzt. Das Cookie wird verwendet, um die Benutzereinwilligung für die Cookies zu speichern. |
JSESSIONID | past | Das JSESSIONID-Cookie wird von New Relic verwendet, um eine Sitzungskennung zu speichern, damit New Relic die Anzahl der Sitzungen für eine Anwendung überwachen kann. |
viewed_cookie_policy | 1 Jahr | Das Cookie wird vom GDPR Cookie Consent Plugin gesetzt und wird verwendet, um zu speichern, ob der Benutzer der Verwendung von Cookies zugestimmt hat oder nicht. Es werden keine personenbezogenen Daten gespeichert. |
Cookie | Dauer | Beschreibung |
---|---|---|
_ga | 2 Jahr | Dieses Cookie wird von Google Analytics installiert. Das Cookie wird verwendet, um Besucher-, Sitzungs- und Kampagnendaten zu berechnen und die Nutzung der Website für den Analysebericht der Website zu verfolgen. Die Cookies speichern Informationen anonym und weisen eine zufällig generierte Nummer zu, um eindeutige Besucher zu identifizieren. |
_ga_G4YM34008H | 2 years | Identifikationscode der Website zur Verfolgung von Besuchen. |
_gat_gtag_UA_86474208_1 | 1 minute | Identifikationscode der Website zur Verfolgung von Besuchen. |
_gid | 1 Tag | Dieses Cookie wird von Google Analytics installiert. Das Cookie wird verwendet, um Informationen darüber zu speichern, wie Besucher eine Website nutzen, und hilft bei der Erstellung eines Analyseberichts über die Funktionsweise der Website. Die gesammelten Daten, einschließlich der Anzahl der Besucher, der Quelle, aus der sie stammen, und der Seiten, die in anonymer Form angezeigt werden. |
Cookie | Dauer | Beschreibung |
---|---|---|
CONSENT | 16 years 7 months 22 days 5 hours 28 minutes | No description |
YSC | session | Diese Cookies werden von Youtube gesetzt und dienen zum Verfolgen der Ansichten eingebetteter Videos. |
Cookie | Dauer | Beschreibung |
---|---|---|
IDE | 1 year 24 days | Wird von Google DoubleClick verwendet und speichert Informationen darüber, wie der Nutzer die Website und andere Werbung verwendet, bevor er die Website besucht. Dies wird verwendet, um Nutzern Anzeigen zu präsentieren, die für sie entsprechend dem Nutzerprofil relevant sind. |
test_cookie | 15 minutes | Dieses Cookie wird von doubleclick.net gesetzt. Mit dem Cookie soll festgestellt werden, ob der Browser des Benutzers Cookies unterstützt. |
VISITOR_INFO1_LIVE | 5 months 27 days | Dieser Cookie wird von Youtube gesetzt. Wird verwendet, um die Informationen der eingebetteten YouTube-Videos auf einer Website zu verfolgen. |