Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu...

10

Transcript of Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu...

Page 1: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

JanuarFebruar 12019

0 1

4 194156 608503 gt

Deutschland euro 850 Oumlsterreich euro 900 Schweiz sFr 1400

wwwentwickler-magazinde

INFOGRAFIK Continuous Integration mit Angular und Docker gtgt S 43

Knative bull Vue bull A

ngular bull K

ubernetes bull C

hatbo

ts bull IoT

bull Ag

ile bull Go

Entw

ickler Mag

azin 119

JavaScriptState Management mit Vuex

AnsibleAutomatisierte Multi-Tier Deployments

copy AvesunShutterstockcom

SecurityWie sicher sind die Mobilfunknetze

Internet of ThingsSprachgestuumltzte Unterhaltungen mit Chatbots

Kubernetes goes Serverless

wwwmobiletechconde

Das Konferenz- und Trainingsevent fuumlr Mobile Development

Tracks und Themen

Android Development iOS Development PWA mit

Angular

25 ndash 27 Maumlrz 2019Muumlnchen

Veranstalter

Weniger Theorie mehr Praxis Die Mobile-TechCon bietet erstmalig zwei Workshoptage und einen Konferenztag In ihren praxis-nahen halb- und ganztaumlgigen Workshops vermitteln die Trainer wertvolles Praxis-

Know-how zu mobiler Produktentwicklung Im Fokus des Konferenz- und Trainingsevents stehen iOS Android sowie Progressive Web Apps mit Angular mobile Backends und User Experience (UX)

BIS 20 DEZEMBER bis zu 200thinspeuro sparen Smartwatch for free

Praumlsentiert von Powered by

mobiletechcon

Knative

82 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

von Friederike Geissler

bdquoWillkommen in der Telefonwarteschleife der Pizza GmbH Interessieren Sie sich fuumlr eine Pizzabestellung sagen Sie sbquoPizzabestellunglsquo Falls Sie Ihre Bestellung aumln-dern moumlchten sagen Sie sbquoBestellunglsquoldquo Eine solche Dia-logfuumlhrung durch einen sogenannten Sprachbrowser ist der evolutionaumlre Vorgaumlnger eines Bots Bots (von engl robot) sind Computerprogramme die automatisiert sich wiederholende Aufgaben abarbeiten ohne auf eine In-teraktion mit einem menschlichen Benutzer angewiesen zu sein Wo Sprachbrowser ausschlieszliglich auf Telefon-gespraumlchauswertungen angewiesen sind koumlnnen Bots allerdings mehr ndash viel mehr

Bots verarbeiten und erkennen Sprache Bilder Datei-en und Daten Sie telefonieren schreiben E-Mails sowie SMS und tauschen Nachrichten in sozialen Netzwerken

aus Auszligerdem planen sie Termine nehmen Zahlungen und Feedback an Sie erinnern an bevorstehende Er-eignisse oder informieren uumlber Neuigkeiten aus abon-nierten Interessensgebieten Sie reagieren stets exibel auf die Stimmung des Benutzers und schaumltzen seine Intention ein Der Bot ist die Weiterentwicklung der klassischen Warteschleife So kann ein Bot via Skype Facebook Messenger Telefon oder andere Kanaumlle Be-stellungen oder Aumlhnliches aufnehmen Ein typischer Anwendungsfall Ein Kunde moumlchte eine Pizza bestel-len und schreibt dem Pizza-Bot die Nachricht bdquoHabe Hunger Jetztldquo Der Bot reagiert daraufhin mit einer Reihe von Fragen (z B bdquoWelchen Durchmesser soll die Pizza habenldquo) oder Vorschlaumlgen (etwa bdquoWie waumlre es mit unserer Tagespizzaldquo) und leitet zum Schluss einen Bezahlvorgang ein Ein Pizza-Bot kann potenziell den Kalender und den Aufenthaltsort des Benutzers pruumlfen

Sprachgestuumltzte Unterhaltungen mit Bots

Ein Pizza-Bot(e) fuumlr alle Faumllle

Vom Sprachbrowser zum Bot Heute koumlnnen Computer nicht mehr nur Telefongespraumlche auswerten sondern so einiges mehr in Sachen Kommunikation Was koumlnnen Bots heu-te leisten und wie entwickelt man einen eigenen Bot mit dem Microsoft Bot Framework

copy T

ijana

MS

hutt

erst

ock

com

83wwwentwickler-magazinde Entwickler Magazin 12019

ChatbotsInternet of

Things

um die Bestellung zu verizieren und den Bestellvor-gang zu vereinfachen Hierfuumlr ist maszliggeblich dass der Benutzer vorab der Nutzung seiner persoumlnlichen Infor-mationen zugestimmt hat sodass der Bot sie suchen und verarbeiten darf

Genauigkeit der Spracherkennung und AuthentizierungEin messbares Kriterium von erfolgreicher Spracherken-nung bei Bots ist die Praumlzision also das Verhaumlltnis von korrekt erkannten Aumluszligerungen zu falsch erkannten Ak-tuell liegt die Praumlzision weltweit fuumlhrender Anbieter bei 91-95 Prozent Beim chinesischen Suchanbieter Baidu sind 99 Prozent in Umgebungen mit geringen Hinter-grundstoumlrgeraumluschen angestrebt Andrew Ng Chefent-wickler von Baidu sagt dazu bdquoSobald die Praumlzision von Spracherkennung [hellip] 99 erreicht werden wir Sprach erkennung nicht mehr kaum sondern taumlglich ver-wendenldquo [1] Diese Praumlzision hat Nuance einer der ers-ten Anbieter von Diktiersoftware laut eigener Aussage mit seiner Dragon-Spracherkennung bereits erreicht [2]

Spracherkennungsdienste ltern die Stimme des Be-nutzers aus anderen Stimmen und Stoumlrgeraumluschen die das Mikrofon mit aufnimmt Sobald die Stimmdaten extrahiert sind werden sie analysiert Die Einmaligkeit von menschlichen Stimmmustern wird softwaretech-nisch teils in Authentizierungsprozessen genutzt Wie verschiedene Studien und Praxisbeispiele belegen ist Stimmerkennung allein jedoch nicht als Authentizie-rungsmethode geeignet da sie gegenuumlber Replay-Atta-cken und manipulierten Audioaufnahmen anfaumlllig ist [3] [4] Einen interessanten Loumlsungsansatz bieten Huan Feng Paul Scerri und Katia Sycara mit ihrer Software zur Auswertung biometrischer Daten an Diese bezieht naumlmlich tragbare Geraumlte zur Authentizierung ein Wenn der Benutzer eine Smartwatch traumlgt ist es so moumlg-lich mit Pulsmuster und Koumlrpervibrationsaufzeichnung sicherzugehen dass das was gesagt wird auch vom Be-nutzer stammt [5] und nicht z B von einem Lautspre-cher abgespielt wird

Vorteile fuumlr die BenutzerAn dem Pizzabeispiel ist gut ersichtlich welchen Mehr-wert Bots fuumlr ihre Benutzer liefern Im digitalen Zeitalter in dem mehr und mehr Menschen ununterbrochen on-line sind bietet ein Bot eine 247-Erreichbarkeit Anders als manche Kundenservicehotlines ist er kostenlos er-reichbar und es gibt keine langen Wartezeiten um etwa den naumlchsten freien Kundenberater zu sprechen Die Nutzung auf mobilen Endgeraumlten ist zudem optimal um Informationen standortabhaumlngig zu ltern Stellen wir uns vor dass der Kunde dem Bot auf die Frage bdquoWo bist duldquo eine GPS-Freigabe fuumlr die naumlchste Stunde schickt Egal wo der Kunde mit seinem GPS-faumlhigen Endgeraumlt dann in der naumlchsten Stunde hingeht der Pizzabote kann ihn geocachen um die Pizza auszuliefern

Ein weiterer Vorteil besteht darin dass multilinguale Benutzer potenziell die Option haben sich mit dem Bot

in der eigenen Muttersprache zu unterhalten So waumlre es fuumlr den Kunden moumlglich eine Pizza auf Spanisch zu ordern selbst wenn die Mitarbeiter des Pizzaunterneh-mens nur Englisch verstuumlnden Denn die meisten Bot Frameworks unterstuumltzen die Einbindung von Uumlberset-zungsdiensten wie Google Translate Die Uumlbersetzungs-qualitaumlt ist allerdings abhaumlngig von den verwendeten Sprachen Viel ausgepraumlgter als das europaumlische ist das angloamerikanische Bot-Angebot was darauf zuruumlck-zufuumlhren ist dass die Global Player auf diesem Gebiet uumlberwiegend aus den USA stammen Auch Benutzer mit motorischen oder visuellen Handicaps protieren von einem Bot mit Sprachunterstuumltzung und Hands-off-Prinzip Bots koumlnnen so programmiert sein dass die Benutzung einer Tastatur uumlberuumlssig ist Sprachassisten-ten wie Google Assistant Siri Cortana und Alexa sind nichts anderes als Bots die ihre Navigation einzig uumlber die Stimme auslegen

Vorteile fuumlr UnternehmenEinen gut programmierten und kontinuierlich gewar-teten Bot einzusetzen kann die Kundenservicehotline gaumlnzlich ersetzen und bietet daher personelle und nan-zielle Einsparpotenziale fuumlr Unternehmen Gut program-miert heiszligt in diesem Fall dass die Bots auf verschiedene Kanaumlle und die Einbindung externer Dienste angepasst sind Der Bot muss eine Anzahl von Musterkonversa-tionen die ein Kunde mit ihm fuumlhren wuumlrde kennen Zudem ist es wichtig ihm eine Trainingsphase zuzuge-stehen in der er mit echten Kundenanfragen konfron-tiert wird Wie die Fiducia GAD IT AG ein deutsches Dienstleistungsunternehmen aus dem Bereich Banking mit ihrem Chatbot-Prototyp nachwies ist besonders in oft auftretenden Kundenanliegen der Einsatz eines Chat-bots efzienter weil der Korrekturbedarf geringer aus-faumlllt [6] Auch die Studie von Steven Okamoto Kassem Fawaz und Kang Shin zeigt ein hohes Einsparpotenzial bei der Einfuumlhrung in den Geschaumlftsablauf von bis zu 46 Prozent Leistungssteigerung [7] Kritiker halten al-lerdings dagegen dass die beste Kundenberatung durch Personen stattndet die nicht in Mustern denken [8]

Die wachsende Zahl von Bot-Start-ups zeigt jedoch einen groszligen Bedarf an dieser Technologie in verschie-densten Branchen und Bereichen auf ndash mit unterschied-lichen Spezialisierungsgraden Andrew Mortensen Mitgruumlnder des Amy-Bots von xai meint hierzu Ziel sei es nicht halbversiert auf allen Themengebieten son-dern gut auf einem speziellen zu sein [9] Es gibt Start-ups die sich auf Investmentbankingberatung (Stichwort Fintech Start-ups) konzentrieren und solche die aus-schlieszliglich einzelne Aufgaben wie etwa die Organisation von Terminen loumlsen

Ein Beispiel aus der aktuellen Forschung2018 wurde von der innobis AG einer IT- und SAP-Beratung fuumlr Banken ein Prototyp im Rahmen einer wissenschaftlichen Abschlussarbeit realisiert und aus-gewertet um die Moumlglichkeiten dieser Technologie zu

84 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

erforschen [10] Der entstandene Bot loumlst fuumlr das Un-ternehmen die Aufgabe Daten eines Benutzers fuumlr ein Foumlrdermittelformular des Europaumlischen Sozialfonds abzufragen Der Prototyp ist in C programmiert und basiert auf dem Microsoft Bot Framework Dieses er-moumlglicht ndash wie viele andere Bot Frameworks ndash ein kos-tenloses Hosting (in diesem Fall in Azure) Folgende Anforderungen galten fuumlr den Prototyp Spracherken-nung nach dem Hands-off-Prinzip Multilingualitaumlt plattformuumlbergreifende Programmierung die Einbin-dung eines AI-Service sowie die Moumlglichkeit Dateien z B Quittungen hochzuladen

Nach einer ersten Pruumlfung des Vorhabens zeigte sich einerseits dass die Anforderungen realisierbar sind Im Usability-Test wurde jedoch andererseits auch deut-lich dass Benutzer zoumlgern einem Bot persoumlnliche Da-ten mitzuteilen Ein weiteres Problem war die geplante Fusion des Bots in eine sogenannte Cortana-Faumlhigkeit Cortana-Faumlhigkeiten sind vergleichbar mit Erweiterun-gen von Cortana durch Drittanbieter So gibt es in den USA etwa die Cortana-Faumlhigkeit bdquoDominorsquos Pizzaldquo die es einem Cortana-Benutzer ermoumlglicht uumlber den Dialog mit Cortana Pizza bei der Firma Dominorsquos zu bestellen Das Problem mit der Integration des Bots als Cortana-Faumlhigkeit ist dass sie fuumlr Geraumlte mit deutschen Sprach-einstellungen noch nicht freigegeben sind

Fuumlr den Prototyp wurde der Microsoft AI Service LUIS (Language Understanding Intelligence Service) eingesetzt LUIS ist uumlber ein API vollautomatisch nutz-bar Wie viele andere auf Entitaumlten und Intentionen ba-sierende Web Services auf dem Gebiet AI scheitert er allerdings bei unbekannten Aumluszligerungen in der Analy-se Ein groszliges Potenzial bietet jedoch die Ansammlung von Kundenanliegen die ein Bot auswertet Wichtig ist dabei die fortwaumlhrende Kontrolle und Wartung durch den Bot-Entwickler weil ansonsten gegebenenfalls fal-sche Zusammenhaumlnge erlernt werden Dies zeigte sich in Googles Prototyp bdquoTayldquo dessen Benutzern es gelang dem Bot rassistische und beleidigende Aumluszligerungen an-zutrainieren [11]

Die Erfahrungen aus der Praxis zeigen dass die Ein-satzmoumlglichkeiten von Bots fuumlr Unternehmen durchaus lukrativ sein koumlnnen selbst wenn die erhobenen Daten nicht direkt von den Benutzern kommen

Das Leistungsspektrum eines BotsDem Einsatzgebiet von Bots sind quasi keine Grenzen gesetzt Einige Bot Frameworks wie SILVIA unter-stuumltzen Avatare um dem Benutzer ein moumlglichst rea-listisches Kommunikationsgefuumlhl zu vermitteln und nonverbale Gesten wie ein Laumlcheln Stirnrunzeln oder Schulterzucken zum Ausdruck zu bringen Das ist be-sonders im Zusammenhang mit emotionaler Intelligenz sinnvoll Bei der Auswertung von emotionaler Intelli-genz wird erhoben wie aufnahmefaumlhig ein Benutzer in einer bestimmten Gefuumlhlssituation ist Der Bot reagiert situationsabhaumlngig und unterschiedlich auf Stress Wut oder Humor

Ein oft angefuumlhrtes Beispiel fuumlr das Leistungsspekt-rum von Bots ist die Hotel-Flug-Buchung In diesem Fall werden Reservierungs- und Buchungs-E-Mails ausgewertet und multimediale Inhalte als Information zu Hotels in der Naumlhe des Benutzers eingeblendet [12] Proaktive Nachrichten sind hier eine Moumlglichkeit den Bot selbst die Konversation auf ein bestimmtes Ereignis hin eroumlffnen zu lassen z B bdquoLieber Benutzer an deinem aktuellen Standort hat gerade ein Wellnesshotel eroumlff-net Soll ich dir ein Zimmer reservierenldquo

Ein Blick in die Programmierung Da Bots untereinander kompatibel programmierbar sind und je nach Anbieter Schnittstellen zum Sprachas-sistenten des Anbieters haben ergeben sich Potenziale in der Steuerung von externer Hardware Dies zeigt bei-spielsweise das Projekt bdquoInternet of Stranger Thingsldquo von Pete Brown bei dem eine Lichterkette zu Demonst-rationszwecken uumlber einen Bot gesteuert wird [13] Die Moumlglichkeiten der Bot-Einbindung in stimmgesteuerte Hardware schlieszligen auch intelligente Beleuchtungs- und Hausautomatisierungssysteme wie Philips Hue bis hin zu personalisierbaren Robotern wie Jibo [14] ein es geht also nicht nur um die Anbindung von Stand-alone-Lautsprechern wie Alexa Echo

Vorbereitungen fuumlr die Bot-EntwicklungUm einen Bot zu entwickeln ist der leichteste Weg die Registrierung bei einem Bot-Framework-Anbieter Die-ser stellt einen (oder mehrere) Server der die Benutzer-anfragen und Bot-Antworten uumlber Internetverbindung verarbeitet Dafuumlr ist zunaumlchst ein Benutzeraccount bei einem der Anbieter zu eroumlffnen Soll zum Beispiel fuumlr das Microsoft Bot Framework entwickelt werden muss ein Microsoft-Account erstellt werden mit dem dann ein Microsoft-Azure-Account zu erstellen ist Oft wird bei der Registrierung eine guumlltige Zahlungsinformation verlangt z B eine Kreditkartennummer Anschlieszligend ist zumeist weitere Software zu installieren um den Bot lokal debug-gen zu koumlnnen Dazu gehoumlrt eine Entwicklungsumgebung die vom Framework verlangt wird (z B Visual Studio oder ein Extratool wie der Bot-Framework-Emulator ndash beide sind fuumlr die Nutzung des Microsoft Bot Frameworks noumltig) Kenntnisse von Tunneling-Software wie ngrok koumlnnen sich ebenfalls als nuumltzlich erweisen falls der Bot hinter einem Unternehmens-Proxy laufen soll

Sind diese Schritte abgeschlossen sind die Grund-zutaten fuumlr einen (Pizza-)Bot vorhanden Es ist jedoch moumlglich weitere Frameworks einzubinden etwa ein AI-Framework damit der Bot anhand der Konversation intelligent reagiert In Bezug auf den Programmierauf-wand ist der efzienteste Weg Frameworks des gleichen Anbieters zu nutzen Daneben besteht noch die Moumlg-lichkeit Drittanbieterdienste uumlber eine programmtech-nische Schnittstelle einzubinden Fuumlr jedes Framework das zusaumltzlich angeboten werden soll ist eine Registrie-rung erforderlich und gegebenenfalls eine weitere fuumlr die programmatische Schnittstelle

85wwwentwickler-magazinde Entwickler Magazin 12019

ChatbotsInternet of

Things

Oft ist es moumlglich den Bot auf verschiedenen soge-nannten Kanaumllen zu vertreiben Ein Sprachassistent waumlre ein solcher Kanal aber auch Kommunikations-netzwerke wie Skype Twitter Slack Microsoft Ofce Telegram oder Facebook Messenger Ist eine Veroumlf-fentlichung des Bots auf einem oder mehreren Kanaumllen (welche verfuumlgbar sind ist anbieterabhaumlngig) geplant dann ist fuumlr das Entwickeln und Testen hier ein Account noumltig

Drei Anwendungsoptionen des Microsoft Bot FrameworksIm Folgenden werden drei Anwendungsoptionen des Microsoft Bot Frameworks vorgestellt die beim bereits beschriebenen Prototyp fuumlr die innobis Verwendung fanden In allen Faumlllen geht es darum dem Bot das Di-alogmuster nach dem er arbeiten soll zur Verfuumlgung zu stellen

bull FormFlow ein JSON-Format fuumlr einen geregelten und vordenierten Ablauf (das sich vor allem eignet um formularaumlhnliche Daten abzufragen)

bull DirectLine eine programmatische Schnittstelle zur Einbindung von Drittanbieterdiensten (z B eines Sprachassistenten) und

bull LUIS-Service ein AI-Framework zur Einbindung des Language Understanding Intelligence Service von Mi-crosoft

Um einem Bot den Dialog per FormFlow vorzuge-ben muss eine JSON-Datei mit vordenierten Fra-gen und Antworten erstellt werden die spaumlter in den Bot geladen wird Bei FormFlow gibt es verschiedene Implementierungsmoumlglichkeiten Es ist moumlglich eine

Datenhaltungsklasse mit Attributen fuumlr jedes vorge-schriebene Eingabefeld zu implementieren oder auch diese aus einer JSON-Datei generieren zu lassen die ein bestimmtes Muster erfuumlllt (siehe Listing 1 mit ei-nem Auszug aus der FormFlow-Datei die im innobis-Prototyp Verwendung fand) In den Properties sind die abzufragenden Werte deniert wobei die Frage mithilfe eines amp-Platzhalters fuumlr den Property-Namen ergaumlnzt ist Erforderliche Eingaben sind zu Beginn zu kennzeichnen Eingebettete regulaumlre Ausdruumlcke bieten auszligerdem die Moumlglichkeit die Benutzereingabe zu pruumlfen Daruumlber hi-naus ist es moumlglich Validierungsfunktionen in JSON zu benennen Der Aufruf des JSON-Skripts kann uumlber Da-teilesezugriffe in C wie in Abbildung 1 gezeigt erfolgen

Es ist hierbei moumlglich Validierungs-Regexe zu de-nieren numerische Intervalle fuumlr die Validierung mitzureichen oder die Namen von Validierungsme-thoden mitzugeben Zudem ist es notwendig je nach

Abb 1 In C aufgerufenes JSON-Skript (Screenshot)

Listing 1 Codeauszug aus der JSON-Datei die den FormFlow-Dialog generiert

References [ LuisBotdll ] Imports [ LuisBotResource ] type object Templates NotUnderstood Patterns [ I didnt understand 0 Try again I dont know about 0 ] properties

Vorname Before [ Message [ Welcome to the ESF_2 FormBot ]

] Prompt Patterns [ What is your given name ]

type [ string null ]

Nachname

Prompt Patterns [ And your surname ]

type [ string

null ]

Hausnummer

Prompt Patterns [ What is your street number ]

type [ string null ]

hellip

86 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

verwendeter Sprache des Benutzers unterschiedliche JSON-Dialoge anzulegen (oder diese mit einem Uumlber-setzungsframework uumlbersetzen zu lassen)

Abhaumlngig davon welchen Kanal der Benutzer waumlhlt um mit dem Bot in Kontakt zu treten bieten sich zusaumltz-liche spezielle Eigenschaften des Kanals Mit einer Text-zu-Sprache-Generierung die ein integraler Bestandteil von sprachfaumlhigen Bots ist gibt es die Option einen Te-lefondialog in der favorisierten Sprache des Benutzers zu generieren Abbildung 2 zeigt ein Beispiel eines Skype-Dialogs zwischen Bot und Benutzer

Eine DirectLine-Verbindung wird ndash oberaumlch-lich betrachtet ndash als WebSocket-Verbindung oder als HTTP-GET-Anfrage des Clients mittels eines Hand-shake-Verfahrens aufgebaut Um sie zu nutzen ist ein DirectLine-Schluumlssel fuumlr den Bot zu generieren Fuumlr ver-tiefende Informationen eignet sich die Microsoft-Doku-mentation [15] oder Robert Osbornes Blog in dem er

beschreibt wie einer Alexa-Faumlhigkeit eine DirectLine-Schnittstelle hinzufuumlgt wird [16]

DirectLine kann im Microsoft Bot Framework genutzt werden um einen LUIS Service anzubinden Das ist ein AI-Framework Der Wunsch AI-Frameworks einbinden zu wollen wird anhand von Benutzeranfragen wie bdquoIch moumlchte die Unternehmensangaben im ESF_2-Formular ausfuumlllenldquo deutlich Es gibt hierbei zahlreiche Moumlglich-keiten wie ein Benutzer diese Anfrage (synonym) for-mulieren koumlnnte aber jedes Mal ist es die Aufgabe des Bots anhand der Worte zu erkennen dass er mit einem bdquoWillkommenldquo antworten soll

Der LUIS Service ermoumlglicht es dem Bot auf moumlg-lichst natuumlrliche Art und Weise mit Menschen zu kom-munizieren Er wird von Microsoft als Cloud-Loumlsung auf einer AI-Plattform angeboten Der Bot analysiert die gesprochene Sprache und leitet die Anfrage dann an LUIS weiter LUIS analysiert die Frage und ermittelt die Intention Um LUIS Services einzubinden muss die Intention des Benutzers auf der AI-Plattform bekannt sein Daruumlber hinaus helfen zusaumltzliche Parameter die die Intention erlaumlutern Die Intention eines Benutzers waumlre zum Beispiel eine Pizza zu bestellen Ein dazuge-houmlriger Parameter waumlre dann etwa die Groumlszlige der Pizza Die Schwierigkeit liegt in diesem Fall darin dass Men-schen ihren Wunsch nach einer Pizza in einer bestimm-ten Groumlszlige unterschiedlich ausdruumlcken Die Aufgabe von LUIS ist es daher die Intention und moumlglichst alle not-wendigen Parameter zu erfassen und zuruumlckzuliefern Microsoft arbeitet daran auch Stimmungen im gespro-chenen Text zu erkennen und diese dem Bot ebenfalls zu vermitteln

LUIS berechnet wie wahrscheinlich es ist dass eine bestimmte Aumluszligerung einer bestimmten Intention ent-spricht So wird bei der Benutzeranfrage bdquoBitte hilf mirldquo bestimmt dass es sich mit einer Wahrscheinlich-keit von 99 Prozent um das Beduumlrfnis handelt den Hil-fetext zu sehen (UtilitiesHelp) Jedes Mal wenn eine Anfrage bei LUIS eintrifft werden alle vom Entwick-ler denierten Intentionen danach bewertet wie wahr-scheinlich sie sind Umgekehrt wird ebenfalls berechnet dass zur Aumluszligerung bdquoBitte hilf mirldquo die Intention bdquoGruumlszlige michldquo (Greeting) nur zu 001 Prozent passend ist Waumlre allerdings bdquoGruumlszlige michldquo faumllschlicherweise mit 99 Pro-zent bewertet worden waumlre eine Korrektur erforderlich Diese erfolgt entweder manuell uumlber die LUIS-Website oder uumlber einen programmatischen LUIS-API-Aufruf

In der Entwicklungsumgebung legt der Entwickler dann nur noch fest welche Aktion auf welche Intention folgt Wurde die Intention bdquoGruumlszlige michldquo (Abb 3 un-ter Greeting) erkannt wird ein Gruszlig als Post uumlber die DirectLine-Verbindung geschickt Der Bot-Framework-Server benachrichtigt daraufhin den oder die Teilneh-mer der Konversation uumlber die neue Nachricht Der Kontext enthaumllt dabei die Metadaten zur Konversation (z B wer die Dialogpartner sind)

Abbildung 4 zeigt die Situation im Bot wenn einer Aumluszligerung keine Intention zugeordnet werden konnte

Abb 3 Kor-rekturmoumlg-lichkeiten

im LUISai-Webportal

(Screen-shot)

Abb 2 Skype-Dialog zwischen Bot und Benutzer (Screenshot)

18 ndash 20 Februar 2019 | Muumlnchen2 ndash 4 April | Berlin

wwwdevops-trainingde

Das eigentlich junge Thema Docker wird mehr und mehr zu einem Bestandteil der Infrastruktur von kleinen Start-ups bis zu groszligen Firmen Sobald von DevOps oder Microservices gesprochen wird wird oft im gleichen Atemzug von Docker gesprochen Aber was hat es mit diesem Docker auf sich Dem vielleicht entscheidendem Baustein die IT zu revolutionieren Im neuen DevOps Docker Camp mit Erkan Yanar erhalten Sie von einem der bekanntesten deutschsprachigen Docker-Experten einen praktischen Einstieg in Docker Sie lernen die Kon-zepte von Docker und die darauf aufbauenden Infra-

strukturen umfassend kennen Schritt fuumlr Schritt bauen Sie eine eigene Infrastruktur fuumlr und mit Docker auf Es werden eigene Applikationen in Docker Images verpackt und eigene Microservices ausgerollt die automatisiert geloggt und gemonitort werden Am Ende des intensi-ven Docker-Trainings werden Sie einschaumltzen koumlnnen ob und wie Docker fuumlr Sie selbst relevant und nutzbrin-gend einzusetzen ist Der Schwerpunkt liegt im klassi-schen Aufbau von Docker auf Linux Die Verwendung von Docker auf und mit Microsoft wird aber erlaumlutert und kurz vorgefuumlhrt

Veranstalter

Praumlsentiert von

Docker_Camp DockerCamp DevOpsDockerCamp

Das Docker-Training mit Erkan Yanar

Jetzt Teilnahme sichern

88 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Die Nachricht wird an den LUIS-Dialog verwiesen und dieser kommuniziert im Hintergrund mit dem LUIS API Dieses meldet zuruumlck dass bdquoNoneldquo der wahr-scheinlichste Beweggrund der Anfrage war Daraufhin reagiert der Bot mit durch den Entwickler festgelegten Maszlignahmen In diesem Beispiel waumlhlt der Bot aus ei-ner Liste mit moumlglichen Variationen aus und fordert zur erneuten Eingabe auf Die Liste selektiert zufaumlllig den Wert bdquoDiese Antwort verstehe ich nichtldquo (Listing 2) Die moumlglichen Antworten sind programmatisch oder uumlber den JSON-Aufbau zu denieren

Mit der Einbindung von LUIS wird ein erweitertes Navigationskonzept geschaffen das die FormFlow-Na-vigationskommandos ergaumlnzt Es eignet sich besonders

fuumlr Bereiche in denen nicht klar ist welches Anliegen der Benutzer hat also etwa in einer Hilferubrik oder auf einer Kontaktseite Sinnvoll ist die Nutzung auch bei FAQs wobei die meisten Anbieter fuumlr diesen Be-reich auch sogenannte QA-Frameworks (Question-and-Answer-Frameworks) anbieten

Sicherheitsbedenken technische Schwierigkeiten und gesellschaftliche AkzeptanzEine der groumlszligten Herausforderungen im Bereich Bot-Programmierung ist das Thema Sicherheit Da saumlmt-liche Kommunikation uumlber das Internet laumluft ndash sofern keine Anbieter wie Snipsai im Einsatz sind [17] die mit lokal analysierender AI arbeiten ndash sind die ausge-tauschten Informationen exponiert Das wird durch eine Verschluumlsselung oder andere meist kostenpichtige Si-cherheitsmechanismen der Anbieter kompensiert Ver-antwortlich fuumlr die Funktionalitaumlt Verfuumlgbarkeit und Sicherheit sind laut den AGB verschiedenster Anbieter die Entwickler bzw Produkteigner da die Anbieter le-diglich eine Betaversion zur Verfuumlgung stellen Das be-deutet dass fuumlr die unternehmerische Nutzung in der EU ein Service Level Agreement notwendig ist was auch aus datenschutzrechtlicher Sicht empfehlenswert ist

Wenn der Bot wie im innobis-Projekt in einem Sprachassistenten integriert ist ergeben sich zudem technische Abhaumlngigkeiten vom Anbieter Es ist fuumlr den Bot-Entwickler nicht moumlglich spezielle Verhaltenswei-sen des benutzten Sprachassistenten zu beeinussen (so schloss sich etwa die Anwendung wenn der Benutzer auszligerhalb des Cortana Canvas klickte) Probleme gab es auch mit zu schnellen Ein- und Ausblendungen der

Abb 4 LUIS-Dialog wenn einer Aumluszligerung keine Intention zugeordnet werden konn-te (Screenshot)

Listing 2 Codeauszug aus den Nachbearbeitungsroutinen zur erkannten LUIS-Intention

[Serializable] public class BasicLuisDialog LuisDialogltobjectgt

ltsummarygt Der Konstruktor verwendet Infos aus der webcong um sich gegenuumlber dem LUIS-Sprachmodell-API zu authentizieren ltsummarygt public BasicLuisDialog() base(new LuisService(new LuisModelAttribute(CongurationManagerAppSettings[LuisAppId] CongurationManagerAppSettings[LuisAPIKey])))

ltsummarygt Die ldquokeine-Intentionrdquo-Intention ist die Intention die die AI erkennt wenn sie sich nicht sicher ist welche Intention gemeint ist ltsummarygt ltreturnsgtltreturnsgt [LuisIntent()]

[LuisIntent(None)] public async Task NoneIntent(IDialogContext context LuisResult result) string luisno = Resource1LuisNonesorry Didnrsquot understandhellip await contextPostAsync(Resource1LuisNone+$resultQuery) contextWait(MessageReceived)

ltsummarygt Diese Intention ist beispielhaft fuumlr eine selbstimplementierte Intention Damit sie auf diese Kundenanfrage antwortet muss die Aumluszligerung des Kunden von der AI als aumlhnlich zu einer bekannten Intention im Web Service als am houmlchsten wahrscheinlich erkannt werden ltsummarygt ltreturnsgtltreturnsgt [LuisIntent(Greeting)] public async Task GreetingIntent(IDialogContext context LuisResult result) await contextPostAsync(ResourceResource1regionalGreeting) contextWait(MessageReceived)

ARCHITEKTURWELTEN REAL UND VIRTUELL

wwwentwickler-pressde baukunst-fuer-softwarearchitekten

Jan Peuker

Baukunst fuumlr Softwarearchitekten

Was Software mit Architektur zu tun hat

288 SeitenISBN 978-3-86802-118-9

Preis 2490 euro (D)2560 euro (A)

ChatbotsInternet of

Things

Fragen und Timeouts Daruumlber hinaus war es nicht moumlglich der Cortana-Stimmerkennung Sonderzeichen wie oder π zu diktieren Die Spracherkennung hat generell Schwierigkeiten kurze und sprachlich gleich oder aumlhnlich klingende Antworten (Homophone) des FormFlow zu unterscheiden Es war zum Beispiel nicht moumlglich den Invokationsnamen bdquoLuisBotldquo zu diktie-ren Dies wurde unterschiedlich als bdquoluis potldquo oder bdquole-wis botldquo fehlinterpretiert Dieses Problem duumlrfte auch andere (deutsche) Produkt- Firmen- und Eigennamen betreffen Als Problemloumlsung konnten kanalspezische Angaben des Benutzers herangezogen werden Es erwies sich als moumlglich nach einer expliziten Zustimmung des Benutzers die Kontakt- Orts- und Benutzerdaten auszu-werten Seltene Vornamen oder Familiennamen koumlnnen auf diese Weise uumlbernommen werden ohne dass der Be-nutzer sie diktieren muss

Letztlich ist auch die Nutzerakzeptanz fuumlr Bots in Deutschland eine Herausforderung fuumlr Unternehmen Selbst in der Generation die als bdquoDigital Nativesldquo gilt gibt es Benutzer die bislang wenig mit Sprachunterstuumlt-zung gearbeitet haben bzw Probleme haben erlernte Konzepte wie etwa die Diktierfunktion in WhatsApp auf andere Produkte zu uumlbertragen Laut dem Online-portal fuumlr Statistik Statista GmbH haben 2016 nur etwa 25 Millionen von rund 80 Millionen Einwohnern in Deutschland angegeben bereits einen Sprachassistenten

genutzt zu haben [18] Es bleibt also eine Herausfor-derung mit dem Wachstum in dieser Branche Schritt zu halten den das Marktforschungsinstitut Gartner Inc fuumlr dialogunterstuumltzende Assistenten [19] genauso vor-hersagt wie den Zwei-Billionen-Umsatz fuumlr intelligente Lautsprecher fuumlr 2020 [20]

Anbieter und ProdukteEinen guten Uumlberblick uumlber die Produkte und Anbieter auf dem Markt bietet die Website von Predictive Analy-sis [21] Dort werden neben den multinationalen Kon-zernen und ihren Produkten auch kleinere Unternehmen und ihre Loumlsungen vorgestellt und ausgewertet Generell laumlsst sich hierbei sagen dass Google mit seinem Google Assistant uumlber die meisten Nutzer weltweit verfuumlgt Auch in der Praumlzision der Spracherkennung ist Google weiter vorangeschritten als beispielsweise die Microsoft- oder Amazon-Produkte Apple dagegen liegt in Bezug auf die Praumlzision zwar hinter Google aber noch vor Mi-crosoft und Amazon Wie die Slideshow von Konstantin Savenkov Intento Inc bdquoAspect Natural Lan guage Un-derstandingldquo zeigt [22] ist auch IBM mit seiner Wat-son ai- Plattform eine nicht zu unterschaumltzende Groumlszlige was Performanz ab einer gewissen Datensatzmenge angeht Die Untersuchung die Savenkov dazu durch-gefuumlhrt hat zeigt die Staumlrken und Schwaumlchen der fuumlnf groumlszligten Bot-Anbieter auf

Anzeige

90 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Es gibt neben den kommerziellen Anbietern im Uumlbri-gen auch zwei Open-Source-Projekte Lucida [23] und Athena [24] die sich mit kuumlnstlicher Intelligenz und sprach- bzw bildverarbeitenden dialoggestuumltzten Syste-men beschaumlftigen Lucida hat allerdings recht einschraumln-kende Systemvoraussetzungen weil es nur auf zwei bestimmten Ubuntu-Versionen installierbar ist Dieses Problem kann in VirtualBox umgangen werden sofern ein anderes Betriebssystem auf 64-Bit-Basis verfuumlgbar ist Lucida erfordert einen Arbeitsspeicher von mehr als 6 GB RAM Athena zielt darauf die Ergebnisse von Siri Alexa und Co zu erreichen und zu erweitern Es ist modular aufgebaut und bietet momentan Module fuumlr Musikwiedergabe Social Media (Twitter) und Hausau-tomation Athena ist in Python programmiert

FazitSprachgestuumltzte Unterhaltungen mit Bots weisen einen vielversprechenden Weg Strukturen im Unternehmen efzienter und effektiver zu machen Zudem bieten sie die Moumlglichkeit bisher nicht erreichte Benutzergruppen zu erschlieszligen Die datenschutzrechtlichen und sicher-heitskritischen Bedingungen koumlnnen durch Verschluumls-selungstechniken neue Authentizierungstechniken und Service Level Agreements geloumlst werden Nicht nur Fremdanbieterplattformen sondern auch eigene Systeme sind dank vorhandener Open-Source-Projek-te wie Athena nutzbar Dies lohnt sich weil Bots und der Handel mit Bot-faumlhigen Geraumlten eine zunehmen-de Verbreitung erfahren sodass es sogar denkbar ist dass Bot2Bot-Konversationen regulaumlr stattnden (auch Multi-Agent-Systeme genannt) Ein klassisches Beispiel hierfuumlr ist die Organisation von Terminen und z B die Bitte an einen Bot bdquoBitte Cortana unterhalte dich mal mit Siri von meinem Mann und mit Google Assistant von meiner Schwester und pruumlfe wann wir Zeit haben Pizza essen zu gehenldquo

Friederike Geissler Junior Consultant Development amp Integration Services bei der innobis AG hat im Unternehmen ihre Abschluss-arbeit zum Thema bdquoSprachassistenten in mobilen Bankanwendun-genldquo geschrieben Hierbei sind zwei Prototypen eine App und ein Bot entstanden die einen Benutzer durch einen Sprachassisten-

ten beim Ausfuumlllen eines Onlineformulars unterstuumltzen

[2] Nuance bdquoControl your computer voice with speed and accuracyldquo httpswwwnuancecomdragonhtmlstandardpage-mainpar_backgroundimage_copy

[3] Carlini N Wagner D bdquoAudio adversarial examples Targeted Attacks on Speech-to-Textldquo University of California 2018 httpsarxivorgpdf180101944pdf

[4] Song L Mittal P bdquoInaudible Voice Commandsldquo Princeton University 2017 httpsarxivorgpdf170807238pdf

[5] Feng H Fawaz K Shin K bdquoContinuous Authentication for Voice Assistants Computer Science ndash Cryptography and Securityldquo httpsarxivorgabs170104507

[6] bdquoBots fuumlr die Bank Die Zukunft der Kommunikationldquo httpscustomersmicrosoftcomen-usstoryducia-gadit-cognitive-services-cortana-azure-powerbi-banking-germany

[7] Okamoto S Scerri P Sycara K bdquoToward an understanding of the impact of software personal assistants on human organizationsldquo httpdxdoiorg10114511606331160745

[8] Haslam R bdquoThe bots are coming ndash 5 essential things ntech rms need to knowldquo httpsbanknxtcom56496bots-5-essential-ntech

[9] Lunden I bdquoRise of the bots Techcrunchldquo httpstechcrunchcom20160407rise-of-the-bots-x-ai-raises-23m-more-for-amy-a-bot-that-arranges-appointmentsguccounter=1

[10] LuisBot Innobis AG httpsgithubcomfr6087Hoermirzu

[11] Vincent J bdquoTwitter taught Microsoft AIrsquos Chatbot to be a racist asshole in less than a dayldquo httpswwwthevergecom201632411297050tay-microsoft-chatbot-racist

[12] Microsoft Botbuilder Sample Projects httpsgithubcomMicrosoftBotBuilder-Samples

[13] Brown P bdquoInternet of Stranger Thingsldquo httpsblogswindowscombuildingapps20161031the-internet-of-stranger-things-wall-part-1-introduction-and-remote-wiring

[14] Jibo httpswwwjibocom

[15] Key concepts of DirectLine API 30 Microsoft Botframework documentation httpsdocsmicrosoftcomen-usazurebot-servicerest-apibot-framework-rest-direct-line-3-0-conceptsview=azure-bot-service-30

[16] Osborne R bdquoConnecting Alexa to a Botframework Chatbotldquo httpswwwrobinosbornecouk20161219connecting-alexa-to-a-botframework-chatbot

[17] Snips Platform Documentation httpsnipsai

[18] Digital Assistants Statista dossier httpsdestatistacomstatistikdatenstudie620225umfragenutzung-von-sprachassistenten-in-deutschland

[19] Love J bdquoGartnerrsquos top 10 predictions for 2016 and the lsquopost-apprsquo eraldquo httpswwwitworldcanadacomarticlegartner-top-ten-predictions-for-2016-and-post-app-era377594

[20] bdquoGartner Says Worldwide Spending on VPA-Enabled Wireless Speakers Will Top $2 Billion by 2020ldquo httpswwwgartnercomnewsroomid3464317

[21] Top 22 intelligent personal assistants or automated personal assistants PredictiveAnalysis httpswwwpredictiveanalyticstodaycomtop-intelligent-personal-assistants-automated-personal-assistantscontent-anchor

[22] Savenkov K bdquoNLU Intent Detectionldquo Intento 2017 httpswwwslidesharenetKonstantinSavenkovnlu-intent-detection-benchmark-by-intento-august-2017

[23] Lucida httpsgithubcomclaritylablucida

[24] Athena httpsgithubcomrcbyronhey-athena-client

Mit Lucida und Athena gibt es zwei Open-Source-Projekte die sich mit

kuumlnstlicher Intelligenz beschaumlftigen

Links amp Literatur

[1] Ng Andrew httpstwittercomAndrewYNgstatus809579698883727360

Trainings fuumlr Softwarearchitekten mit iSAQB-Zerti zierung

wwwsoftware-architecture-campde

Das Camp bietet Ihnen eine fundierte und pragmatische Einfuumlhrung in Software-architektur mit hohem Uumlbungsanteil

Die verschiedenen Module des Advanced Levels vertiefen Ihre Kenntnisse und Faumlhig-keiten in den Bereichen Technik Methodik und Kommunikation

Praumlsentiert von in Kooperation mit iSAQBreg

Veranstalter

Jet983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555

983555983555si983579983579983555983555983555983555983579983555983555983555983579983579983579983579te983579983579983579983555

Mit Zerti zierung zum

Mit Zerti zierung zum

bdquoCerti ed Professional for Software Architecture ndash Foundation Level (CPSA-F)ldquo

bdquoCerti ed Professional for Software Architecture ndash Advanced Level (CPSA-A)ldquo

Mit Zerti zierung zum bdquoCerti ed Professional for Software Architectureldquo iSAQBreg

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde

Page 2: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

82 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

von Friederike Geissler

bdquoWillkommen in der Telefonwarteschleife der Pizza GmbH Interessieren Sie sich fuumlr eine Pizzabestellung sagen Sie sbquoPizzabestellunglsquo Falls Sie Ihre Bestellung aumln-dern moumlchten sagen Sie sbquoBestellunglsquoldquo Eine solche Dia-logfuumlhrung durch einen sogenannten Sprachbrowser ist der evolutionaumlre Vorgaumlnger eines Bots Bots (von engl robot) sind Computerprogramme die automatisiert sich wiederholende Aufgaben abarbeiten ohne auf eine In-teraktion mit einem menschlichen Benutzer angewiesen zu sein Wo Sprachbrowser ausschlieszliglich auf Telefon-gespraumlchauswertungen angewiesen sind koumlnnen Bots allerdings mehr ndash viel mehr

Bots verarbeiten und erkennen Sprache Bilder Datei-en und Daten Sie telefonieren schreiben E-Mails sowie SMS und tauschen Nachrichten in sozialen Netzwerken

aus Auszligerdem planen sie Termine nehmen Zahlungen und Feedback an Sie erinnern an bevorstehende Er-eignisse oder informieren uumlber Neuigkeiten aus abon-nierten Interessensgebieten Sie reagieren stets exibel auf die Stimmung des Benutzers und schaumltzen seine Intention ein Der Bot ist die Weiterentwicklung der klassischen Warteschleife So kann ein Bot via Skype Facebook Messenger Telefon oder andere Kanaumlle Be-stellungen oder Aumlhnliches aufnehmen Ein typischer Anwendungsfall Ein Kunde moumlchte eine Pizza bestel-len und schreibt dem Pizza-Bot die Nachricht bdquoHabe Hunger Jetztldquo Der Bot reagiert daraufhin mit einer Reihe von Fragen (z B bdquoWelchen Durchmesser soll die Pizza habenldquo) oder Vorschlaumlgen (etwa bdquoWie waumlre es mit unserer Tagespizzaldquo) und leitet zum Schluss einen Bezahlvorgang ein Ein Pizza-Bot kann potenziell den Kalender und den Aufenthaltsort des Benutzers pruumlfen

Sprachgestuumltzte Unterhaltungen mit Bots

Ein Pizza-Bot(e) fuumlr alle Faumllle

Vom Sprachbrowser zum Bot Heute koumlnnen Computer nicht mehr nur Telefongespraumlche auswerten sondern so einiges mehr in Sachen Kommunikation Was koumlnnen Bots heu-te leisten und wie entwickelt man einen eigenen Bot mit dem Microsoft Bot Framework

copy T

ijana

MS

hutt

erst

ock

com

83wwwentwickler-magazinde Entwickler Magazin 12019

ChatbotsInternet of

Things

um die Bestellung zu verizieren und den Bestellvor-gang zu vereinfachen Hierfuumlr ist maszliggeblich dass der Benutzer vorab der Nutzung seiner persoumlnlichen Infor-mationen zugestimmt hat sodass der Bot sie suchen und verarbeiten darf

Genauigkeit der Spracherkennung und AuthentizierungEin messbares Kriterium von erfolgreicher Spracherken-nung bei Bots ist die Praumlzision also das Verhaumlltnis von korrekt erkannten Aumluszligerungen zu falsch erkannten Ak-tuell liegt die Praumlzision weltweit fuumlhrender Anbieter bei 91-95 Prozent Beim chinesischen Suchanbieter Baidu sind 99 Prozent in Umgebungen mit geringen Hinter-grundstoumlrgeraumluschen angestrebt Andrew Ng Chefent-wickler von Baidu sagt dazu bdquoSobald die Praumlzision von Spracherkennung [hellip] 99 erreicht werden wir Sprach erkennung nicht mehr kaum sondern taumlglich ver-wendenldquo [1] Diese Praumlzision hat Nuance einer der ers-ten Anbieter von Diktiersoftware laut eigener Aussage mit seiner Dragon-Spracherkennung bereits erreicht [2]

Spracherkennungsdienste ltern die Stimme des Be-nutzers aus anderen Stimmen und Stoumlrgeraumluschen die das Mikrofon mit aufnimmt Sobald die Stimmdaten extrahiert sind werden sie analysiert Die Einmaligkeit von menschlichen Stimmmustern wird softwaretech-nisch teils in Authentizierungsprozessen genutzt Wie verschiedene Studien und Praxisbeispiele belegen ist Stimmerkennung allein jedoch nicht als Authentizie-rungsmethode geeignet da sie gegenuumlber Replay-Atta-cken und manipulierten Audioaufnahmen anfaumlllig ist [3] [4] Einen interessanten Loumlsungsansatz bieten Huan Feng Paul Scerri und Katia Sycara mit ihrer Software zur Auswertung biometrischer Daten an Diese bezieht naumlmlich tragbare Geraumlte zur Authentizierung ein Wenn der Benutzer eine Smartwatch traumlgt ist es so moumlg-lich mit Pulsmuster und Koumlrpervibrationsaufzeichnung sicherzugehen dass das was gesagt wird auch vom Be-nutzer stammt [5] und nicht z B von einem Lautspre-cher abgespielt wird

Vorteile fuumlr die BenutzerAn dem Pizzabeispiel ist gut ersichtlich welchen Mehr-wert Bots fuumlr ihre Benutzer liefern Im digitalen Zeitalter in dem mehr und mehr Menschen ununterbrochen on-line sind bietet ein Bot eine 247-Erreichbarkeit Anders als manche Kundenservicehotlines ist er kostenlos er-reichbar und es gibt keine langen Wartezeiten um etwa den naumlchsten freien Kundenberater zu sprechen Die Nutzung auf mobilen Endgeraumlten ist zudem optimal um Informationen standortabhaumlngig zu ltern Stellen wir uns vor dass der Kunde dem Bot auf die Frage bdquoWo bist duldquo eine GPS-Freigabe fuumlr die naumlchste Stunde schickt Egal wo der Kunde mit seinem GPS-faumlhigen Endgeraumlt dann in der naumlchsten Stunde hingeht der Pizzabote kann ihn geocachen um die Pizza auszuliefern

Ein weiterer Vorteil besteht darin dass multilinguale Benutzer potenziell die Option haben sich mit dem Bot

in der eigenen Muttersprache zu unterhalten So waumlre es fuumlr den Kunden moumlglich eine Pizza auf Spanisch zu ordern selbst wenn die Mitarbeiter des Pizzaunterneh-mens nur Englisch verstuumlnden Denn die meisten Bot Frameworks unterstuumltzen die Einbindung von Uumlberset-zungsdiensten wie Google Translate Die Uumlbersetzungs-qualitaumlt ist allerdings abhaumlngig von den verwendeten Sprachen Viel ausgepraumlgter als das europaumlische ist das angloamerikanische Bot-Angebot was darauf zuruumlck-zufuumlhren ist dass die Global Player auf diesem Gebiet uumlberwiegend aus den USA stammen Auch Benutzer mit motorischen oder visuellen Handicaps protieren von einem Bot mit Sprachunterstuumltzung und Hands-off-Prinzip Bots koumlnnen so programmiert sein dass die Benutzung einer Tastatur uumlberuumlssig ist Sprachassisten-ten wie Google Assistant Siri Cortana und Alexa sind nichts anderes als Bots die ihre Navigation einzig uumlber die Stimme auslegen

Vorteile fuumlr UnternehmenEinen gut programmierten und kontinuierlich gewar-teten Bot einzusetzen kann die Kundenservicehotline gaumlnzlich ersetzen und bietet daher personelle und nan-zielle Einsparpotenziale fuumlr Unternehmen Gut program-miert heiszligt in diesem Fall dass die Bots auf verschiedene Kanaumlle und die Einbindung externer Dienste angepasst sind Der Bot muss eine Anzahl von Musterkonversa-tionen die ein Kunde mit ihm fuumlhren wuumlrde kennen Zudem ist es wichtig ihm eine Trainingsphase zuzuge-stehen in der er mit echten Kundenanfragen konfron-tiert wird Wie die Fiducia GAD IT AG ein deutsches Dienstleistungsunternehmen aus dem Bereich Banking mit ihrem Chatbot-Prototyp nachwies ist besonders in oft auftretenden Kundenanliegen der Einsatz eines Chat-bots efzienter weil der Korrekturbedarf geringer aus-faumlllt [6] Auch die Studie von Steven Okamoto Kassem Fawaz und Kang Shin zeigt ein hohes Einsparpotenzial bei der Einfuumlhrung in den Geschaumlftsablauf von bis zu 46 Prozent Leistungssteigerung [7] Kritiker halten al-lerdings dagegen dass die beste Kundenberatung durch Personen stattndet die nicht in Mustern denken [8]

Die wachsende Zahl von Bot-Start-ups zeigt jedoch einen groszligen Bedarf an dieser Technologie in verschie-densten Branchen und Bereichen auf ndash mit unterschied-lichen Spezialisierungsgraden Andrew Mortensen Mitgruumlnder des Amy-Bots von xai meint hierzu Ziel sei es nicht halbversiert auf allen Themengebieten son-dern gut auf einem speziellen zu sein [9] Es gibt Start-ups die sich auf Investmentbankingberatung (Stichwort Fintech Start-ups) konzentrieren und solche die aus-schlieszliglich einzelne Aufgaben wie etwa die Organisation von Terminen loumlsen

Ein Beispiel aus der aktuellen Forschung2018 wurde von der innobis AG einer IT- und SAP-Beratung fuumlr Banken ein Prototyp im Rahmen einer wissenschaftlichen Abschlussarbeit realisiert und aus-gewertet um die Moumlglichkeiten dieser Technologie zu

84 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

erforschen [10] Der entstandene Bot loumlst fuumlr das Un-ternehmen die Aufgabe Daten eines Benutzers fuumlr ein Foumlrdermittelformular des Europaumlischen Sozialfonds abzufragen Der Prototyp ist in C programmiert und basiert auf dem Microsoft Bot Framework Dieses er-moumlglicht ndash wie viele andere Bot Frameworks ndash ein kos-tenloses Hosting (in diesem Fall in Azure) Folgende Anforderungen galten fuumlr den Prototyp Spracherken-nung nach dem Hands-off-Prinzip Multilingualitaumlt plattformuumlbergreifende Programmierung die Einbin-dung eines AI-Service sowie die Moumlglichkeit Dateien z B Quittungen hochzuladen

Nach einer ersten Pruumlfung des Vorhabens zeigte sich einerseits dass die Anforderungen realisierbar sind Im Usability-Test wurde jedoch andererseits auch deut-lich dass Benutzer zoumlgern einem Bot persoumlnliche Da-ten mitzuteilen Ein weiteres Problem war die geplante Fusion des Bots in eine sogenannte Cortana-Faumlhigkeit Cortana-Faumlhigkeiten sind vergleichbar mit Erweiterun-gen von Cortana durch Drittanbieter So gibt es in den USA etwa die Cortana-Faumlhigkeit bdquoDominorsquos Pizzaldquo die es einem Cortana-Benutzer ermoumlglicht uumlber den Dialog mit Cortana Pizza bei der Firma Dominorsquos zu bestellen Das Problem mit der Integration des Bots als Cortana-Faumlhigkeit ist dass sie fuumlr Geraumlte mit deutschen Sprach-einstellungen noch nicht freigegeben sind

Fuumlr den Prototyp wurde der Microsoft AI Service LUIS (Language Understanding Intelligence Service) eingesetzt LUIS ist uumlber ein API vollautomatisch nutz-bar Wie viele andere auf Entitaumlten und Intentionen ba-sierende Web Services auf dem Gebiet AI scheitert er allerdings bei unbekannten Aumluszligerungen in der Analy-se Ein groszliges Potenzial bietet jedoch die Ansammlung von Kundenanliegen die ein Bot auswertet Wichtig ist dabei die fortwaumlhrende Kontrolle und Wartung durch den Bot-Entwickler weil ansonsten gegebenenfalls fal-sche Zusammenhaumlnge erlernt werden Dies zeigte sich in Googles Prototyp bdquoTayldquo dessen Benutzern es gelang dem Bot rassistische und beleidigende Aumluszligerungen an-zutrainieren [11]

Die Erfahrungen aus der Praxis zeigen dass die Ein-satzmoumlglichkeiten von Bots fuumlr Unternehmen durchaus lukrativ sein koumlnnen selbst wenn die erhobenen Daten nicht direkt von den Benutzern kommen

Das Leistungsspektrum eines BotsDem Einsatzgebiet von Bots sind quasi keine Grenzen gesetzt Einige Bot Frameworks wie SILVIA unter-stuumltzen Avatare um dem Benutzer ein moumlglichst rea-listisches Kommunikationsgefuumlhl zu vermitteln und nonverbale Gesten wie ein Laumlcheln Stirnrunzeln oder Schulterzucken zum Ausdruck zu bringen Das ist be-sonders im Zusammenhang mit emotionaler Intelligenz sinnvoll Bei der Auswertung von emotionaler Intelli-genz wird erhoben wie aufnahmefaumlhig ein Benutzer in einer bestimmten Gefuumlhlssituation ist Der Bot reagiert situationsabhaumlngig und unterschiedlich auf Stress Wut oder Humor

Ein oft angefuumlhrtes Beispiel fuumlr das Leistungsspekt-rum von Bots ist die Hotel-Flug-Buchung In diesem Fall werden Reservierungs- und Buchungs-E-Mails ausgewertet und multimediale Inhalte als Information zu Hotels in der Naumlhe des Benutzers eingeblendet [12] Proaktive Nachrichten sind hier eine Moumlglichkeit den Bot selbst die Konversation auf ein bestimmtes Ereignis hin eroumlffnen zu lassen z B bdquoLieber Benutzer an deinem aktuellen Standort hat gerade ein Wellnesshotel eroumlff-net Soll ich dir ein Zimmer reservierenldquo

Ein Blick in die Programmierung Da Bots untereinander kompatibel programmierbar sind und je nach Anbieter Schnittstellen zum Sprachas-sistenten des Anbieters haben ergeben sich Potenziale in der Steuerung von externer Hardware Dies zeigt bei-spielsweise das Projekt bdquoInternet of Stranger Thingsldquo von Pete Brown bei dem eine Lichterkette zu Demonst-rationszwecken uumlber einen Bot gesteuert wird [13] Die Moumlglichkeiten der Bot-Einbindung in stimmgesteuerte Hardware schlieszligen auch intelligente Beleuchtungs- und Hausautomatisierungssysteme wie Philips Hue bis hin zu personalisierbaren Robotern wie Jibo [14] ein es geht also nicht nur um die Anbindung von Stand-alone-Lautsprechern wie Alexa Echo

Vorbereitungen fuumlr die Bot-EntwicklungUm einen Bot zu entwickeln ist der leichteste Weg die Registrierung bei einem Bot-Framework-Anbieter Die-ser stellt einen (oder mehrere) Server der die Benutzer-anfragen und Bot-Antworten uumlber Internetverbindung verarbeitet Dafuumlr ist zunaumlchst ein Benutzeraccount bei einem der Anbieter zu eroumlffnen Soll zum Beispiel fuumlr das Microsoft Bot Framework entwickelt werden muss ein Microsoft-Account erstellt werden mit dem dann ein Microsoft-Azure-Account zu erstellen ist Oft wird bei der Registrierung eine guumlltige Zahlungsinformation verlangt z B eine Kreditkartennummer Anschlieszligend ist zumeist weitere Software zu installieren um den Bot lokal debug-gen zu koumlnnen Dazu gehoumlrt eine Entwicklungsumgebung die vom Framework verlangt wird (z B Visual Studio oder ein Extratool wie der Bot-Framework-Emulator ndash beide sind fuumlr die Nutzung des Microsoft Bot Frameworks noumltig) Kenntnisse von Tunneling-Software wie ngrok koumlnnen sich ebenfalls als nuumltzlich erweisen falls der Bot hinter einem Unternehmens-Proxy laufen soll

Sind diese Schritte abgeschlossen sind die Grund-zutaten fuumlr einen (Pizza-)Bot vorhanden Es ist jedoch moumlglich weitere Frameworks einzubinden etwa ein AI-Framework damit der Bot anhand der Konversation intelligent reagiert In Bezug auf den Programmierauf-wand ist der efzienteste Weg Frameworks des gleichen Anbieters zu nutzen Daneben besteht noch die Moumlg-lichkeit Drittanbieterdienste uumlber eine programmtech-nische Schnittstelle einzubinden Fuumlr jedes Framework das zusaumltzlich angeboten werden soll ist eine Registrie-rung erforderlich und gegebenenfalls eine weitere fuumlr die programmatische Schnittstelle

85wwwentwickler-magazinde Entwickler Magazin 12019

ChatbotsInternet of

Things

Oft ist es moumlglich den Bot auf verschiedenen soge-nannten Kanaumllen zu vertreiben Ein Sprachassistent waumlre ein solcher Kanal aber auch Kommunikations-netzwerke wie Skype Twitter Slack Microsoft Ofce Telegram oder Facebook Messenger Ist eine Veroumlf-fentlichung des Bots auf einem oder mehreren Kanaumllen (welche verfuumlgbar sind ist anbieterabhaumlngig) geplant dann ist fuumlr das Entwickeln und Testen hier ein Account noumltig

Drei Anwendungsoptionen des Microsoft Bot FrameworksIm Folgenden werden drei Anwendungsoptionen des Microsoft Bot Frameworks vorgestellt die beim bereits beschriebenen Prototyp fuumlr die innobis Verwendung fanden In allen Faumlllen geht es darum dem Bot das Di-alogmuster nach dem er arbeiten soll zur Verfuumlgung zu stellen

bull FormFlow ein JSON-Format fuumlr einen geregelten und vordenierten Ablauf (das sich vor allem eignet um formularaumlhnliche Daten abzufragen)

bull DirectLine eine programmatische Schnittstelle zur Einbindung von Drittanbieterdiensten (z B eines Sprachassistenten) und

bull LUIS-Service ein AI-Framework zur Einbindung des Language Understanding Intelligence Service von Mi-crosoft

Um einem Bot den Dialog per FormFlow vorzuge-ben muss eine JSON-Datei mit vordenierten Fra-gen und Antworten erstellt werden die spaumlter in den Bot geladen wird Bei FormFlow gibt es verschiedene Implementierungsmoumlglichkeiten Es ist moumlglich eine

Datenhaltungsklasse mit Attributen fuumlr jedes vorge-schriebene Eingabefeld zu implementieren oder auch diese aus einer JSON-Datei generieren zu lassen die ein bestimmtes Muster erfuumlllt (siehe Listing 1 mit ei-nem Auszug aus der FormFlow-Datei die im innobis-Prototyp Verwendung fand) In den Properties sind die abzufragenden Werte deniert wobei die Frage mithilfe eines amp-Platzhalters fuumlr den Property-Namen ergaumlnzt ist Erforderliche Eingaben sind zu Beginn zu kennzeichnen Eingebettete regulaumlre Ausdruumlcke bieten auszligerdem die Moumlglichkeit die Benutzereingabe zu pruumlfen Daruumlber hi-naus ist es moumlglich Validierungsfunktionen in JSON zu benennen Der Aufruf des JSON-Skripts kann uumlber Da-teilesezugriffe in C wie in Abbildung 1 gezeigt erfolgen

Es ist hierbei moumlglich Validierungs-Regexe zu de-nieren numerische Intervalle fuumlr die Validierung mitzureichen oder die Namen von Validierungsme-thoden mitzugeben Zudem ist es notwendig je nach

Abb 1 In C aufgerufenes JSON-Skript (Screenshot)

Listing 1 Codeauszug aus der JSON-Datei die den FormFlow-Dialog generiert

References [ LuisBotdll ] Imports [ LuisBotResource ] type object Templates NotUnderstood Patterns [ I didnt understand 0 Try again I dont know about 0 ] properties

Vorname Before [ Message [ Welcome to the ESF_2 FormBot ]

] Prompt Patterns [ What is your given name ]

type [ string null ]

Nachname

Prompt Patterns [ And your surname ]

type [ string

null ]

Hausnummer

Prompt Patterns [ What is your street number ]

type [ string null ]

hellip

86 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

verwendeter Sprache des Benutzers unterschiedliche JSON-Dialoge anzulegen (oder diese mit einem Uumlber-setzungsframework uumlbersetzen zu lassen)

Abhaumlngig davon welchen Kanal der Benutzer waumlhlt um mit dem Bot in Kontakt zu treten bieten sich zusaumltz-liche spezielle Eigenschaften des Kanals Mit einer Text-zu-Sprache-Generierung die ein integraler Bestandteil von sprachfaumlhigen Bots ist gibt es die Option einen Te-lefondialog in der favorisierten Sprache des Benutzers zu generieren Abbildung 2 zeigt ein Beispiel eines Skype-Dialogs zwischen Bot und Benutzer

Eine DirectLine-Verbindung wird ndash oberaumlch-lich betrachtet ndash als WebSocket-Verbindung oder als HTTP-GET-Anfrage des Clients mittels eines Hand-shake-Verfahrens aufgebaut Um sie zu nutzen ist ein DirectLine-Schluumlssel fuumlr den Bot zu generieren Fuumlr ver-tiefende Informationen eignet sich die Microsoft-Doku-mentation [15] oder Robert Osbornes Blog in dem er

beschreibt wie einer Alexa-Faumlhigkeit eine DirectLine-Schnittstelle hinzufuumlgt wird [16]

DirectLine kann im Microsoft Bot Framework genutzt werden um einen LUIS Service anzubinden Das ist ein AI-Framework Der Wunsch AI-Frameworks einbinden zu wollen wird anhand von Benutzeranfragen wie bdquoIch moumlchte die Unternehmensangaben im ESF_2-Formular ausfuumlllenldquo deutlich Es gibt hierbei zahlreiche Moumlglich-keiten wie ein Benutzer diese Anfrage (synonym) for-mulieren koumlnnte aber jedes Mal ist es die Aufgabe des Bots anhand der Worte zu erkennen dass er mit einem bdquoWillkommenldquo antworten soll

Der LUIS Service ermoumlglicht es dem Bot auf moumlg-lichst natuumlrliche Art und Weise mit Menschen zu kom-munizieren Er wird von Microsoft als Cloud-Loumlsung auf einer AI-Plattform angeboten Der Bot analysiert die gesprochene Sprache und leitet die Anfrage dann an LUIS weiter LUIS analysiert die Frage und ermittelt die Intention Um LUIS Services einzubinden muss die Intention des Benutzers auf der AI-Plattform bekannt sein Daruumlber hinaus helfen zusaumltzliche Parameter die die Intention erlaumlutern Die Intention eines Benutzers waumlre zum Beispiel eine Pizza zu bestellen Ein dazuge-houmlriger Parameter waumlre dann etwa die Groumlszlige der Pizza Die Schwierigkeit liegt in diesem Fall darin dass Men-schen ihren Wunsch nach einer Pizza in einer bestimm-ten Groumlszlige unterschiedlich ausdruumlcken Die Aufgabe von LUIS ist es daher die Intention und moumlglichst alle not-wendigen Parameter zu erfassen und zuruumlckzuliefern Microsoft arbeitet daran auch Stimmungen im gespro-chenen Text zu erkennen und diese dem Bot ebenfalls zu vermitteln

LUIS berechnet wie wahrscheinlich es ist dass eine bestimmte Aumluszligerung einer bestimmten Intention ent-spricht So wird bei der Benutzeranfrage bdquoBitte hilf mirldquo bestimmt dass es sich mit einer Wahrscheinlich-keit von 99 Prozent um das Beduumlrfnis handelt den Hil-fetext zu sehen (UtilitiesHelp) Jedes Mal wenn eine Anfrage bei LUIS eintrifft werden alle vom Entwick-ler denierten Intentionen danach bewertet wie wahr-scheinlich sie sind Umgekehrt wird ebenfalls berechnet dass zur Aumluszligerung bdquoBitte hilf mirldquo die Intention bdquoGruumlszlige michldquo (Greeting) nur zu 001 Prozent passend ist Waumlre allerdings bdquoGruumlszlige michldquo faumllschlicherweise mit 99 Pro-zent bewertet worden waumlre eine Korrektur erforderlich Diese erfolgt entweder manuell uumlber die LUIS-Website oder uumlber einen programmatischen LUIS-API-Aufruf

In der Entwicklungsumgebung legt der Entwickler dann nur noch fest welche Aktion auf welche Intention folgt Wurde die Intention bdquoGruumlszlige michldquo (Abb 3 un-ter Greeting) erkannt wird ein Gruszlig als Post uumlber die DirectLine-Verbindung geschickt Der Bot-Framework-Server benachrichtigt daraufhin den oder die Teilneh-mer der Konversation uumlber die neue Nachricht Der Kontext enthaumllt dabei die Metadaten zur Konversation (z B wer die Dialogpartner sind)

Abbildung 4 zeigt die Situation im Bot wenn einer Aumluszligerung keine Intention zugeordnet werden konnte

Abb 3 Kor-rekturmoumlg-lichkeiten

im LUISai-Webportal

(Screen-shot)

Abb 2 Skype-Dialog zwischen Bot und Benutzer (Screenshot)

18 ndash 20 Februar 2019 | Muumlnchen2 ndash 4 April | Berlin

wwwdevops-trainingde

Das eigentlich junge Thema Docker wird mehr und mehr zu einem Bestandteil der Infrastruktur von kleinen Start-ups bis zu groszligen Firmen Sobald von DevOps oder Microservices gesprochen wird wird oft im gleichen Atemzug von Docker gesprochen Aber was hat es mit diesem Docker auf sich Dem vielleicht entscheidendem Baustein die IT zu revolutionieren Im neuen DevOps Docker Camp mit Erkan Yanar erhalten Sie von einem der bekanntesten deutschsprachigen Docker-Experten einen praktischen Einstieg in Docker Sie lernen die Kon-zepte von Docker und die darauf aufbauenden Infra-

strukturen umfassend kennen Schritt fuumlr Schritt bauen Sie eine eigene Infrastruktur fuumlr und mit Docker auf Es werden eigene Applikationen in Docker Images verpackt und eigene Microservices ausgerollt die automatisiert geloggt und gemonitort werden Am Ende des intensi-ven Docker-Trainings werden Sie einschaumltzen koumlnnen ob und wie Docker fuumlr Sie selbst relevant und nutzbrin-gend einzusetzen ist Der Schwerpunkt liegt im klassi-schen Aufbau von Docker auf Linux Die Verwendung von Docker auf und mit Microsoft wird aber erlaumlutert und kurz vorgefuumlhrt

Veranstalter

Praumlsentiert von

Docker_Camp DockerCamp DevOpsDockerCamp

Das Docker-Training mit Erkan Yanar

Jetzt Teilnahme sichern

88 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Die Nachricht wird an den LUIS-Dialog verwiesen und dieser kommuniziert im Hintergrund mit dem LUIS API Dieses meldet zuruumlck dass bdquoNoneldquo der wahr-scheinlichste Beweggrund der Anfrage war Daraufhin reagiert der Bot mit durch den Entwickler festgelegten Maszlignahmen In diesem Beispiel waumlhlt der Bot aus ei-ner Liste mit moumlglichen Variationen aus und fordert zur erneuten Eingabe auf Die Liste selektiert zufaumlllig den Wert bdquoDiese Antwort verstehe ich nichtldquo (Listing 2) Die moumlglichen Antworten sind programmatisch oder uumlber den JSON-Aufbau zu denieren

Mit der Einbindung von LUIS wird ein erweitertes Navigationskonzept geschaffen das die FormFlow-Na-vigationskommandos ergaumlnzt Es eignet sich besonders

fuumlr Bereiche in denen nicht klar ist welches Anliegen der Benutzer hat also etwa in einer Hilferubrik oder auf einer Kontaktseite Sinnvoll ist die Nutzung auch bei FAQs wobei die meisten Anbieter fuumlr diesen Be-reich auch sogenannte QA-Frameworks (Question-and-Answer-Frameworks) anbieten

Sicherheitsbedenken technische Schwierigkeiten und gesellschaftliche AkzeptanzEine der groumlszligten Herausforderungen im Bereich Bot-Programmierung ist das Thema Sicherheit Da saumlmt-liche Kommunikation uumlber das Internet laumluft ndash sofern keine Anbieter wie Snipsai im Einsatz sind [17] die mit lokal analysierender AI arbeiten ndash sind die ausge-tauschten Informationen exponiert Das wird durch eine Verschluumlsselung oder andere meist kostenpichtige Si-cherheitsmechanismen der Anbieter kompensiert Ver-antwortlich fuumlr die Funktionalitaumlt Verfuumlgbarkeit und Sicherheit sind laut den AGB verschiedenster Anbieter die Entwickler bzw Produkteigner da die Anbieter le-diglich eine Betaversion zur Verfuumlgung stellen Das be-deutet dass fuumlr die unternehmerische Nutzung in der EU ein Service Level Agreement notwendig ist was auch aus datenschutzrechtlicher Sicht empfehlenswert ist

Wenn der Bot wie im innobis-Projekt in einem Sprachassistenten integriert ist ergeben sich zudem technische Abhaumlngigkeiten vom Anbieter Es ist fuumlr den Bot-Entwickler nicht moumlglich spezielle Verhaltenswei-sen des benutzten Sprachassistenten zu beeinussen (so schloss sich etwa die Anwendung wenn der Benutzer auszligerhalb des Cortana Canvas klickte) Probleme gab es auch mit zu schnellen Ein- und Ausblendungen der

Abb 4 LUIS-Dialog wenn einer Aumluszligerung keine Intention zugeordnet werden konn-te (Screenshot)

Listing 2 Codeauszug aus den Nachbearbeitungsroutinen zur erkannten LUIS-Intention

[Serializable] public class BasicLuisDialog LuisDialogltobjectgt

ltsummarygt Der Konstruktor verwendet Infos aus der webcong um sich gegenuumlber dem LUIS-Sprachmodell-API zu authentizieren ltsummarygt public BasicLuisDialog() base(new LuisService(new LuisModelAttribute(CongurationManagerAppSettings[LuisAppId] CongurationManagerAppSettings[LuisAPIKey])))

ltsummarygt Die ldquokeine-Intentionrdquo-Intention ist die Intention die die AI erkennt wenn sie sich nicht sicher ist welche Intention gemeint ist ltsummarygt ltreturnsgtltreturnsgt [LuisIntent()]

[LuisIntent(None)] public async Task NoneIntent(IDialogContext context LuisResult result) string luisno = Resource1LuisNonesorry Didnrsquot understandhellip await contextPostAsync(Resource1LuisNone+$resultQuery) contextWait(MessageReceived)

ltsummarygt Diese Intention ist beispielhaft fuumlr eine selbstimplementierte Intention Damit sie auf diese Kundenanfrage antwortet muss die Aumluszligerung des Kunden von der AI als aumlhnlich zu einer bekannten Intention im Web Service als am houmlchsten wahrscheinlich erkannt werden ltsummarygt ltreturnsgtltreturnsgt [LuisIntent(Greeting)] public async Task GreetingIntent(IDialogContext context LuisResult result) await contextPostAsync(ResourceResource1regionalGreeting) contextWait(MessageReceived)

ARCHITEKTURWELTEN REAL UND VIRTUELL

wwwentwickler-pressde baukunst-fuer-softwarearchitekten

Jan Peuker

Baukunst fuumlr Softwarearchitekten

Was Software mit Architektur zu tun hat

288 SeitenISBN 978-3-86802-118-9

Preis 2490 euro (D)2560 euro (A)

ChatbotsInternet of

Things

Fragen und Timeouts Daruumlber hinaus war es nicht moumlglich der Cortana-Stimmerkennung Sonderzeichen wie oder π zu diktieren Die Spracherkennung hat generell Schwierigkeiten kurze und sprachlich gleich oder aumlhnlich klingende Antworten (Homophone) des FormFlow zu unterscheiden Es war zum Beispiel nicht moumlglich den Invokationsnamen bdquoLuisBotldquo zu diktie-ren Dies wurde unterschiedlich als bdquoluis potldquo oder bdquole-wis botldquo fehlinterpretiert Dieses Problem duumlrfte auch andere (deutsche) Produkt- Firmen- und Eigennamen betreffen Als Problemloumlsung konnten kanalspezische Angaben des Benutzers herangezogen werden Es erwies sich als moumlglich nach einer expliziten Zustimmung des Benutzers die Kontakt- Orts- und Benutzerdaten auszu-werten Seltene Vornamen oder Familiennamen koumlnnen auf diese Weise uumlbernommen werden ohne dass der Be-nutzer sie diktieren muss

Letztlich ist auch die Nutzerakzeptanz fuumlr Bots in Deutschland eine Herausforderung fuumlr Unternehmen Selbst in der Generation die als bdquoDigital Nativesldquo gilt gibt es Benutzer die bislang wenig mit Sprachunterstuumlt-zung gearbeitet haben bzw Probleme haben erlernte Konzepte wie etwa die Diktierfunktion in WhatsApp auf andere Produkte zu uumlbertragen Laut dem Online-portal fuumlr Statistik Statista GmbH haben 2016 nur etwa 25 Millionen von rund 80 Millionen Einwohnern in Deutschland angegeben bereits einen Sprachassistenten

genutzt zu haben [18] Es bleibt also eine Herausfor-derung mit dem Wachstum in dieser Branche Schritt zu halten den das Marktforschungsinstitut Gartner Inc fuumlr dialogunterstuumltzende Assistenten [19] genauso vor-hersagt wie den Zwei-Billionen-Umsatz fuumlr intelligente Lautsprecher fuumlr 2020 [20]

Anbieter und ProdukteEinen guten Uumlberblick uumlber die Produkte und Anbieter auf dem Markt bietet die Website von Predictive Analy-sis [21] Dort werden neben den multinationalen Kon-zernen und ihren Produkten auch kleinere Unternehmen und ihre Loumlsungen vorgestellt und ausgewertet Generell laumlsst sich hierbei sagen dass Google mit seinem Google Assistant uumlber die meisten Nutzer weltweit verfuumlgt Auch in der Praumlzision der Spracherkennung ist Google weiter vorangeschritten als beispielsweise die Microsoft- oder Amazon-Produkte Apple dagegen liegt in Bezug auf die Praumlzision zwar hinter Google aber noch vor Mi-crosoft und Amazon Wie die Slideshow von Konstantin Savenkov Intento Inc bdquoAspect Natural Lan guage Un-derstandingldquo zeigt [22] ist auch IBM mit seiner Wat-son ai- Plattform eine nicht zu unterschaumltzende Groumlszlige was Performanz ab einer gewissen Datensatzmenge angeht Die Untersuchung die Savenkov dazu durch-gefuumlhrt hat zeigt die Staumlrken und Schwaumlchen der fuumlnf groumlszligten Bot-Anbieter auf

Anzeige

90 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Es gibt neben den kommerziellen Anbietern im Uumlbri-gen auch zwei Open-Source-Projekte Lucida [23] und Athena [24] die sich mit kuumlnstlicher Intelligenz und sprach- bzw bildverarbeitenden dialoggestuumltzten Syste-men beschaumlftigen Lucida hat allerdings recht einschraumln-kende Systemvoraussetzungen weil es nur auf zwei bestimmten Ubuntu-Versionen installierbar ist Dieses Problem kann in VirtualBox umgangen werden sofern ein anderes Betriebssystem auf 64-Bit-Basis verfuumlgbar ist Lucida erfordert einen Arbeitsspeicher von mehr als 6 GB RAM Athena zielt darauf die Ergebnisse von Siri Alexa und Co zu erreichen und zu erweitern Es ist modular aufgebaut und bietet momentan Module fuumlr Musikwiedergabe Social Media (Twitter) und Hausau-tomation Athena ist in Python programmiert

FazitSprachgestuumltzte Unterhaltungen mit Bots weisen einen vielversprechenden Weg Strukturen im Unternehmen efzienter und effektiver zu machen Zudem bieten sie die Moumlglichkeit bisher nicht erreichte Benutzergruppen zu erschlieszligen Die datenschutzrechtlichen und sicher-heitskritischen Bedingungen koumlnnen durch Verschluumls-selungstechniken neue Authentizierungstechniken und Service Level Agreements geloumlst werden Nicht nur Fremdanbieterplattformen sondern auch eigene Systeme sind dank vorhandener Open-Source-Projek-te wie Athena nutzbar Dies lohnt sich weil Bots und der Handel mit Bot-faumlhigen Geraumlten eine zunehmen-de Verbreitung erfahren sodass es sogar denkbar ist dass Bot2Bot-Konversationen regulaumlr stattnden (auch Multi-Agent-Systeme genannt) Ein klassisches Beispiel hierfuumlr ist die Organisation von Terminen und z B die Bitte an einen Bot bdquoBitte Cortana unterhalte dich mal mit Siri von meinem Mann und mit Google Assistant von meiner Schwester und pruumlfe wann wir Zeit haben Pizza essen zu gehenldquo

Friederike Geissler Junior Consultant Development amp Integration Services bei der innobis AG hat im Unternehmen ihre Abschluss-arbeit zum Thema bdquoSprachassistenten in mobilen Bankanwendun-genldquo geschrieben Hierbei sind zwei Prototypen eine App und ein Bot entstanden die einen Benutzer durch einen Sprachassisten-

ten beim Ausfuumlllen eines Onlineformulars unterstuumltzen

[2] Nuance bdquoControl your computer voice with speed and accuracyldquo httpswwwnuancecomdragonhtmlstandardpage-mainpar_backgroundimage_copy

[3] Carlini N Wagner D bdquoAudio adversarial examples Targeted Attacks on Speech-to-Textldquo University of California 2018 httpsarxivorgpdf180101944pdf

[4] Song L Mittal P bdquoInaudible Voice Commandsldquo Princeton University 2017 httpsarxivorgpdf170807238pdf

[5] Feng H Fawaz K Shin K bdquoContinuous Authentication for Voice Assistants Computer Science ndash Cryptography and Securityldquo httpsarxivorgabs170104507

[6] bdquoBots fuumlr die Bank Die Zukunft der Kommunikationldquo httpscustomersmicrosoftcomen-usstoryducia-gadit-cognitive-services-cortana-azure-powerbi-banking-germany

[7] Okamoto S Scerri P Sycara K bdquoToward an understanding of the impact of software personal assistants on human organizationsldquo httpdxdoiorg10114511606331160745

[8] Haslam R bdquoThe bots are coming ndash 5 essential things ntech rms need to knowldquo httpsbanknxtcom56496bots-5-essential-ntech

[9] Lunden I bdquoRise of the bots Techcrunchldquo httpstechcrunchcom20160407rise-of-the-bots-x-ai-raises-23m-more-for-amy-a-bot-that-arranges-appointmentsguccounter=1

[10] LuisBot Innobis AG httpsgithubcomfr6087Hoermirzu

[11] Vincent J bdquoTwitter taught Microsoft AIrsquos Chatbot to be a racist asshole in less than a dayldquo httpswwwthevergecom201632411297050tay-microsoft-chatbot-racist

[12] Microsoft Botbuilder Sample Projects httpsgithubcomMicrosoftBotBuilder-Samples

[13] Brown P bdquoInternet of Stranger Thingsldquo httpsblogswindowscombuildingapps20161031the-internet-of-stranger-things-wall-part-1-introduction-and-remote-wiring

[14] Jibo httpswwwjibocom

[15] Key concepts of DirectLine API 30 Microsoft Botframework documentation httpsdocsmicrosoftcomen-usazurebot-servicerest-apibot-framework-rest-direct-line-3-0-conceptsview=azure-bot-service-30

[16] Osborne R bdquoConnecting Alexa to a Botframework Chatbotldquo httpswwwrobinosbornecouk20161219connecting-alexa-to-a-botframework-chatbot

[17] Snips Platform Documentation httpsnipsai

[18] Digital Assistants Statista dossier httpsdestatistacomstatistikdatenstudie620225umfragenutzung-von-sprachassistenten-in-deutschland

[19] Love J bdquoGartnerrsquos top 10 predictions for 2016 and the lsquopost-apprsquo eraldquo httpswwwitworldcanadacomarticlegartner-top-ten-predictions-for-2016-and-post-app-era377594

[20] bdquoGartner Says Worldwide Spending on VPA-Enabled Wireless Speakers Will Top $2 Billion by 2020ldquo httpswwwgartnercomnewsroomid3464317

[21] Top 22 intelligent personal assistants or automated personal assistants PredictiveAnalysis httpswwwpredictiveanalyticstodaycomtop-intelligent-personal-assistants-automated-personal-assistantscontent-anchor

[22] Savenkov K bdquoNLU Intent Detectionldquo Intento 2017 httpswwwslidesharenetKonstantinSavenkovnlu-intent-detection-benchmark-by-intento-august-2017

[23] Lucida httpsgithubcomclaritylablucida

[24] Athena httpsgithubcomrcbyronhey-athena-client

Mit Lucida und Athena gibt es zwei Open-Source-Projekte die sich mit

kuumlnstlicher Intelligenz beschaumlftigen

Links amp Literatur

[1] Ng Andrew httpstwittercomAndrewYNgstatus809579698883727360

Trainings fuumlr Softwarearchitekten mit iSAQB-Zerti zierung

wwwsoftware-architecture-campde

Das Camp bietet Ihnen eine fundierte und pragmatische Einfuumlhrung in Software-architektur mit hohem Uumlbungsanteil

Die verschiedenen Module des Advanced Levels vertiefen Ihre Kenntnisse und Faumlhig-keiten in den Bereichen Technik Methodik und Kommunikation

Praumlsentiert von in Kooperation mit iSAQBreg

Veranstalter

Jet983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555

983555983555si983579983579983555983555983555983555983579983555983555983555983579983579983579983579te983579983579983579983555

Mit Zerti zierung zum

Mit Zerti zierung zum

bdquoCerti ed Professional for Software Architecture ndash Foundation Level (CPSA-F)ldquo

bdquoCerti ed Professional for Software Architecture ndash Advanced Level (CPSA-A)ldquo

Mit Zerti zierung zum bdquoCerti ed Professional for Software Architectureldquo iSAQBreg

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde

Page 3: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

83wwwentwickler-magazinde Entwickler Magazin 12019

ChatbotsInternet of

Things

um die Bestellung zu verizieren und den Bestellvor-gang zu vereinfachen Hierfuumlr ist maszliggeblich dass der Benutzer vorab der Nutzung seiner persoumlnlichen Infor-mationen zugestimmt hat sodass der Bot sie suchen und verarbeiten darf

Genauigkeit der Spracherkennung und AuthentizierungEin messbares Kriterium von erfolgreicher Spracherken-nung bei Bots ist die Praumlzision also das Verhaumlltnis von korrekt erkannten Aumluszligerungen zu falsch erkannten Ak-tuell liegt die Praumlzision weltweit fuumlhrender Anbieter bei 91-95 Prozent Beim chinesischen Suchanbieter Baidu sind 99 Prozent in Umgebungen mit geringen Hinter-grundstoumlrgeraumluschen angestrebt Andrew Ng Chefent-wickler von Baidu sagt dazu bdquoSobald die Praumlzision von Spracherkennung [hellip] 99 erreicht werden wir Sprach erkennung nicht mehr kaum sondern taumlglich ver-wendenldquo [1] Diese Praumlzision hat Nuance einer der ers-ten Anbieter von Diktiersoftware laut eigener Aussage mit seiner Dragon-Spracherkennung bereits erreicht [2]

Spracherkennungsdienste ltern die Stimme des Be-nutzers aus anderen Stimmen und Stoumlrgeraumluschen die das Mikrofon mit aufnimmt Sobald die Stimmdaten extrahiert sind werden sie analysiert Die Einmaligkeit von menschlichen Stimmmustern wird softwaretech-nisch teils in Authentizierungsprozessen genutzt Wie verschiedene Studien und Praxisbeispiele belegen ist Stimmerkennung allein jedoch nicht als Authentizie-rungsmethode geeignet da sie gegenuumlber Replay-Atta-cken und manipulierten Audioaufnahmen anfaumlllig ist [3] [4] Einen interessanten Loumlsungsansatz bieten Huan Feng Paul Scerri und Katia Sycara mit ihrer Software zur Auswertung biometrischer Daten an Diese bezieht naumlmlich tragbare Geraumlte zur Authentizierung ein Wenn der Benutzer eine Smartwatch traumlgt ist es so moumlg-lich mit Pulsmuster und Koumlrpervibrationsaufzeichnung sicherzugehen dass das was gesagt wird auch vom Be-nutzer stammt [5] und nicht z B von einem Lautspre-cher abgespielt wird

Vorteile fuumlr die BenutzerAn dem Pizzabeispiel ist gut ersichtlich welchen Mehr-wert Bots fuumlr ihre Benutzer liefern Im digitalen Zeitalter in dem mehr und mehr Menschen ununterbrochen on-line sind bietet ein Bot eine 247-Erreichbarkeit Anders als manche Kundenservicehotlines ist er kostenlos er-reichbar und es gibt keine langen Wartezeiten um etwa den naumlchsten freien Kundenberater zu sprechen Die Nutzung auf mobilen Endgeraumlten ist zudem optimal um Informationen standortabhaumlngig zu ltern Stellen wir uns vor dass der Kunde dem Bot auf die Frage bdquoWo bist duldquo eine GPS-Freigabe fuumlr die naumlchste Stunde schickt Egal wo der Kunde mit seinem GPS-faumlhigen Endgeraumlt dann in der naumlchsten Stunde hingeht der Pizzabote kann ihn geocachen um die Pizza auszuliefern

Ein weiterer Vorteil besteht darin dass multilinguale Benutzer potenziell die Option haben sich mit dem Bot

in der eigenen Muttersprache zu unterhalten So waumlre es fuumlr den Kunden moumlglich eine Pizza auf Spanisch zu ordern selbst wenn die Mitarbeiter des Pizzaunterneh-mens nur Englisch verstuumlnden Denn die meisten Bot Frameworks unterstuumltzen die Einbindung von Uumlberset-zungsdiensten wie Google Translate Die Uumlbersetzungs-qualitaumlt ist allerdings abhaumlngig von den verwendeten Sprachen Viel ausgepraumlgter als das europaumlische ist das angloamerikanische Bot-Angebot was darauf zuruumlck-zufuumlhren ist dass die Global Player auf diesem Gebiet uumlberwiegend aus den USA stammen Auch Benutzer mit motorischen oder visuellen Handicaps protieren von einem Bot mit Sprachunterstuumltzung und Hands-off-Prinzip Bots koumlnnen so programmiert sein dass die Benutzung einer Tastatur uumlberuumlssig ist Sprachassisten-ten wie Google Assistant Siri Cortana und Alexa sind nichts anderes als Bots die ihre Navigation einzig uumlber die Stimme auslegen

Vorteile fuumlr UnternehmenEinen gut programmierten und kontinuierlich gewar-teten Bot einzusetzen kann die Kundenservicehotline gaumlnzlich ersetzen und bietet daher personelle und nan-zielle Einsparpotenziale fuumlr Unternehmen Gut program-miert heiszligt in diesem Fall dass die Bots auf verschiedene Kanaumlle und die Einbindung externer Dienste angepasst sind Der Bot muss eine Anzahl von Musterkonversa-tionen die ein Kunde mit ihm fuumlhren wuumlrde kennen Zudem ist es wichtig ihm eine Trainingsphase zuzuge-stehen in der er mit echten Kundenanfragen konfron-tiert wird Wie die Fiducia GAD IT AG ein deutsches Dienstleistungsunternehmen aus dem Bereich Banking mit ihrem Chatbot-Prototyp nachwies ist besonders in oft auftretenden Kundenanliegen der Einsatz eines Chat-bots efzienter weil der Korrekturbedarf geringer aus-faumlllt [6] Auch die Studie von Steven Okamoto Kassem Fawaz und Kang Shin zeigt ein hohes Einsparpotenzial bei der Einfuumlhrung in den Geschaumlftsablauf von bis zu 46 Prozent Leistungssteigerung [7] Kritiker halten al-lerdings dagegen dass die beste Kundenberatung durch Personen stattndet die nicht in Mustern denken [8]

Die wachsende Zahl von Bot-Start-ups zeigt jedoch einen groszligen Bedarf an dieser Technologie in verschie-densten Branchen und Bereichen auf ndash mit unterschied-lichen Spezialisierungsgraden Andrew Mortensen Mitgruumlnder des Amy-Bots von xai meint hierzu Ziel sei es nicht halbversiert auf allen Themengebieten son-dern gut auf einem speziellen zu sein [9] Es gibt Start-ups die sich auf Investmentbankingberatung (Stichwort Fintech Start-ups) konzentrieren und solche die aus-schlieszliglich einzelne Aufgaben wie etwa die Organisation von Terminen loumlsen

Ein Beispiel aus der aktuellen Forschung2018 wurde von der innobis AG einer IT- und SAP-Beratung fuumlr Banken ein Prototyp im Rahmen einer wissenschaftlichen Abschlussarbeit realisiert und aus-gewertet um die Moumlglichkeiten dieser Technologie zu

84 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

erforschen [10] Der entstandene Bot loumlst fuumlr das Un-ternehmen die Aufgabe Daten eines Benutzers fuumlr ein Foumlrdermittelformular des Europaumlischen Sozialfonds abzufragen Der Prototyp ist in C programmiert und basiert auf dem Microsoft Bot Framework Dieses er-moumlglicht ndash wie viele andere Bot Frameworks ndash ein kos-tenloses Hosting (in diesem Fall in Azure) Folgende Anforderungen galten fuumlr den Prototyp Spracherken-nung nach dem Hands-off-Prinzip Multilingualitaumlt plattformuumlbergreifende Programmierung die Einbin-dung eines AI-Service sowie die Moumlglichkeit Dateien z B Quittungen hochzuladen

Nach einer ersten Pruumlfung des Vorhabens zeigte sich einerseits dass die Anforderungen realisierbar sind Im Usability-Test wurde jedoch andererseits auch deut-lich dass Benutzer zoumlgern einem Bot persoumlnliche Da-ten mitzuteilen Ein weiteres Problem war die geplante Fusion des Bots in eine sogenannte Cortana-Faumlhigkeit Cortana-Faumlhigkeiten sind vergleichbar mit Erweiterun-gen von Cortana durch Drittanbieter So gibt es in den USA etwa die Cortana-Faumlhigkeit bdquoDominorsquos Pizzaldquo die es einem Cortana-Benutzer ermoumlglicht uumlber den Dialog mit Cortana Pizza bei der Firma Dominorsquos zu bestellen Das Problem mit der Integration des Bots als Cortana-Faumlhigkeit ist dass sie fuumlr Geraumlte mit deutschen Sprach-einstellungen noch nicht freigegeben sind

Fuumlr den Prototyp wurde der Microsoft AI Service LUIS (Language Understanding Intelligence Service) eingesetzt LUIS ist uumlber ein API vollautomatisch nutz-bar Wie viele andere auf Entitaumlten und Intentionen ba-sierende Web Services auf dem Gebiet AI scheitert er allerdings bei unbekannten Aumluszligerungen in der Analy-se Ein groszliges Potenzial bietet jedoch die Ansammlung von Kundenanliegen die ein Bot auswertet Wichtig ist dabei die fortwaumlhrende Kontrolle und Wartung durch den Bot-Entwickler weil ansonsten gegebenenfalls fal-sche Zusammenhaumlnge erlernt werden Dies zeigte sich in Googles Prototyp bdquoTayldquo dessen Benutzern es gelang dem Bot rassistische und beleidigende Aumluszligerungen an-zutrainieren [11]

Die Erfahrungen aus der Praxis zeigen dass die Ein-satzmoumlglichkeiten von Bots fuumlr Unternehmen durchaus lukrativ sein koumlnnen selbst wenn die erhobenen Daten nicht direkt von den Benutzern kommen

Das Leistungsspektrum eines BotsDem Einsatzgebiet von Bots sind quasi keine Grenzen gesetzt Einige Bot Frameworks wie SILVIA unter-stuumltzen Avatare um dem Benutzer ein moumlglichst rea-listisches Kommunikationsgefuumlhl zu vermitteln und nonverbale Gesten wie ein Laumlcheln Stirnrunzeln oder Schulterzucken zum Ausdruck zu bringen Das ist be-sonders im Zusammenhang mit emotionaler Intelligenz sinnvoll Bei der Auswertung von emotionaler Intelli-genz wird erhoben wie aufnahmefaumlhig ein Benutzer in einer bestimmten Gefuumlhlssituation ist Der Bot reagiert situationsabhaumlngig und unterschiedlich auf Stress Wut oder Humor

Ein oft angefuumlhrtes Beispiel fuumlr das Leistungsspekt-rum von Bots ist die Hotel-Flug-Buchung In diesem Fall werden Reservierungs- und Buchungs-E-Mails ausgewertet und multimediale Inhalte als Information zu Hotels in der Naumlhe des Benutzers eingeblendet [12] Proaktive Nachrichten sind hier eine Moumlglichkeit den Bot selbst die Konversation auf ein bestimmtes Ereignis hin eroumlffnen zu lassen z B bdquoLieber Benutzer an deinem aktuellen Standort hat gerade ein Wellnesshotel eroumlff-net Soll ich dir ein Zimmer reservierenldquo

Ein Blick in die Programmierung Da Bots untereinander kompatibel programmierbar sind und je nach Anbieter Schnittstellen zum Sprachas-sistenten des Anbieters haben ergeben sich Potenziale in der Steuerung von externer Hardware Dies zeigt bei-spielsweise das Projekt bdquoInternet of Stranger Thingsldquo von Pete Brown bei dem eine Lichterkette zu Demonst-rationszwecken uumlber einen Bot gesteuert wird [13] Die Moumlglichkeiten der Bot-Einbindung in stimmgesteuerte Hardware schlieszligen auch intelligente Beleuchtungs- und Hausautomatisierungssysteme wie Philips Hue bis hin zu personalisierbaren Robotern wie Jibo [14] ein es geht also nicht nur um die Anbindung von Stand-alone-Lautsprechern wie Alexa Echo

Vorbereitungen fuumlr die Bot-EntwicklungUm einen Bot zu entwickeln ist der leichteste Weg die Registrierung bei einem Bot-Framework-Anbieter Die-ser stellt einen (oder mehrere) Server der die Benutzer-anfragen und Bot-Antworten uumlber Internetverbindung verarbeitet Dafuumlr ist zunaumlchst ein Benutzeraccount bei einem der Anbieter zu eroumlffnen Soll zum Beispiel fuumlr das Microsoft Bot Framework entwickelt werden muss ein Microsoft-Account erstellt werden mit dem dann ein Microsoft-Azure-Account zu erstellen ist Oft wird bei der Registrierung eine guumlltige Zahlungsinformation verlangt z B eine Kreditkartennummer Anschlieszligend ist zumeist weitere Software zu installieren um den Bot lokal debug-gen zu koumlnnen Dazu gehoumlrt eine Entwicklungsumgebung die vom Framework verlangt wird (z B Visual Studio oder ein Extratool wie der Bot-Framework-Emulator ndash beide sind fuumlr die Nutzung des Microsoft Bot Frameworks noumltig) Kenntnisse von Tunneling-Software wie ngrok koumlnnen sich ebenfalls als nuumltzlich erweisen falls der Bot hinter einem Unternehmens-Proxy laufen soll

Sind diese Schritte abgeschlossen sind die Grund-zutaten fuumlr einen (Pizza-)Bot vorhanden Es ist jedoch moumlglich weitere Frameworks einzubinden etwa ein AI-Framework damit der Bot anhand der Konversation intelligent reagiert In Bezug auf den Programmierauf-wand ist der efzienteste Weg Frameworks des gleichen Anbieters zu nutzen Daneben besteht noch die Moumlg-lichkeit Drittanbieterdienste uumlber eine programmtech-nische Schnittstelle einzubinden Fuumlr jedes Framework das zusaumltzlich angeboten werden soll ist eine Registrie-rung erforderlich und gegebenenfalls eine weitere fuumlr die programmatische Schnittstelle

85wwwentwickler-magazinde Entwickler Magazin 12019

ChatbotsInternet of

Things

Oft ist es moumlglich den Bot auf verschiedenen soge-nannten Kanaumllen zu vertreiben Ein Sprachassistent waumlre ein solcher Kanal aber auch Kommunikations-netzwerke wie Skype Twitter Slack Microsoft Ofce Telegram oder Facebook Messenger Ist eine Veroumlf-fentlichung des Bots auf einem oder mehreren Kanaumllen (welche verfuumlgbar sind ist anbieterabhaumlngig) geplant dann ist fuumlr das Entwickeln und Testen hier ein Account noumltig

Drei Anwendungsoptionen des Microsoft Bot FrameworksIm Folgenden werden drei Anwendungsoptionen des Microsoft Bot Frameworks vorgestellt die beim bereits beschriebenen Prototyp fuumlr die innobis Verwendung fanden In allen Faumlllen geht es darum dem Bot das Di-alogmuster nach dem er arbeiten soll zur Verfuumlgung zu stellen

bull FormFlow ein JSON-Format fuumlr einen geregelten und vordenierten Ablauf (das sich vor allem eignet um formularaumlhnliche Daten abzufragen)

bull DirectLine eine programmatische Schnittstelle zur Einbindung von Drittanbieterdiensten (z B eines Sprachassistenten) und

bull LUIS-Service ein AI-Framework zur Einbindung des Language Understanding Intelligence Service von Mi-crosoft

Um einem Bot den Dialog per FormFlow vorzuge-ben muss eine JSON-Datei mit vordenierten Fra-gen und Antworten erstellt werden die spaumlter in den Bot geladen wird Bei FormFlow gibt es verschiedene Implementierungsmoumlglichkeiten Es ist moumlglich eine

Datenhaltungsklasse mit Attributen fuumlr jedes vorge-schriebene Eingabefeld zu implementieren oder auch diese aus einer JSON-Datei generieren zu lassen die ein bestimmtes Muster erfuumlllt (siehe Listing 1 mit ei-nem Auszug aus der FormFlow-Datei die im innobis-Prototyp Verwendung fand) In den Properties sind die abzufragenden Werte deniert wobei die Frage mithilfe eines amp-Platzhalters fuumlr den Property-Namen ergaumlnzt ist Erforderliche Eingaben sind zu Beginn zu kennzeichnen Eingebettete regulaumlre Ausdruumlcke bieten auszligerdem die Moumlglichkeit die Benutzereingabe zu pruumlfen Daruumlber hi-naus ist es moumlglich Validierungsfunktionen in JSON zu benennen Der Aufruf des JSON-Skripts kann uumlber Da-teilesezugriffe in C wie in Abbildung 1 gezeigt erfolgen

Es ist hierbei moumlglich Validierungs-Regexe zu de-nieren numerische Intervalle fuumlr die Validierung mitzureichen oder die Namen von Validierungsme-thoden mitzugeben Zudem ist es notwendig je nach

Abb 1 In C aufgerufenes JSON-Skript (Screenshot)

Listing 1 Codeauszug aus der JSON-Datei die den FormFlow-Dialog generiert

References [ LuisBotdll ] Imports [ LuisBotResource ] type object Templates NotUnderstood Patterns [ I didnt understand 0 Try again I dont know about 0 ] properties

Vorname Before [ Message [ Welcome to the ESF_2 FormBot ]

] Prompt Patterns [ What is your given name ]

type [ string null ]

Nachname

Prompt Patterns [ And your surname ]

type [ string

null ]

Hausnummer

Prompt Patterns [ What is your street number ]

type [ string null ]

hellip

86 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

verwendeter Sprache des Benutzers unterschiedliche JSON-Dialoge anzulegen (oder diese mit einem Uumlber-setzungsframework uumlbersetzen zu lassen)

Abhaumlngig davon welchen Kanal der Benutzer waumlhlt um mit dem Bot in Kontakt zu treten bieten sich zusaumltz-liche spezielle Eigenschaften des Kanals Mit einer Text-zu-Sprache-Generierung die ein integraler Bestandteil von sprachfaumlhigen Bots ist gibt es die Option einen Te-lefondialog in der favorisierten Sprache des Benutzers zu generieren Abbildung 2 zeigt ein Beispiel eines Skype-Dialogs zwischen Bot und Benutzer

Eine DirectLine-Verbindung wird ndash oberaumlch-lich betrachtet ndash als WebSocket-Verbindung oder als HTTP-GET-Anfrage des Clients mittels eines Hand-shake-Verfahrens aufgebaut Um sie zu nutzen ist ein DirectLine-Schluumlssel fuumlr den Bot zu generieren Fuumlr ver-tiefende Informationen eignet sich die Microsoft-Doku-mentation [15] oder Robert Osbornes Blog in dem er

beschreibt wie einer Alexa-Faumlhigkeit eine DirectLine-Schnittstelle hinzufuumlgt wird [16]

DirectLine kann im Microsoft Bot Framework genutzt werden um einen LUIS Service anzubinden Das ist ein AI-Framework Der Wunsch AI-Frameworks einbinden zu wollen wird anhand von Benutzeranfragen wie bdquoIch moumlchte die Unternehmensangaben im ESF_2-Formular ausfuumlllenldquo deutlich Es gibt hierbei zahlreiche Moumlglich-keiten wie ein Benutzer diese Anfrage (synonym) for-mulieren koumlnnte aber jedes Mal ist es die Aufgabe des Bots anhand der Worte zu erkennen dass er mit einem bdquoWillkommenldquo antworten soll

Der LUIS Service ermoumlglicht es dem Bot auf moumlg-lichst natuumlrliche Art und Weise mit Menschen zu kom-munizieren Er wird von Microsoft als Cloud-Loumlsung auf einer AI-Plattform angeboten Der Bot analysiert die gesprochene Sprache und leitet die Anfrage dann an LUIS weiter LUIS analysiert die Frage und ermittelt die Intention Um LUIS Services einzubinden muss die Intention des Benutzers auf der AI-Plattform bekannt sein Daruumlber hinaus helfen zusaumltzliche Parameter die die Intention erlaumlutern Die Intention eines Benutzers waumlre zum Beispiel eine Pizza zu bestellen Ein dazuge-houmlriger Parameter waumlre dann etwa die Groumlszlige der Pizza Die Schwierigkeit liegt in diesem Fall darin dass Men-schen ihren Wunsch nach einer Pizza in einer bestimm-ten Groumlszlige unterschiedlich ausdruumlcken Die Aufgabe von LUIS ist es daher die Intention und moumlglichst alle not-wendigen Parameter zu erfassen und zuruumlckzuliefern Microsoft arbeitet daran auch Stimmungen im gespro-chenen Text zu erkennen und diese dem Bot ebenfalls zu vermitteln

LUIS berechnet wie wahrscheinlich es ist dass eine bestimmte Aumluszligerung einer bestimmten Intention ent-spricht So wird bei der Benutzeranfrage bdquoBitte hilf mirldquo bestimmt dass es sich mit einer Wahrscheinlich-keit von 99 Prozent um das Beduumlrfnis handelt den Hil-fetext zu sehen (UtilitiesHelp) Jedes Mal wenn eine Anfrage bei LUIS eintrifft werden alle vom Entwick-ler denierten Intentionen danach bewertet wie wahr-scheinlich sie sind Umgekehrt wird ebenfalls berechnet dass zur Aumluszligerung bdquoBitte hilf mirldquo die Intention bdquoGruumlszlige michldquo (Greeting) nur zu 001 Prozent passend ist Waumlre allerdings bdquoGruumlszlige michldquo faumllschlicherweise mit 99 Pro-zent bewertet worden waumlre eine Korrektur erforderlich Diese erfolgt entweder manuell uumlber die LUIS-Website oder uumlber einen programmatischen LUIS-API-Aufruf

In der Entwicklungsumgebung legt der Entwickler dann nur noch fest welche Aktion auf welche Intention folgt Wurde die Intention bdquoGruumlszlige michldquo (Abb 3 un-ter Greeting) erkannt wird ein Gruszlig als Post uumlber die DirectLine-Verbindung geschickt Der Bot-Framework-Server benachrichtigt daraufhin den oder die Teilneh-mer der Konversation uumlber die neue Nachricht Der Kontext enthaumllt dabei die Metadaten zur Konversation (z B wer die Dialogpartner sind)

Abbildung 4 zeigt die Situation im Bot wenn einer Aumluszligerung keine Intention zugeordnet werden konnte

Abb 3 Kor-rekturmoumlg-lichkeiten

im LUISai-Webportal

(Screen-shot)

Abb 2 Skype-Dialog zwischen Bot und Benutzer (Screenshot)

18 ndash 20 Februar 2019 | Muumlnchen2 ndash 4 April | Berlin

wwwdevops-trainingde

Das eigentlich junge Thema Docker wird mehr und mehr zu einem Bestandteil der Infrastruktur von kleinen Start-ups bis zu groszligen Firmen Sobald von DevOps oder Microservices gesprochen wird wird oft im gleichen Atemzug von Docker gesprochen Aber was hat es mit diesem Docker auf sich Dem vielleicht entscheidendem Baustein die IT zu revolutionieren Im neuen DevOps Docker Camp mit Erkan Yanar erhalten Sie von einem der bekanntesten deutschsprachigen Docker-Experten einen praktischen Einstieg in Docker Sie lernen die Kon-zepte von Docker und die darauf aufbauenden Infra-

strukturen umfassend kennen Schritt fuumlr Schritt bauen Sie eine eigene Infrastruktur fuumlr und mit Docker auf Es werden eigene Applikationen in Docker Images verpackt und eigene Microservices ausgerollt die automatisiert geloggt und gemonitort werden Am Ende des intensi-ven Docker-Trainings werden Sie einschaumltzen koumlnnen ob und wie Docker fuumlr Sie selbst relevant und nutzbrin-gend einzusetzen ist Der Schwerpunkt liegt im klassi-schen Aufbau von Docker auf Linux Die Verwendung von Docker auf und mit Microsoft wird aber erlaumlutert und kurz vorgefuumlhrt

Veranstalter

Praumlsentiert von

Docker_Camp DockerCamp DevOpsDockerCamp

Das Docker-Training mit Erkan Yanar

Jetzt Teilnahme sichern

88 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Die Nachricht wird an den LUIS-Dialog verwiesen und dieser kommuniziert im Hintergrund mit dem LUIS API Dieses meldet zuruumlck dass bdquoNoneldquo der wahr-scheinlichste Beweggrund der Anfrage war Daraufhin reagiert der Bot mit durch den Entwickler festgelegten Maszlignahmen In diesem Beispiel waumlhlt der Bot aus ei-ner Liste mit moumlglichen Variationen aus und fordert zur erneuten Eingabe auf Die Liste selektiert zufaumlllig den Wert bdquoDiese Antwort verstehe ich nichtldquo (Listing 2) Die moumlglichen Antworten sind programmatisch oder uumlber den JSON-Aufbau zu denieren

Mit der Einbindung von LUIS wird ein erweitertes Navigationskonzept geschaffen das die FormFlow-Na-vigationskommandos ergaumlnzt Es eignet sich besonders

fuumlr Bereiche in denen nicht klar ist welches Anliegen der Benutzer hat also etwa in einer Hilferubrik oder auf einer Kontaktseite Sinnvoll ist die Nutzung auch bei FAQs wobei die meisten Anbieter fuumlr diesen Be-reich auch sogenannte QA-Frameworks (Question-and-Answer-Frameworks) anbieten

Sicherheitsbedenken technische Schwierigkeiten und gesellschaftliche AkzeptanzEine der groumlszligten Herausforderungen im Bereich Bot-Programmierung ist das Thema Sicherheit Da saumlmt-liche Kommunikation uumlber das Internet laumluft ndash sofern keine Anbieter wie Snipsai im Einsatz sind [17] die mit lokal analysierender AI arbeiten ndash sind die ausge-tauschten Informationen exponiert Das wird durch eine Verschluumlsselung oder andere meist kostenpichtige Si-cherheitsmechanismen der Anbieter kompensiert Ver-antwortlich fuumlr die Funktionalitaumlt Verfuumlgbarkeit und Sicherheit sind laut den AGB verschiedenster Anbieter die Entwickler bzw Produkteigner da die Anbieter le-diglich eine Betaversion zur Verfuumlgung stellen Das be-deutet dass fuumlr die unternehmerische Nutzung in der EU ein Service Level Agreement notwendig ist was auch aus datenschutzrechtlicher Sicht empfehlenswert ist

Wenn der Bot wie im innobis-Projekt in einem Sprachassistenten integriert ist ergeben sich zudem technische Abhaumlngigkeiten vom Anbieter Es ist fuumlr den Bot-Entwickler nicht moumlglich spezielle Verhaltenswei-sen des benutzten Sprachassistenten zu beeinussen (so schloss sich etwa die Anwendung wenn der Benutzer auszligerhalb des Cortana Canvas klickte) Probleme gab es auch mit zu schnellen Ein- und Ausblendungen der

Abb 4 LUIS-Dialog wenn einer Aumluszligerung keine Intention zugeordnet werden konn-te (Screenshot)

Listing 2 Codeauszug aus den Nachbearbeitungsroutinen zur erkannten LUIS-Intention

[Serializable] public class BasicLuisDialog LuisDialogltobjectgt

ltsummarygt Der Konstruktor verwendet Infos aus der webcong um sich gegenuumlber dem LUIS-Sprachmodell-API zu authentizieren ltsummarygt public BasicLuisDialog() base(new LuisService(new LuisModelAttribute(CongurationManagerAppSettings[LuisAppId] CongurationManagerAppSettings[LuisAPIKey])))

ltsummarygt Die ldquokeine-Intentionrdquo-Intention ist die Intention die die AI erkennt wenn sie sich nicht sicher ist welche Intention gemeint ist ltsummarygt ltreturnsgtltreturnsgt [LuisIntent()]

[LuisIntent(None)] public async Task NoneIntent(IDialogContext context LuisResult result) string luisno = Resource1LuisNonesorry Didnrsquot understandhellip await contextPostAsync(Resource1LuisNone+$resultQuery) contextWait(MessageReceived)

ltsummarygt Diese Intention ist beispielhaft fuumlr eine selbstimplementierte Intention Damit sie auf diese Kundenanfrage antwortet muss die Aumluszligerung des Kunden von der AI als aumlhnlich zu einer bekannten Intention im Web Service als am houmlchsten wahrscheinlich erkannt werden ltsummarygt ltreturnsgtltreturnsgt [LuisIntent(Greeting)] public async Task GreetingIntent(IDialogContext context LuisResult result) await contextPostAsync(ResourceResource1regionalGreeting) contextWait(MessageReceived)

ARCHITEKTURWELTEN REAL UND VIRTUELL

wwwentwickler-pressde baukunst-fuer-softwarearchitekten

Jan Peuker

Baukunst fuumlr Softwarearchitekten

Was Software mit Architektur zu tun hat

288 SeitenISBN 978-3-86802-118-9

Preis 2490 euro (D)2560 euro (A)

ChatbotsInternet of

Things

Fragen und Timeouts Daruumlber hinaus war es nicht moumlglich der Cortana-Stimmerkennung Sonderzeichen wie oder π zu diktieren Die Spracherkennung hat generell Schwierigkeiten kurze und sprachlich gleich oder aumlhnlich klingende Antworten (Homophone) des FormFlow zu unterscheiden Es war zum Beispiel nicht moumlglich den Invokationsnamen bdquoLuisBotldquo zu diktie-ren Dies wurde unterschiedlich als bdquoluis potldquo oder bdquole-wis botldquo fehlinterpretiert Dieses Problem duumlrfte auch andere (deutsche) Produkt- Firmen- und Eigennamen betreffen Als Problemloumlsung konnten kanalspezische Angaben des Benutzers herangezogen werden Es erwies sich als moumlglich nach einer expliziten Zustimmung des Benutzers die Kontakt- Orts- und Benutzerdaten auszu-werten Seltene Vornamen oder Familiennamen koumlnnen auf diese Weise uumlbernommen werden ohne dass der Be-nutzer sie diktieren muss

Letztlich ist auch die Nutzerakzeptanz fuumlr Bots in Deutschland eine Herausforderung fuumlr Unternehmen Selbst in der Generation die als bdquoDigital Nativesldquo gilt gibt es Benutzer die bislang wenig mit Sprachunterstuumlt-zung gearbeitet haben bzw Probleme haben erlernte Konzepte wie etwa die Diktierfunktion in WhatsApp auf andere Produkte zu uumlbertragen Laut dem Online-portal fuumlr Statistik Statista GmbH haben 2016 nur etwa 25 Millionen von rund 80 Millionen Einwohnern in Deutschland angegeben bereits einen Sprachassistenten

genutzt zu haben [18] Es bleibt also eine Herausfor-derung mit dem Wachstum in dieser Branche Schritt zu halten den das Marktforschungsinstitut Gartner Inc fuumlr dialogunterstuumltzende Assistenten [19] genauso vor-hersagt wie den Zwei-Billionen-Umsatz fuumlr intelligente Lautsprecher fuumlr 2020 [20]

Anbieter und ProdukteEinen guten Uumlberblick uumlber die Produkte und Anbieter auf dem Markt bietet die Website von Predictive Analy-sis [21] Dort werden neben den multinationalen Kon-zernen und ihren Produkten auch kleinere Unternehmen und ihre Loumlsungen vorgestellt und ausgewertet Generell laumlsst sich hierbei sagen dass Google mit seinem Google Assistant uumlber die meisten Nutzer weltweit verfuumlgt Auch in der Praumlzision der Spracherkennung ist Google weiter vorangeschritten als beispielsweise die Microsoft- oder Amazon-Produkte Apple dagegen liegt in Bezug auf die Praumlzision zwar hinter Google aber noch vor Mi-crosoft und Amazon Wie die Slideshow von Konstantin Savenkov Intento Inc bdquoAspect Natural Lan guage Un-derstandingldquo zeigt [22] ist auch IBM mit seiner Wat-son ai- Plattform eine nicht zu unterschaumltzende Groumlszlige was Performanz ab einer gewissen Datensatzmenge angeht Die Untersuchung die Savenkov dazu durch-gefuumlhrt hat zeigt die Staumlrken und Schwaumlchen der fuumlnf groumlszligten Bot-Anbieter auf

Anzeige

90 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Es gibt neben den kommerziellen Anbietern im Uumlbri-gen auch zwei Open-Source-Projekte Lucida [23] und Athena [24] die sich mit kuumlnstlicher Intelligenz und sprach- bzw bildverarbeitenden dialoggestuumltzten Syste-men beschaumlftigen Lucida hat allerdings recht einschraumln-kende Systemvoraussetzungen weil es nur auf zwei bestimmten Ubuntu-Versionen installierbar ist Dieses Problem kann in VirtualBox umgangen werden sofern ein anderes Betriebssystem auf 64-Bit-Basis verfuumlgbar ist Lucida erfordert einen Arbeitsspeicher von mehr als 6 GB RAM Athena zielt darauf die Ergebnisse von Siri Alexa und Co zu erreichen und zu erweitern Es ist modular aufgebaut und bietet momentan Module fuumlr Musikwiedergabe Social Media (Twitter) und Hausau-tomation Athena ist in Python programmiert

FazitSprachgestuumltzte Unterhaltungen mit Bots weisen einen vielversprechenden Weg Strukturen im Unternehmen efzienter und effektiver zu machen Zudem bieten sie die Moumlglichkeit bisher nicht erreichte Benutzergruppen zu erschlieszligen Die datenschutzrechtlichen und sicher-heitskritischen Bedingungen koumlnnen durch Verschluumls-selungstechniken neue Authentizierungstechniken und Service Level Agreements geloumlst werden Nicht nur Fremdanbieterplattformen sondern auch eigene Systeme sind dank vorhandener Open-Source-Projek-te wie Athena nutzbar Dies lohnt sich weil Bots und der Handel mit Bot-faumlhigen Geraumlten eine zunehmen-de Verbreitung erfahren sodass es sogar denkbar ist dass Bot2Bot-Konversationen regulaumlr stattnden (auch Multi-Agent-Systeme genannt) Ein klassisches Beispiel hierfuumlr ist die Organisation von Terminen und z B die Bitte an einen Bot bdquoBitte Cortana unterhalte dich mal mit Siri von meinem Mann und mit Google Assistant von meiner Schwester und pruumlfe wann wir Zeit haben Pizza essen zu gehenldquo

Friederike Geissler Junior Consultant Development amp Integration Services bei der innobis AG hat im Unternehmen ihre Abschluss-arbeit zum Thema bdquoSprachassistenten in mobilen Bankanwendun-genldquo geschrieben Hierbei sind zwei Prototypen eine App und ein Bot entstanden die einen Benutzer durch einen Sprachassisten-

ten beim Ausfuumlllen eines Onlineformulars unterstuumltzen

[2] Nuance bdquoControl your computer voice with speed and accuracyldquo httpswwwnuancecomdragonhtmlstandardpage-mainpar_backgroundimage_copy

[3] Carlini N Wagner D bdquoAudio adversarial examples Targeted Attacks on Speech-to-Textldquo University of California 2018 httpsarxivorgpdf180101944pdf

[4] Song L Mittal P bdquoInaudible Voice Commandsldquo Princeton University 2017 httpsarxivorgpdf170807238pdf

[5] Feng H Fawaz K Shin K bdquoContinuous Authentication for Voice Assistants Computer Science ndash Cryptography and Securityldquo httpsarxivorgabs170104507

[6] bdquoBots fuumlr die Bank Die Zukunft der Kommunikationldquo httpscustomersmicrosoftcomen-usstoryducia-gadit-cognitive-services-cortana-azure-powerbi-banking-germany

[7] Okamoto S Scerri P Sycara K bdquoToward an understanding of the impact of software personal assistants on human organizationsldquo httpdxdoiorg10114511606331160745

[8] Haslam R bdquoThe bots are coming ndash 5 essential things ntech rms need to knowldquo httpsbanknxtcom56496bots-5-essential-ntech

[9] Lunden I bdquoRise of the bots Techcrunchldquo httpstechcrunchcom20160407rise-of-the-bots-x-ai-raises-23m-more-for-amy-a-bot-that-arranges-appointmentsguccounter=1

[10] LuisBot Innobis AG httpsgithubcomfr6087Hoermirzu

[11] Vincent J bdquoTwitter taught Microsoft AIrsquos Chatbot to be a racist asshole in less than a dayldquo httpswwwthevergecom201632411297050tay-microsoft-chatbot-racist

[12] Microsoft Botbuilder Sample Projects httpsgithubcomMicrosoftBotBuilder-Samples

[13] Brown P bdquoInternet of Stranger Thingsldquo httpsblogswindowscombuildingapps20161031the-internet-of-stranger-things-wall-part-1-introduction-and-remote-wiring

[14] Jibo httpswwwjibocom

[15] Key concepts of DirectLine API 30 Microsoft Botframework documentation httpsdocsmicrosoftcomen-usazurebot-servicerest-apibot-framework-rest-direct-line-3-0-conceptsview=azure-bot-service-30

[16] Osborne R bdquoConnecting Alexa to a Botframework Chatbotldquo httpswwwrobinosbornecouk20161219connecting-alexa-to-a-botframework-chatbot

[17] Snips Platform Documentation httpsnipsai

[18] Digital Assistants Statista dossier httpsdestatistacomstatistikdatenstudie620225umfragenutzung-von-sprachassistenten-in-deutschland

[19] Love J bdquoGartnerrsquos top 10 predictions for 2016 and the lsquopost-apprsquo eraldquo httpswwwitworldcanadacomarticlegartner-top-ten-predictions-for-2016-and-post-app-era377594

[20] bdquoGartner Says Worldwide Spending on VPA-Enabled Wireless Speakers Will Top $2 Billion by 2020ldquo httpswwwgartnercomnewsroomid3464317

[21] Top 22 intelligent personal assistants or automated personal assistants PredictiveAnalysis httpswwwpredictiveanalyticstodaycomtop-intelligent-personal-assistants-automated-personal-assistantscontent-anchor

[22] Savenkov K bdquoNLU Intent Detectionldquo Intento 2017 httpswwwslidesharenetKonstantinSavenkovnlu-intent-detection-benchmark-by-intento-august-2017

[23] Lucida httpsgithubcomclaritylablucida

[24] Athena httpsgithubcomrcbyronhey-athena-client

Mit Lucida und Athena gibt es zwei Open-Source-Projekte die sich mit

kuumlnstlicher Intelligenz beschaumlftigen

Links amp Literatur

[1] Ng Andrew httpstwittercomAndrewYNgstatus809579698883727360

Trainings fuumlr Softwarearchitekten mit iSAQB-Zerti zierung

wwwsoftware-architecture-campde

Das Camp bietet Ihnen eine fundierte und pragmatische Einfuumlhrung in Software-architektur mit hohem Uumlbungsanteil

Die verschiedenen Module des Advanced Levels vertiefen Ihre Kenntnisse und Faumlhig-keiten in den Bereichen Technik Methodik und Kommunikation

Praumlsentiert von in Kooperation mit iSAQBreg

Veranstalter

Jet983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555

983555983555si983579983579983555983555983555983555983579983555983555983555983579983579983579983579te983579983579983579983555

Mit Zerti zierung zum

Mit Zerti zierung zum

bdquoCerti ed Professional for Software Architecture ndash Foundation Level (CPSA-F)ldquo

bdquoCerti ed Professional for Software Architecture ndash Advanced Level (CPSA-A)ldquo

Mit Zerti zierung zum bdquoCerti ed Professional for Software Architectureldquo iSAQBreg

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde

Page 4: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

84 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

erforschen [10] Der entstandene Bot loumlst fuumlr das Un-ternehmen die Aufgabe Daten eines Benutzers fuumlr ein Foumlrdermittelformular des Europaumlischen Sozialfonds abzufragen Der Prototyp ist in C programmiert und basiert auf dem Microsoft Bot Framework Dieses er-moumlglicht ndash wie viele andere Bot Frameworks ndash ein kos-tenloses Hosting (in diesem Fall in Azure) Folgende Anforderungen galten fuumlr den Prototyp Spracherken-nung nach dem Hands-off-Prinzip Multilingualitaumlt plattformuumlbergreifende Programmierung die Einbin-dung eines AI-Service sowie die Moumlglichkeit Dateien z B Quittungen hochzuladen

Nach einer ersten Pruumlfung des Vorhabens zeigte sich einerseits dass die Anforderungen realisierbar sind Im Usability-Test wurde jedoch andererseits auch deut-lich dass Benutzer zoumlgern einem Bot persoumlnliche Da-ten mitzuteilen Ein weiteres Problem war die geplante Fusion des Bots in eine sogenannte Cortana-Faumlhigkeit Cortana-Faumlhigkeiten sind vergleichbar mit Erweiterun-gen von Cortana durch Drittanbieter So gibt es in den USA etwa die Cortana-Faumlhigkeit bdquoDominorsquos Pizzaldquo die es einem Cortana-Benutzer ermoumlglicht uumlber den Dialog mit Cortana Pizza bei der Firma Dominorsquos zu bestellen Das Problem mit der Integration des Bots als Cortana-Faumlhigkeit ist dass sie fuumlr Geraumlte mit deutschen Sprach-einstellungen noch nicht freigegeben sind

Fuumlr den Prototyp wurde der Microsoft AI Service LUIS (Language Understanding Intelligence Service) eingesetzt LUIS ist uumlber ein API vollautomatisch nutz-bar Wie viele andere auf Entitaumlten und Intentionen ba-sierende Web Services auf dem Gebiet AI scheitert er allerdings bei unbekannten Aumluszligerungen in der Analy-se Ein groszliges Potenzial bietet jedoch die Ansammlung von Kundenanliegen die ein Bot auswertet Wichtig ist dabei die fortwaumlhrende Kontrolle und Wartung durch den Bot-Entwickler weil ansonsten gegebenenfalls fal-sche Zusammenhaumlnge erlernt werden Dies zeigte sich in Googles Prototyp bdquoTayldquo dessen Benutzern es gelang dem Bot rassistische und beleidigende Aumluszligerungen an-zutrainieren [11]

Die Erfahrungen aus der Praxis zeigen dass die Ein-satzmoumlglichkeiten von Bots fuumlr Unternehmen durchaus lukrativ sein koumlnnen selbst wenn die erhobenen Daten nicht direkt von den Benutzern kommen

Das Leistungsspektrum eines BotsDem Einsatzgebiet von Bots sind quasi keine Grenzen gesetzt Einige Bot Frameworks wie SILVIA unter-stuumltzen Avatare um dem Benutzer ein moumlglichst rea-listisches Kommunikationsgefuumlhl zu vermitteln und nonverbale Gesten wie ein Laumlcheln Stirnrunzeln oder Schulterzucken zum Ausdruck zu bringen Das ist be-sonders im Zusammenhang mit emotionaler Intelligenz sinnvoll Bei der Auswertung von emotionaler Intelli-genz wird erhoben wie aufnahmefaumlhig ein Benutzer in einer bestimmten Gefuumlhlssituation ist Der Bot reagiert situationsabhaumlngig und unterschiedlich auf Stress Wut oder Humor

Ein oft angefuumlhrtes Beispiel fuumlr das Leistungsspekt-rum von Bots ist die Hotel-Flug-Buchung In diesem Fall werden Reservierungs- und Buchungs-E-Mails ausgewertet und multimediale Inhalte als Information zu Hotels in der Naumlhe des Benutzers eingeblendet [12] Proaktive Nachrichten sind hier eine Moumlglichkeit den Bot selbst die Konversation auf ein bestimmtes Ereignis hin eroumlffnen zu lassen z B bdquoLieber Benutzer an deinem aktuellen Standort hat gerade ein Wellnesshotel eroumlff-net Soll ich dir ein Zimmer reservierenldquo

Ein Blick in die Programmierung Da Bots untereinander kompatibel programmierbar sind und je nach Anbieter Schnittstellen zum Sprachas-sistenten des Anbieters haben ergeben sich Potenziale in der Steuerung von externer Hardware Dies zeigt bei-spielsweise das Projekt bdquoInternet of Stranger Thingsldquo von Pete Brown bei dem eine Lichterkette zu Demonst-rationszwecken uumlber einen Bot gesteuert wird [13] Die Moumlglichkeiten der Bot-Einbindung in stimmgesteuerte Hardware schlieszligen auch intelligente Beleuchtungs- und Hausautomatisierungssysteme wie Philips Hue bis hin zu personalisierbaren Robotern wie Jibo [14] ein es geht also nicht nur um die Anbindung von Stand-alone-Lautsprechern wie Alexa Echo

Vorbereitungen fuumlr die Bot-EntwicklungUm einen Bot zu entwickeln ist der leichteste Weg die Registrierung bei einem Bot-Framework-Anbieter Die-ser stellt einen (oder mehrere) Server der die Benutzer-anfragen und Bot-Antworten uumlber Internetverbindung verarbeitet Dafuumlr ist zunaumlchst ein Benutzeraccount bei einem der Anbieter zu eroumlffnen Soll zum Beispiel fuumlr das Microsoft Bot Framework entwickelt werden muss ein Microsoft-Account erstellt werden mit dem dann ein Microsoft-Azure-Account zu erstellen ist Oft wird bei der Registrierung eine guumlltige Zahlungsinformation verlangt z B eine Kreditkartennummer Anschlieszligend ist zumeist weitere Software zu installieren um den Bot lokal debug-gen zu koumlnnen Dazu gehoumlrt eine Entwicklungsumgebung die vom Framework verlangt wird (z B Visual Studio oder ein Extratool wie der Bot-Framework-Emulator ndash beide sind fuumlr die Nutzung des Microsoft Bot Frameworks noumltig) Kenntnisse von Tunneling-Software wie ngrok koumlnnen sich ebenfalls als nuumltzlich erweisen falls der Bot hinter einem Unternehmens-Proxy laufen soll

Sind diese Schritte abgeschlossen sind die Grund-zutaten fuumlr einen (Pizza-)Bot vorhanden Es ist jedoch moumlglich weitere Frameworks einzubinden etwa ein AI-Framework damit der Bot anhand der Konversation intelligent reagiert In Bezug auf den Programmierauf-wand ist der efzienteste Weg Frameworks des gleichen Anbieters zu nutzen Daneben besteht noch die Moumlg-lichkeit Drittanbieterdienste uumlber eine programmtech-nische Schnittstelle einzubinden Fuumlr jedes Framework das zusaumltzlich angeboten werden soll ist eine Registrie-rung erforderlich und gegebenenfalls eine weitere fuumlr die programmatische Schnittstelle

85wwwentwickler-magazinde Entwickler Magazin 12019

ChatbotsInternet of

Things

Oft ist es moumlglich den Bot auf verschiedenen soge-nannten Kanaumllen zu vertreiben Ein Sprachassistent waumlre ein solcher Kanal aber auch Kommunikations-netzwerke wie Skype Twitter Slack Microsoft Ofce Telegram oder Facebook Messenger Ist eine Veroumlf-fentlichung des Bots auf einem oder mehreren Kanaumllen (welche verfuumlgbar sind ist anbieterabhaumlngig) geplant dann ist fuumlr das Entwickeln und Testen hier ein Account noumltig

Drei Anwendungsoptionen des Microsoft Bot FrameworksIm Folgenden werden drei Anwendungsoptionen des Microsoft Bot Frameworks vorgestellt die beim bereits beschriebenen Prototyp fuumlr die innobis Verwendung fanden In allen Faumlllen geht es darum dem Bot das Di-alogmuster nach dem er arbeiten soll zur Verfuumlgung zu stellen

bull FormFlow ein JSON-Format fuumlr einen geregelten und vordenierten Ablauf (das sich vor allem eignet um formularaumlhnliche Daten abzufragen)

bull DirectLine eine programmatische Schnittstelle zur Einbindung von Drittanbieterdiensten (z B eines Sprachassistenten) und

bull LUIS-Service ein AI-Framework zur Einbindung des Language Understanding Intelligence Service von Mi-crosoft

Um einem Bot den Dialog per FormFlow vorzuge-ben muss eine JSON-Datei mit vordenierten Fra-gen und Antworten erstellt werden die spaumlter in den Bot geladen wird Bei FormFlow gibt es verschiedene Implementierungsmoumlglichkeiten Es ist moumlglich eine

Datenhaltungsklasse mit Attributen fuumlr jedes vorge-schriebene Eingabefeld zu implementieren oder auch diese aus einer JSON-Datei generieren zu lassen die ein bestimmtes Muster erfuumlllt (siehe Listing 1 mit ei-nem Auszug aus der FormFlow-Datei die im innobis-Prototyp Verwendung fand) In den Properties sind die abzufragenden Werte deniert wobei die Frage mithilfe eines amp-Platzhalters fuumlr den Property-Namen ergaumlnzt ist Erforderliche Eingaben sind zu Beginn zu kennzeichnen Eingebettete regulaumlre Ausdruumlcke bieten auszligerdem die Moumlglichkeit die Benutzereingabe zu pruumlfen Daruumlber hi-naus ist es moumlglich Validierungsfunktionen in JSON zu benennen Der Aufruf des JSON-Skripts kann uumlber Da-teilesezugriffe in C wie in Abbildung 1 gezeigt erfolgen

Es ist hierbei moumlglich Validierungs-Regexe zu de-nieren numerische Intervalle fuumlr die Validierung mitzureichen oder die Namen von Validierungsme-thoden mitzugeben Zudem ist es notwendig je nach

Abb 1 In C aufgerufenes JSON-Skript (Screenshot)

Listing 1 Codeauszug aus der JSON-Datei die den FormFlow-Dialog generiert

References [ LuisBotdll ] Imports [ LuisBotResource ] type object Templates NotUnderstood Patterns [ I didnt understand 0 Try again I dont know about 0 ] properties

Vorname Before [ Message [ Welcome to the ESF_2 FormBot ]

] Prompt Patterns [ What is your given name ]

type [ string null ]

Nachname

Prompt Patterns [ And your surname ]

type [ string

null ]

Hausnummer

Prompt Patterns [ What is your street number ]

type [ string null ]

hellip

86 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

verwendeter Sprache des Benutzers unterschiedliche JSON-Dialoge anzulegen (oder diese mit einem Uumlber-setzungsframework uumlbersetzen zu lassen)

Abhaumlngig davon welchen Kanal der Benutzer waumlhlt um mit dem Bot in Kontakt zu treten bieten sich zusaumltz-liche spezielle Eigenschaften des Kanals Mit einer Text-zu-Sprache-Generierung die ein integraler Bestandteil von sprachfaumlhigen Bots ist gibt es die Option einen Te-lefondialog in der favorisierten Sprache des Benutzers zu generieren Abbildung 2 zeigt ein Beispiel eines Skype-Dialogs zwischen Bot und Benutzer

Eine DirectLine-Verbindung wird ndash oberaumlch-lich betrachtet ndash als WebSocket-Verbindung oder als HTTP-GET-Anfrage des Clients mittels eines Hand-shake-Verfahrens aufgebaut Um sie zu nutzen ist ein DirectLine-Schluumlssel fuumlr den Bot zu generieren Fuumlr ver-tiefende Informationen eignet sich die Microsoft-Doku-mentation [15] oder Robert Osbornes Blog in dem er

beschreibt wie einer Alexa-Faumlhigkeit eine DirectLine-Schnittstelle hinzufuumlgt wird [16]

DirectLine kann im Microsoft Bot Framework genutzt werden um einen LUIS Service anzubinden Das ist ein AI-Framework Der Wunsch AI-Frameworks einbinden zu wollen wird anhand von Benutzeranfragen wie bdquoIch moumlchte die Unternehmensangaben im ESF_2-Formular ausfuumlllenldquo deutlich Es gibt hierbei zahlreiche Moumlglich-keiten wie ein Benutzer diese Anfrage (synonym) for-mulieren koumlnnte aber jedes Mal ist es die Aufgabe des Bots anhand der Worte zu erkennen dass er mit einem bdquoWillkommenldquo antworten soll

Der LUIS Service ermoumlglicht es dem Bot auf moumlg-lichst natuumlrliche Art und Weise mit Menschen zu kom-munizieren Er wird von Microsoft als Cloud-Loumlsung auf einer AI-Plattform angeboten Der Bot analysiert die gesprochene Sprache und leitet die Anfrage dann an LUIS weiter LUIS analysiert die Frage und ermittelt die Intention Um LUIS Services einzubinden muss die Intention des Benutzers auf der AI-Plattform bekannt sein Daruumlber hinaus helfen zusaumltzliche Parameter die die Intention erlaumlutern Die Intention eines Benutzers waumlre zum Beispiel eine Pizza zu bestellen Ein dazuge-houmlriger Parameter waumlre dann etwa die Groumlszlige der Pizza Die Schwierigkeit liegt in diesem Fall darin dass Men-schen ihren Wunsch nach einer Pizza in einer bestimm-ten Groumlszlige unterschiedlich ausdruumlcken Die Aufgabe von LUIS ist es daher die Intention und moumlglichst alle not-wendigen Parameter zu erfassen und zuruumlckzuliefern Microsoft arbeitet daran auch Stimmungen im gespro-chenen Text zu erkennen und diese dem Bot ebenfalls zu vermitteln

LUIS berechnet wie wahrscheinlich es ist dass eine bestimmte Aumluszligerung einer bestimmten Intention ent-spricht So wird bei der Benutzeranfrage bdquoBitte hilf mirldquo bestimmt dass es sich mit einer Wahrscheinlich-keit von 99 Prozent um das Beduumlrfnis handelt den Hil-fetext zu sehen (UtilitiesHelp) Jedes Mal wenn eine Anfrage bei LUIS eintrifft werden alle vom Entwick-ler denierten Intentionen danach bewertet wie wahr-scheinlich sie sind Umgekehrt wird ebenfalls berechnet dass zur Aumluszligerung bdquoBitte hilf mirldquo die Intention bdquoGruumlszlige michldquo (Greeting) nur zu 001 Prozent passend ist Waumlre allerdings bdquoGruumlszlige michldquo faumllschlicherweise mit 99 Pro-zent bewertet worden waumlre eine Korrektur erforderlich Diese erfolgt entweder manuell uumlber die LUIS-Website oder uumlber einen programmatischen LUIS-API-Aufruf

In der Entwicklungsumgebung legt der Entwickler dann nur noch fest welche Aktion auf welche Intention folgt Wurde die Intention bdquoGruumlszlige michldquo (Abb 3 un-ter Greeting) erkannt wird ein Gruszlig als Post uumlber die DirectLine-Verbindung geschickt Der Bot-Framework-Server benachrichtigt daraufhin den oder die Teilneh-mer der Konversation uumlber die neue Nachricht Der Kontext enthaumllt dabei die Metadaten zur Konversation (z B wer die Dialogpartner sind)

Abbildung 4 zeigt die Situation im Bot wenn einer Aumluszligerung keine Intention zugeordnet werden konnte

Abb 3 Kor-rekturmoumlg-lichkeiten

im LUISai-Webportal

(Screen-shot)

Abb 2 Skype-Dialog zwischen Bot und Benutzer (Screenshot)

18 ndash 20 Februar 2019 | Muumlnchen2 ndash 4 April | Berlin

wwwdevops-trainingde

Das eigentlich junge Thema Docker wird mehr und mehr zu einem Bestandteil der Infrastruktur von kleinen Start-ups bis zu groszligen Firmen Sobald von DevOps oder Microservices gesprochen wird wird oft im gleichen Atemzug von Docker gesprochen Aber was hat es mit diesem Docker auf sich Dem vielleicht entscheidendem Baustein die IT zu revolutionieren Im neuen DevOps Docker Camp mit Erkan Yanar erhalten Sie von einem der bekanntesten deutschsprachigen Docker-Experten einen praktischen Einstieg in Docker Sie lernen die Kon-zepte von Docker und die darauf aufbauenden Infra-

strukturen umfassend kennen Schritt fuumlr Schritt bauen Sie eine eigene Infrastruktur fuumlr und mit Docker auf Es werden eigene Applikationen in Docker Images verpackt und eigene Microservices ausgerollt die automatisiert geloggt und gemonitort werden Am Ende des intensi-ven Docker-Trainings werden Sie einschaumltzen koumlnnen ob und wie Docker fuumlr Sie selbst relevant und nutzbrin-gend einzusetzen ist Der Schwerpunkt liegt im klassi-schen Aufbau von Docker auf Linux Die Verwendung von Docker auf und mit Microsoft wird aber erlaumlutert und kurz vorgefuumlhrt

Veranstalter

Praumlsentiert von

Docker_Camp DockerCamp DevOpsDockerCamp

Das Docker-Training mit Erkan Yanar

Jetzt Teilnahme sichern

88 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Die Nachricht wird an den LUIS-Dialog verwiesen und dieser kommuniziert im Hintergrund mit dem LUIS API Dieses meldet zuruumlck dass bdquoNoneldquo der wahr-scheinlichste Beweggrund der Anfrage war Daraufhin reagiert der Bot mit durch den Entwickler festgelegten Maszlignahmen In diesem Beispiel waumlhlt der Bot aus ei-ner Liste mit moumlglichen Variationen aus und fordert zur erneuten Eingabe auf Die Liste selektiert zufaumlllig den Wert bdquoDiese Antwort verstehe ich nichtldquo (Listing 2) Die moumlglichen Antworten sind programmatisch oder uumlber den JSON-Aufbau zu denieren

Mit der Einbindung von LUIS wird ein erweitertes Navigationskonzept geschaffen das die FormFlow-Na-vigationskommandos ergaumlnzt Es eignet sich besonders

fuumlr Bereiche in denen nicht klar ist welches Anliegen der Benutzer hat also etwa in einer Hilferubrik oder auf einer Kontaktseite Sinnvoll ist die Nutzung auch bei FAQs wobei die meisten Anbieter fuumlr diesen Be-reich auch sogenannte QA-Frameworks (Question-and-Answer-Frameworks) anbieten

Sicherheitsbedenken technische Schwierigkeiten und gesellschaftliche AkzeptanzEine der groumlszligten Herausforderungen im Bereich Bot-Programmierung ist das Thema Sicherheit Da saumlmt-liche Kommunikation uumlber das Internet laumluft ndash sofern keine Anbieter wie Snipsai im Einsatz sind [17] die mit lokal analysierender AI arbeiten ndash sind die ausge-tauschten Informationen exponiert Das wird durch eine Verschluumlsselung oder andere meist kostenpichtige Si-cherheitsmechanismen der Anbieter kompensiert Ver-antwortlich fuumlr die Funktionalitaumlt Verfuumlgbarkeit und Sicherheit sind laut den AGB verschiedenster Anbieter die Entwickler bzw Produkteigner da die Anbieter le-diglich eine Betaversion zur Verfuumlgung stellen Das be-deutet dass fuumlr die unternehmerische Nutzung in der EU ein Service Level Agreement notwendig ist was auch aus datenschutzrechtlicher Sicht empfehlenswert ist

Wenn der Bot wie im innobis-Projekt in einem Sprachassistenten integriert ist ergeben sich zudem technische Abhaumlngigkeiten vom Anbieter Es ist fuumlr den Bot-Entwickler nicht moumlglich spezielle Verhaltenswei-sen des benutzten Sprachassistenten zu beeinussen (so schloss sich etwa die Anwendung wenn der Benutzer auszligerhalb des Cortana Canvas klickte) Probleme gab es auch mit zu schnellen Ein- und Ausblendungen der

Abb 4 LUIS-Dialog wenn einer Aumluszligerung keine Intention zugeordnet werden konn-te (Screenshot)

Listing 2 Codeauszug aus den Nachbearbeitungsroutinen zur erkannten LUIS-Intention

[Serializable] public class BasicLuisDialog LuisDialogltobjectgt

ltsummarygt Der Konstruktor verwendet Infos aus der webcong um sich gegenuumlber dem LUIS-Sprachmodell-API zu authentizieren ltsummarygt public BasicLuisDialog() base(new LuisService(new LuisModelAttribute(CongurationManagerAppSettings[LuisAppId] CongurationManagerAppSettings[LuisAPIKey])))

ltsummarygt Die ldquokeine-Intentionrdquo-Intention ist die Intention die die AI erkennt wenn sie sich nicht sicher ist welche Intention gemeint ist ltsummarygt ltreturnsgtltreturnsgt [LuisIntent()]

[LuisIntent(None)] public async Task NoneIntent(IDialogContext context LuisResult result) string luisno = Resource1LuisNonesorry Didnrsquot understandhellip await contextPostAsync(Resource1LuisNone+$resultQuery) contextWait(MessageReceived)

ltsummarygt Diese Intention ist beispielhaft fuumlr eine selbstimplementierte Intention Damit sie auf diese Kundenanfrage antwortet muss die Aumluszligerung des Kunden von der AI als aumlhnlich zu einer bekannten Intention im Web Service als am houmlchsten wahrscheinlich erkannt werden ltsummarygt ltreturnsgtltreturnsgt [LuisIntent(Greeting)] public async Task GreetingIntent(IDialogContext context LuisResult result) await contextPostAsync(ResourceResource1regionalGreeting) contextWait(MessageReceived)

ARCHITEKTURWELTEN REAL UND VIRTUELL

wwwentwickler-pressde baukunst-fuer-softwarearchitekten

Jan Peuker

Baukunst fuumlr Softwarearchitekten

Was Software mit Architektur zu tun hat

288 SeitenISBN 978-3-86802-118-9

Preis 2490 euro (D)2560 euro (A)

ChatbotsInternet of

Things

Fragen und Timeouts Daruumlber hinaus war es nicht moumlglich der Cortana-Stimmerkennung Sonderzeichen wie oder π zu diktieren Die Spracherkennung hat generell Schwierigkeiten kurze und sprachlich gleich oder aumlhnlich klingende Antworten (Homophone) des FormFlow zu unterscheiden Es war zum Beispiel nicht moumlglich den Invokationsnamen bdquoLuisBotldquo zu diktie-ren Dies wurde unterschiedlich als bdquoluis potldquo oder bdquole-wis botldquo fehlinterpretiert Dieses Problem duumlrfte auch andere (deutsche) Produkt- Firmen- und Eigennamen betreffen Als Problemloumlsung konnten kanalspezische Angaben des Benutzers herangezogen werden Es erwies sich als moumlglich nach einer expliziten Zustimmung des Benutzers die Kontakt- Orts- und Benutzerdaten auszu-werten Seltene Vornamen oder Familiennamen koumlnnen auf diese Weise uumlbernommen werden ohne dass der Be-nutzer sie diktieren muss

Letztlich ist auch die Nutzerakzeptanz fuumlr Bots in Deutschland eine Herausforderung fuumlr Unternehmen Selbst in der Generation die als bdquoDigital Nativesldquo gilt gibt es Benutzer die bislang wenig mit Sprachunterstuumlt-zung gearbeitet haben bzw Probleme haben erlernte Konzepte wie etwa die Diktierfunktion in WhatsApp auf andere Produkte zu uumlbertragen Laut dem Online-portal fuumlr Statistik Statista GmbH haben 2016 nur etwa 25 Millionen von rund 80 Millionen Einwohnern in Deutschland angegeben bereits einen Sprachassistenten

genutzt zu haben [18] Es bleibt also eine Herausfor-derung mit dem Wachstum in dieser Branche Schritt zu halten den das Marktforschungsinstitut Gartner Inc fuumlr dialogunterstuumltzende Assistenten [19] genauso vor-hersagt wie den Zwei-Billionen-Umsatz fuumlr intelligente Lautsprecher fuumlr 2020 [20]

Anbieter und ProdukteEinen guten Uumlberblick uumlber die Produkte und Anbieter auf dem Markt bietet die Website von Predictive Analy-sis [21] Dort werden neben den multinationalen Kon-zernen und ihren Produkten auch kleinere Unternehmen und ihre Loumlsungen vorgestellt und ausgewertet Generell laumlsst sich hierbei sagen dass Google mit seinem Google Assistant uumlber die meisten Nutzer weltweit verfuumlgt Auch in der Praumlzision der Spracherkennung ist Google weiter vorangeschritten als beispielsweise die Microsoft- oder Amazon-Produkte Apple dagegen liegt in Bezug auf die Praumlzision zwar hinter Google aber noch vor Mi-crosoft und Amazon Wie die Slideshow von Konstantin Savenkov Intento Inc bdquoAspect Natural Lan guage Un-derstandingldquo zeigt [22] ist auch IBM mit seiner Wat-son ai- Plattform eine nicht zu unterschaumltzende Groumlszlige was Performanz ab einer gewissen Datensatzmenge angeht Die Untersuchung die Savenkov dazu durch-gefuumlhrt hat zeigt die Staumlrken und Schwaumlchen der fuumlnf groumlszligten Bot-Anbieter auf

Anzeige

90 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Es gibt neben den kommerziellen Anbietern im Uumlbri-gen auch zwei Open-Source-Projekte Lucida [23] und Athena [24] die sich mit kuumlnstlicher Intelligenz und sprach- bzw bildverarbeitenden dialoggestuumltzten Syste-men beschaumlftigen Lucida hat allerdings recht einschraumln-kende Systemvoraussetzungen weil es nur auf zwei bestimmten Ubuntu-Versionen installierbar ist Dieses Problem kann in VirtualBox umgangen werden sofern ein anderes Betriebssystem auf 64-Bit-Basis verfuumlgbar ist Lucida erfordert einen Arbeitsspeicher von mehr als 6 GB RAM Athena zielt darauf die Ergebnisse von Siri Alexa und Co zu erreichen und zu erweitern Es ist modular aufgebaut und bietet momentan Module fuumlr Musikwiedergabe Social Media (Twitter) und Hausau-tomation Athena ist in Python programmiert

FazitSprachgestuumltzte Unterhaltungen mit Bots weisen einen vielversprechenden Weg Strukturen im Unternehmen efzienter und effektiver zu machen Zudem bieten sie die Moumlglichkeit bisher nicht erreichte Benutzergruppen zu erschlieszligen Die datenschutzrechtlichen und sicher-heitskritischen Bedingungen koumlnnen durch Verschluumls-selungstechniken neue Authentizierungstechniken und Service Level Agreements geloumlst werden Nicht nur Fremdanbieterplattformen sondern auch eigene Systeme sind dank vorhandener Open-Source-Projek-te wie Athena nutzbar Dies lohnt sich weil Bots und der Handel mit Bot-faumlhigen Geraumlten eine zunehmen-de Verbreitung erfahren sodass es sogar denkbar ist dass Bot2Bot-Konversationen regulaumlr stattnden (auch Multi-Agent-Systeme genannt) Ein klassisches Beispiel hierfuumlr ist die Organisation von Terminen und z B die Bitte an einen Bot bdquoBitte Cortana unterhalte dich mal mit Siri von meinem Mann und mit Google Assistant von meiner Schwester und pruumlfe wann wir Zeit haben Pizza essen zu gehenldquo

Friederike Geissler Junior Consultant Development amp Integration Services bei der innobis AG hat im Unternehmen ihre Abschluss-arbeit zum Thema bdquoSprachassistenten in mobilen Bankanwendun-genldquo geschrieben Hierbei sind zwei Prototypen eine App und ein Bot entstanden die einen Benutzer durch einen Sprachassisten-

ten beim Ausfuumlllen eines Onlineformulars unterstuumltzen

[2] Nuance bdquoControl your computer voice with speed and accuracyldquo httpswwwnuancecomdragonhtmlstandardpage-mainpar_backgroundimage_copy

[3] Carlini N Wagner D bdquoAudio adversarial examples Targeted Attacks on Speech-to-Textldquo University of California 2018 httpsarxivorgpdf180101944pdf

[4] Song L Mittal P bdquoInaudible Voice Commandsldquo Princeton University 2017 httpsarxivorgpdf170807238pdf

[5] Feng H Fawaz K Shin K bdquoContinuous Authentication for Voice Assistants Computer Science ndash Cryptography and Securityldquo httpsarxivorgabs170104507

[6] bdquoBots fuumlr die Bank Die Zukunft der Kommunikationldquo httpscustomersmicrosoftcomen-usstoryducia-gadit-cognitive-services-cortana-azure-powerbi-banking-germany

[7] Okamoto S Scerri P Sycara K bdquoToward an understanding of the impact of software personal assistants on human organizationsldquo httpdxdoiorg10114511606331160745

[8] Haslam R bdquoThe bots are coming ndash 5 essential things ntech rms need to knowldquo httpsbanknxtcom56496bots-5-essential-ntech

[9] Lunden I bdquoRise of the bots Techcrunchldquo httpstechcrunchcom20160407rise-of-the-bots-x-ai-raises-23m-more-for-amy-a-bot-that-arranges-appointmentsguccounter=1

[10] LuisBot Innobis AG httpsgithubcomfr6087Hoermirzu

[11] Vincent J bdquoTwitter taught Microsoft AIrsquos Chatbot to be a racist asshole in less than a dayldquo httpswwwthevergecom201632411297050tay-microsoft-chatbot-racist

[12] Microsoft Botbuilder Sample Projects httpsgithubcomMicrosoftBotBuilder-Samples

[13] Brown P bdquoInternet of Stranger Thingsldquo httpsblogswindowscombuildingapps20161031the-internet-of-stranger-things-wall-part-1-introduction-and-remote-wiring

[14] Jibo httpswwwjibocom

[15] Key concepts of DirectLine API 30 Microsoft Botframework documentation httpsdocsmicrosoftcomen-usazurebot-servicerest-apibot-framework-rest-direct-line-3-0-conceptsview=azure-bot-service-30

[16] Osborne R bdquoConnecting Alexa to a Botframework Chatbotldquo httpswwwrobinosbornecouk20161219connecting-alexa-to-a-botframework-chatbot

[17] Snips Platform Documentation httpsnipsai

[18] Digital Assistants Statista dossier httpsdestatistacomstatistikdatenstudie620225umfragenutzung-von-sprachassistenten-in-deutschland

[19] Love J bdquoGartnerrsquos top 10 predictions for 2016 and the lsquopost-apprsquo eraldquo httpswwwitworldcanadacomarticlegartner-top-ten-predictions-for-2016-and-post-app-era377594

[20] bdquoGartner Says Worldwide Spending on VPA-Enabled Wireless Speakers Will Top $2 Billion by 2020ldquo httpswwwgartnercomnewsroomid3464317

[21] Top 22 intelligent personal assistants or automated personal assistants PredictiveAnalysis httpswwwpredictiveanalyticstodaycomtop-intelligent-personal-assistants-automated-personal-assistantscontent-anchor

[22] Savenkov K bdquoNLU Intent Detectionldquo Intento 2017 httpswwwslidesharenetKonstantinSavenkovnlu-intent-detection-benchmark-by-intento-august-2017

[23] Lucida httpsgithubcomclaritylablucida

[24] Athena httpsgithubcomrcbyronhey-athena-client

Mit Lucida und Athena gibt es zwei Open-Source-Projekte die sich mit

kuumlnstlicher Intelligenz beschaumlftigen

Links amp Literatur

[1] Ng Andrew httpstwittercomAndrewYNgstatus809579698883727360

Trainings fuumlr Softwarearchitekten mit iSAQB-Zerti zierung

wwwsoftware-architecture-campde

Das Camp bietet Ihnen eine fundierte und pragmatische Einfuumlhrung in Software-architektur mit hohem Uumlbungsanteil

Die verschiedenen Module des Advanced Levels vertiefen Ihre Kenntnisse und Faumlhig-keiten in den Bereichen Technik Methodik und Kommunikation

Praumlsentiert von in Kooperation mit iSAQBreg

Veranstalter

Jet983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555

983555983555si983579983579983555983555983555983555983579983555983555983555983579983579983579983579te983579983579983579983555

Mit Zerti zierung zum

Mit Zerti zierung zum

bdquoCerti ed Professional for Software Architecture ndash Foundation Level (CPSA-F)ldquo

bdquoCerti ed Professional for Software Architecture ndash Advanced Level (CPSA-A)ldquo

Mit Zerti zierung zum bdquoCerti ed Professional for Software Architectureldquo iSAQBreg

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde

Page 5: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

85wwwentwickler-magazinde Entwickler Magazin 12019

ChatbotsInternet of

Things

Oft ist es moumlglich den Bot auf verschiedenen soge-nannten Kanaumllen zu vertreiben Ein Sprachassistent waumlre ein solcher Kanal aber auch Kommunikations-netzwerke wie Skype Twitter Slack Microsoft Ofce Telegram oder Facebook Messenger Ist eine Veroumlf-fentlichung des Bots auf einem oder mehreren Kanaumllen (welche verfuumlgbar sind ist anbieterabhaumlngig) geplant dann ist fuumlr das Entwickeln und Testen hier ein Account noumltig

Drei Anwendungsoptionen des Microsoft Bot FrameworksIm Folgenden werden drei Anwendungsoptionen des Microsoft Bot Frameworks vorgestellt die beim bereits beschriebenen Prototyp fuumlr die innobis Verwendung fanden In allen Faumlllen geht es darum dem Bot das Di-alogmuster nach dem er arbeiten soll zur Verfuumlgung zu stellen

bull FormFlow ein JSON-Format fuumlr einen geregelten und vordenierten Ablauf (das sich vor allem eignet um formularaumlhnliche Daten abzufragen)

bull DirectLine eine programmatische Schnittstelle zur Einbindung von Drittanbieterdiensten (z B eines Sprachassistenten) und

bull LUIS-Service ein AI-Framework zur Einbindung des Language Understanding Intelligence Service von Mi-crosoft

Um einem Bot den Dialog per FormFlow vorzuge-ben muss eine JSON-Datei mit vordenierten Fra-gen und Antworten erstellt werden die spaumlter in den Bot geladen wird Bei FormFlow gibt es verschiedene Implementierungsmoumlglichkeiten Es ist moumlglich eine

Datenhaltungsklasse mit Attributen fuumlr jedes vorge-schriebene Eingabefeld zu implementieren oder auch diese aus einer JSON-Datei generieren zu lassen die ein bestimmtes Muster erfuumlllt (siehe Listing 1 mit ei-nem Auszug aus der FormFlow-Datei die im innobis-Prototyp Verwendung fand) In den Properties sind die abzufragenden Werte deniert wobei die Frage mithilfe eines amp-Platzhalters fuumlr den Property-Namen ergaumlnzt ist Erforderliche Eingaben sind zu Beginn zu kennzeichnen Eingebettete regulaumlre Ausdruumlcke bieten auszligerdem die Moumlglichkeit die Benutzereingabe zu pruumlfen Daruumlber hi-naus ist es moumlglich Validierungsfunktionen in JSON zu benennen Der Aufruf des JSON-Skripts kann uumlber Da-teilesezugriffe in C wie in Abbildung 1 gezeigt erfolgen

Es ist hierbei moumlglich Validierungs-Regexe zu de-nieren numerische Intervalle fuumlr die Validierung mitzureichen oder die Namen von Validierungsme-thoden mitzugeben Zudem ist es notwendig je nach

Abb 1 In C aufgerufenes JSON-Skript (Screenshot)

Listing 1 Codeauszug aus der JSON-Datei die den FormFlow-Dialog generiert

References [ LuisBotdll ] Imports [ LuisBotResource ] type object Templates NotUnderstood Patterns [ I didnt understand 0 Try again I dont know about 0 ] properties

Vorname Before [ Message [ Welcome to the ESF_2 FormBot ]

] Prompt Patterns [ What is your given name ]

type [ string null ]

Nachname

Prompt Patterns [ And your surname ]

type [ string

null ]

Hausnummer

Prompt Patterns [ What is your street number ]

type [ string null ]

hellip

86 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

verwendeter Sprache des Benutzers unterschiedliche JSON-Dialoge anzulegen (oder diese mit einem Uumlber-setzungsframework uumlbersetzen zu lassen)

Abhaumlngig davon welchen Kanal der Benutzer waumlhlt um mit dem Bot in Kontakt zu treten bieten sich zusaumltz-liche spezielle Eigenschaften des Kanals Mit einer Text-zu-Sprache-Generierung die ein integraler Bestandteil von sprachfaumlhigen Bots ist gibt es die Option einen Te-lefondialog in der favorisierten Sprache des Benutzers zu generieren Abbildung 2 zeigt ein Beispiel eines Skype-Dialogs zwischen Bot und Benutzer

Eine DirectLine-Verbindung wird ndash oberaumlch-lich betrachtet ndash als WebSocket-Verbindung oder als HTTP-GET-Anfrage des Clients mittels eines Hand-shake-Verfahrens aufgebaut Um sie zu nutzen ist ein DirectLine-Schluumlssel fuumlr den Bot zu generieren Fuumlr ver-tiefende Informationen eignet sich die Microsoft-Doku-mentation [15] oder Robert Osbornes Blog in dem er

beschreibt wie einer Alexa-Faumlhigkeit eine DirectLine-Schnittstelle hinzufuumlgt wird [16]

DirectLine kann im Microsoft Bot Framework genutzt werden um einen LUIS Service anzubinden Das ist ein AI-Framework Der Wunsch AI-Frameworks einbinden zu wollen wird anhand von Benutzeranfragen wie bdquoIch moumlchte die Unternehmensangaben im ESF_2-Formular ausfuumlllenldquo deutlich Es gibt hierbei zahlreiche Moumlglich-keiten wie ein Benutzer diese Anfrage (synonym) for-mulieren koumlnnte aber jedes Mal ist es die Aufgabe des Bots anhand der Worte zu erkennen dass er mit einem bdquoWillkommenldquo antworten soll

Der LUIS Service ermoumlglicht es dem Bot auf moumlg-lichst natuumlrliche Art und Weise mit Menschen zu kom-munizieren Er wird von Microsoft als Cloud-Loumlsung auf einer AI-Plattform angeboten Der Bot analysiert die gesprochene Sprache und leitet die Anfrage dann an LUIS weiter LUIS analysiert die Frage und ermittelt die Intention Um LUIS Services einzubinden muss die Intention des Benutzers auf der AI-Plattform bekannt sein Daruumlber hinaus helfen zusaumltzliche Parameter die die Intention erlaumlutern Die Intention eines Benutzers waumlre zum Beispiel eine Pizza zu bestellen Ein dazuge-houmlriger Parameter waumlre dann etwa die Groumlszlige der Pizza Die Schwierigkeit liegt in diesem Fall darin dass Men-schen ihren Wunsch nach einer Pizza in einer bestimm-ten Groumlszlige unterschiedlich ausdruumlcken Die Aufgabe von LUIS ist es daher die Intention und moumlglichst alle not-wendigen Parameter zu erfassen und zuruumlckzuliefern Microsoft arbeitet daran auch Stimmungen im gespro-chenen Text zu erkennen und diese dem Bot ebenfalls zu vermitteln

LUIS berechnet wie wahrscheinlich es ist dass eine bestimmte Aumluszligerung einer bestimmten Intention ent-spricht So wird bei der Benutzeranfrage bdquoBitte hilf mirldquo bestimmt dass es sich mit einer Wahrscheinlich-keit von 99 Prozent um das Beduumlrfnis handelt den Hil-fetext zu sehen (UtilitiesHelp) Jedes Mal wenn eine Anfrage bei LUIS eintrifft werden alle vom Entwick-ler denierten Intentionen danach bewertet wie wahr-scheinlich sie sind Umgekehrt wird ebenfalls berechnet dass zur Aumluszligerung bdquoBitte hilf mirldquo die Intention bdquoGruumlszlige michldquo (Greeting) nur zu 001 Prozent passend ist Waumlre allerdings bdquoGruumlszlige michldquo faumllschlicherweise mit 99 Pro-zent bewertet worden waumlre eine Korrektur erforderlich Diese erfolgt entweder manuell uumlber die LUIS-Website oder uumlber einen programmatischen LUIS-API-Aufruf

In der Entwicklungsumgebung legt der Entwickler dann nur noch fest welche Aktion auf welche Intention folgt Wurde die Intention bdquoGruumlszlige michldquo (Abb 3 un-ter Greeting) erkannt wird ein Gruszlig als Post uumlber die DirectLine-Verbindung geschickt Der Bot-Framework-Server benachrichtigt daraufhin den oder die Teilneh-mer der Konversation uumlber die neue Nachricht Der Kontext enthaumllt dabei die Metadaten zur Konversation (z B wer die Dialogpartner sind)

Abbildung 4 zeigt die Situation im Bot wenn einer Aumluszligerung keine Intention zugeordnet werden konnte

Abb 3 Kor-rekturmoumlg-lichkeiten

im LUISai-Webportal

(Screen-shot)

Abb 2 Skype-Dialog zwischen Bot und Benutzer (Screenshot)

18 ndash 20 Februar 2019 | Muumlnchen2 ndash 4 April | Berlin

wwwdevops-trainingde

Das eigentlich junge Thema Docker wird mehr und mehr zu einem Bestandteil der Infrastruktur von kleinen Start-ups bis zu groszligen Firmen Sobald von DevOps oder Microservices gesprochen wird wird oft im gleichen Atemzug von Docker gesprochen Aber was hat es mit diesem Docker auf sich Dem vielleicht entscheidendem Baustein die IT zu revolutionieren Im neuen DevOps Docker Camp mit Erkan Yanar erhalten Sie von einem der bekanntesten deutschsprachigen Docker-Experten einen praktischen Einstieg in Docker Sie lernen die Kon-zepte von Docker und die darauf aufbauenden Infra-

strukturen umfassend kennen Schritt fuumlr Schritt bauen Sie eine eigene Infrastruktur fuumlr und mit Docker auf Es werden eigene Applikationen in Docker Images verpackt und eigene Microservices ausgerollt die automatisiert geloggt und gemonitort werden Am Ende des intensi-ven Docker-Trainings werden Sie einschaumltzen koumlnnen ob und wie Docker fuumlr Sie selbst relevant und nutzbrin-gend einzusetzen ist Der Schwerpunkt liegt im klassi-schen Aufbau von Docker auf Linux Die Verwendung von Docker auf und mit Microsoft wird aber erlaumlutert und kurz vorgefuumlhrt

Veranstalter

Praumlsentiert von

Docker_Camp DockerCamp DevOpsDockerCamp

Das Docker-Training mit Erkan Yanar

Jetzt Teilnahme sichern

88 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Die Nachricht wird an den LUIS-Dialog verwiesen und dieser kommuniziert im Hintergrund mit dem LUIS API Dieses meldet zuruumlck dass bdquoNoneldquo der wahr-scheinlichste Beweggrund der Anfrage war Daraufhin reagiert der Bot mit durch den Entwickler festgelegten Maszlignahmen In diesem Beispiel waumlhlt der Bot aus ei-ner Liste mit moumlglichen Variationen aus und fordert zur erneuten Eingabe auf Die Liste selektiert zufaumlllig den Wert bdquoDiese Antwort verstehe ich nichtldquo (Listing 2) Die moumlglichen Antworten sind programmatisch oder uumlber den JSON-Aufbau zu denieren

Mit der Einbindung von LUIS wird ein erweitertes Navigationskonzept geschaffen das die FormFlow-Na-vigationskommandos ergaumlnzt Es eignet sich besonders

fuumlr Bereiche in denen nicht klar ist welches Anliegen der Benutzer hat also etwa in einer Hilferubrik oder auf einer Kontaktseite Sinnvoll ist die Nutzung auch bei FAQs wobei die meisten Anbieter fuumlr diesen Be-reich auch sogenannte QA-Frameworks (Question-and-Answer-Frameworks) anbieten

Sicherheitsbedenken technische Schwierigkeiten und gesellschaftliche AkzeptanzEine der groumlszligten Herausforderungen im Bereich Bot-Programmierung ist das Thema Sicherheit Da saumlmt-liche Kommunikation uumlber das Internet laumluft ndash sofern keine Anbieter wie Snipsai im Einsatz sind [17] die mit lokal analysierender AI arbeiten ndash sind die ausge-tauschten Informationen exponiert Das wird durch eine Verschluumlsselung oder andere meist kostenpichtige Si-cherheitsmechanismen der Anbieter kompensiert Ver-antwortlich fuumlr die Funktionalitaumlt Verfuumlgbarkeit und Sicherheit sind laut den AGB verschiedenster Anbieter die Entwickler bzw Produkteigner da die Anbieter le-diglich eine Betaversion zur Verfuumlgung stellen Das be-deutet dass fuumlr die unternehmerische Nutzung in der EU ein Service Level Agreement notwendig ist was auch aus datenschutzrechtlicher Sicht empfehlenswert ist

Wenn der Bot wie im innobis-Projekt in einem Sprachassistenten integriert ist ergeben sich zudem technische Abhaumlngigkeiten vom Anbieter Es ist fuumlr den Bot-Entwickler nicht moumlglich spezielle Verhaltenswei-sen des benutzten Sprachassistenten zu beeinussen (so schloss sich etwa die Anwendung wenn der Benutzer auszligerhalb des Cortana Canvas klickte) Probleme gab es auch mit zu schnellen Ein- und Ausblendungen der

Abb 4 LUIS-Dialog wenn einer Aumluszligerung keine Intention zugeordnet werden konn-te (Screenshot)

Listing 2 Codeauszug aus den Nachbearbeitungsroutinen zur erkannten LUIS-Intention

[Serializable] public class BasicLuisDialog LuisDialogltobjectgt

ltsummarygt Der Konstruktor verwendet Infos aus der webcong um sich gegenuumlber dem LUIS-Sprachmodell-API zu authentizieren ltsummarygt public BasicLuisDialog() base(new LuisService(new LuisModelAttribute(CongurationManagerAppSettings[LuisAppId] CongurationManagerAppSettings[LuisAPIKey])))

ltsummarygt Die ldquokeine-Intentionrdquo-Intention ist die Intention die die AI erkennt wenn sie sich nicht sicher ist welche Intention gemeint ist ltsummarygt ltreturnsgtltreturnsgt [LuisIntent()]

[LuisIntent(None)] public async Task NoneIntent(IDialogContext context LuisResult result) string luisno = Resource1LuisNonesorry Didnrsquot understandhellip await contextPostAsync(Resource1LuisNone+$resultQuery) contextWait(MessageReceived)

ltsummarygt Diese Intention ist beispielhaft fuumlr eine selbstimplementierte Intention Damit sie auf diese Kundenanfrage antwortet muss die Aumluszligerung des Kunden von der AI als aumlhnlich zu einer bekannten Intention im Web Service als am houmlchsten wahrscheinlich erkannt werden ltsummarygt ltreturnsgtltreturnsgt [LuisIntent(Greeting)] public async Task GreetingIntent(IDialogContext context LuisResult result) await contextPostAsync(ResourceResource1regionalGreeting) contextWait(MessageReceived)

ARCHITEKTURWELTEN REAL UND VIRTUELL

wwwentwickler-pressde baukunst-fuer-softwarearchitekten

Jan Peuker

Baukunst fuumlr Softwarearchitekten

Was Software mit Architektur zu tun hat

288 SeitenISBN 978-3-86802-118-9

Preis 2490 euro (D)2560 euro (A)

ChatbotsInternet of

Things

Fragen und Timeouts Daruumlber hinaus war es nicht moumlglich der Cortana-Stimmerkennung Sonderzeichen wie oder π zu diktieren Die Spracherkennung hat generell Schwierigkeiten kurze und sprachlich gleich oder aumlhnlich klingende Antworten (Homophone) des FormFlow zu unterscheiden Es war zum Beispiel nicht moumlglich den Invokationsnamen bdquoLuisBotldquo zu diktie-ren Dies wurde unterschiedlich als bdquoluis potldquo oder bdquole-wis botldquo fehlinterpretiert Dieses Problem duumlrfte auch andere (deutsche) Produkt- Firmen- und Eigennamen betreffen Als Problemloumlsung konnten kanalspezische Angaben des Benutzers herangezogen werden Es erwies sich als moumlglich nach einer expliziten Zustimmung des Benutzers die Kontakt- Orts- und Benutzerdaten auszu-werten Seltene Vornamen oder Familiennamen koumlnnen auf diese Weise uumlbernommen werden ohne dass der Be-nutzer sie diktieren muss

Letztlich ist auch die Nutzerakzeptanz fuumlr Bots in Deutschland eine Herausforderung fuumlr Unternehmen Selbst in der Generation die als bdquoDigital Nativesldquo gilt gibt es Benutzer die bislang wenig mit Sprachunterstuumlt-zung gearbeitet haben bzw Probleme haben erlernte Konzepte wie etwa die Diktierfunktion in WhatsApp auf andere Produkte zu uumlbertragen Laut dem Online-portal fuumlr Statistik Statista GmbH haben 2016 nur etwa 25 Millionen von rund 80 Millionen Einwohnern in Deutschland angegeben bereits einen Sprachassistenten

genutzt zu haben [18] Es bleibt also eine Herausfor-derung mit dem Wachstum in dieser Branche Schritt zu halten den das Marktforschungsinstitut Gartner Inc fuumlr dialogunterstuumltzende Assistenten [19] genauso vor-hersagt wie den Zwei-Billionen-Umsatz fuumlr intelligente Lautsprecher fuumlr 2020 [20]

Anbieter und ProdukteEinen guten Uumlberblick uumlber die Produkte und Anbieter auf dem Markt bietet die Website von Predictive Analy-sis [21] Dort werden neben den multinationalen Kon-zernen und ihren Produkten auch kleinere Unternehmen und ihre Loumlsungen vorgestellt und ausgewertet Generell laumlsst sich hierbei sagen dass Google mit seinem Google Assistant uumlber die meisten Nutzer weltweit verfuumlgt Auch in der Praumlzision der Spracherkennung ist Google weiter vorangeschritten als beispielsweise die Microsoft- oder Amazon-Produkte Apple dagegen liegt in Bezug auf die Praumlzision zwar hinter Google aber noch vor Mi-crosoft und Amazon Wie die Slideshow von Konstantin Savenkov Intento Inc bdquoAspect Natural Lan guage Un-derstandingldquo zeigt [22] ist auch IBM mit seiner Wat-son ai- Plattform eine nicht zu unterschaumltzende Groumlszlige was Performanz ab einer gewissen Datensatzmenge angeht Die Untersuchung die Savenkov dazu durch-gefuumlhrt hat zeigt die Staumlrken und Schwaumlchen der fuumlnf groumlszligten Bot-Anbieter auf

Anzeige

90 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Es gibt neben den kommerziellen Anbietern im Uumlbri-gen auch zwei Open-Source-Projekte Lucida [23] und Athena [24] die sich mit kuumlnstlicher Intelligenz und sprach- bzw bildverarbeitenden dialoggestuumltzten Syste-men beschaumlftigen Lucida hat allerdings recht einschraumln-kende Systemvoraussetzungen weil es nur auf zwei bestimmten Ubuntu-Versionen installierbar ist Dieses Problem kann in VirtualBox umgangen werden sofern ein anderes Betriebssystem auf 64-Bit-Basis verfuumlgbar ist Lucida erfordert einen Arbeitsspeicher von mehr als 6 GB RAM Athena zielt darauf die Ergebnisse von Siri Alexa und Co zu erreichen und zu erweitern Es ist modular aufgebaut und bietet momentan Module fuumlr Musikwiedergabe Social Media (Twitter) und Hausau-tomation Athena ist in Python programmiert

FazitSprachgestuumltzte Unterhaltungen mit Bots weisen einen vielversprechenden Weg Strukturen im Unternehmen efzienter und effektiver zu machen Zudem bieten sie die Moumlglichkeit bisher nicht erreichte Benutzergruppen zu erschlieszligen Die datenschutzrechtlichen und sicher-heitskritischen Bedingungen koumlnnen durch Verschluumls-selungstechniken neue Authentizierungstechniken und Service Level Agreements geloumlst werden Nicht nur Fremdanbieterplattformen sondern auch eigene Systeme sind dank vorhandener Open-Source-Projek-te wie Athena nutzbar Dies lohnt sich weil Bots und der Handel mit Bot-faumlhigen Geraumlten eine zunehmen-de Verbreitung erfahren sodass es sogar denkbar ist dass Bot2Bot-Konversationen regulaumlr stattnden (auch Multi-Agent-Systeme genannt) Ein klassisches Beispiel hierfuumlr ist die Organisation von Terminen und z B die Bitte an einen Bot bdquoBitte Cortana unterhalte dich mal mit Siri von meinem Mann und mit Google Assistant von meiner Schwester und pruumlfe wann wir Zeit haben Pizza essen zu gehenldquo

Friederike Geissler Junior Consultant Development amp Integration Services bei der innobis AG hat im Unternehmen ihre Abschluss-arbeit zum Thema bdquoSprachassistenten in mobilen Bankanwendun-genldquo geschrieben Hierbei sind zwei Prototypen eine App und ein Bot entstanden die einen Benutzer durch einen Sprachassisten-

ten beim Ausfuumlllen eines Onlineformulars unterstuumltzen

[2] Nuance bdquoControl your computer voice with speed and accuracyldquo httpswwwnuancecomdragonhtmlstandardpage-mainpar_backgroundimage_copy

[3] Carlini N Wagner D bdquoAudio adversarial examples Targeted Attacks on Speech-to-Textldquo University of California 2018 httpsarxivorgpdf180101944pdf

[4] Song L Mittal P bdquoInaudible Voice Commandsldquo Princeton University 2017 httpsarxivorgpdf170807238pdf

[5] Feng H Fawaz K Shin K bdquoContinuous Authentication for Voice Assistants Computer Science ndash Cryptography and Securityldquo httpsarxivorgabs170104507

[6] bdquoBots fuumlr die Bank Die Zukunft der Kommunikationldquo httpscustomersmicrosoftcomen-usstoryducia-gadit-cognitive-services-cortana-azure-powerbi-banking-germany

[7] Okamoto S Scerri P Sycara K bdquoToward an understanding of the impact of software personal assistants on human organizationsldquo httpdxdoiorg10114511606331160745

[8] Haslam R bdquoThe bots are coming ndash 5 essential things ntech rms need to knowldquo httpsbanknxtcom56496bots-5-essential-ntech

[9] Lunden I bdquoRise of the bots Techcrunchldquo httpstechcrunchcom20160407rise-of-the-bots-x-ai-raises-23m-more-for-amy-a-bot-that-arranges-appointmentsguccounter=1

[10] LuisBot Innobis AG httpsgithubcomfr6087Hoermirzu

[11] Vincent J bdquoTwitter taught Microsoft AIrsquos Chatbot to be a racist asshole in less than a dayldquo httpswwwthevergecom201632411297050tay-microsoft-chatbot-racist

[12] Microsoft Botbuilder Sample Projects httpsgithubcomMicrosoftBotBuilder-Samples

[13] Brown P bdquoInternet of Stranger Thingsldquo httpsblogswindowscombuildingapps20161031the-internet-of-stranger-things-wall-part-1-introduction-and-remote-wiring

[14] Jibo httpswwwjibocom

[15] Key concepts of DirectLine API 30 Microsoft Botframework documentation httpsdocsmicrosoftcomen-usazurebot-servicerest-apibot-framework-rest-direct-line-3-0-conceptsview=azure-bot-service-30

[16] Osborne R bdquoConnecting Alexa to a Botframework Chatbotldquo httpswwwrobinosbornecouk20161219connecting-alexa-to-a-botframework-chatbot

[17] Snips Platform Documentation httpsnipsai

[18] Digital Assistants Statista dossier httpsdestatistacomstatistikdatenstudie620225umfragenutzung-von-sprachassistenten-in-deutschland

[19] Love J bdquoGartnerrsquos top 10 predictions for 2016 and the lsquopost-apprsquo eraldquo httpswwwitworldcanadacomarticlegartner-top-ten-predictions-for-2016-and-post-app-era377594

[20] bdquoGartner Says Worldwide Spending on VPA-Enabled Wireless Speakers Will Top $2 Billion by 2020ldquo httpswwwgartnercomnewsroomid3464317

[21] Top 22 intelligent personal assistants or automated personal assistants PredictiveAnalysis httpswwwpredictiveanalyticstodaycomtop-intelligent-personal-assistants-automated-personal-assistantscontent-anchor

[22] Savenkov K bdquoNLU Intent Detectionldquo Intento 2017 httpswwwslidesharenetKonstantinSavenkovnlu-intent-detection-benchmark-by-intento-august-2017

[23] Lucida httpsgithubcomclaritylablucida

[24] Athena httpsgithubcomrcbyronhey-athena-client

Mit Lucida und Athena gibt es zwei Open-Source-Projekte die sich mit

kuumlnstlicher Intelligenz beschaumlftigen

Links amp Literatur

[1] Ng Andrew httpstwittercomAndrewYNgstatus809579698883727360

Trainings fuumlr Softwarearchitekten mit iSAQB-Zerti zierung

wwwsoftware-architecture-campde

Das Camp bietet Ihnen eine fundierte und pragmatische Einfuumlhrung in Software-architektur mit hohem Uumlbungsanteil

Die verschiedenen Module des Advanced Levels vertiefen Ihre Kenntnisse und Faumlhig-keiten in den Bereichen Technik Methodik und Kommunikation

Praumlsentiert von in Kooperation mit iSAQBreg

Veranstalter

Jet983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555

983555983555si983579983579983555983555983555983555983579983555983555983555983579983579983579983579te983579983579983579983555

Mit Zerti zierung zum

Mit Zerti zierung zum

bdquoCerti ed Professional for Software Architecture ndash Foundation Level (CPSA-F)ldquo

bdquoCerti ed Professional for Software Architecture ndash Advanced Level (CPSA-A)ldquo

Mit Zerti zierung zum bdquoCerti ed Professional for Software Architectureldquo iSAQBreg

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde

Page 6: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

86 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

verwendeter Sprache des Benutzers unterschiedliche JSON-Dialoge anzulegen (oder diese mit einem Uumlber-setzungsframework uumlbersetzen zu lassen)

Abhaumlngig davon welchen Kanal der Benutzer waumlhlt um mit dem Bot in Kontakt zu treten bieten sich zusaumltz-liche spezielle Eigenschaften des Kanals Mit einer Text-zu-Sprache-Generierung die ein integraler Bestandteil von sprachfaumlhigen Bots ist gibt es die Option einen Te-lefondialog in der favorisierten Sprache des Benutzers zu generieren Abbildung 2 zeigt ein Beispiel eines Skype-Dialogs zwischen Bot und Benutzer

Eine DirectLine-Verbindung wird ndash oberaumlch-lich betrachtet ndash als WebSocket-Verbindung oder als HTTP-GET-Anfrage des Clients mittels eines Hand-shake-Verfahrens aufgebaut Um sie zu nutzen ist ein DirectLine-Schluumlssel fuumlr den Bot zu generieren Fuumlr ver-tiefende Informationen eignet sich die Microsoft-Doku-mentation [15] oder Robert Osbornes Blog in dem er

beschreibt wie einer Alexa-Faumlhigkeit eine DirectLine-Schnittstelle hinzufuumlgt wird [16]

DirectLine kann im Microsoft Bot Framework genutzt werden um einen LUIS Service anzubinden Das ist ein AI-Framework Der Wunsch AI-Frameworks einbinden zu wollen wird anhand von Benutzeranfragen wie bdquoIch moumlchte die Unternehmensangaben im ESF_2-Formular ausfuumlllenldquo deutlich Es gibt hierbei zahlreiche Moumlglich-keiten wie ein Benutzer diese Anfrage (synonym) for-mulieren koumlnnte aber jedes Mal ist es die Aufgabe des Bots anhand der Worte zu erkennen dass er mit einem bdquoWillkommenldquo antworten soll

Der LUIS Service ermoumlglicht es dem Bot auf moumlg-lichst natuumlrliche Art und Weise mit Menschen zu kom-munizieren Er wird von Microsoft als Cloud-Loumlsung auf einer AI-Plattform angeboten Der Bot analysiert die gesprochene Sprache und leitet die Anfrage dann an LUIS weiter LUIS analysiert die Frage und ermittelt die Intention Um LUIS Services einzubinden muss die Intention des Benutzers auf der AI-Plattform bekannt sein Daruumlber hinaus helfen zusaumltzliche Parameter die die Intention erlaumlutern Die Intention eines Benutzers waumlre zum Beispiel eine Pizza zu bestellen Ein dazuge-houmlriger Parameter waumlre dann etwa die Groumlszlige der Pizza Die Schwierigkeit liegt in diesem Fall darin dass Men-schen ihren Wunsch nach einer Pizza in einer bestimm-ten Groumlszlige unterschiedlich ausdruumlcken Die Aufgabe von LUIS ist es daher die Intention und moumlglichst alle not-wendigen Parameter zu erfassen und zuruumlckzuliefern Microsoft arbeitet daran auch Stimmungen im gespro-chenen Text zu erkennen und diese dem Bot ebenfalls zu vermitteln

LUIS berechnet wie wahrscheinlich es ist dass eine bestimmte Aumluszligerung einer bestimmten Intention ent-spricht So wird bei der Benutzeranfrage bdquoBitte hilf mirldquo bestimmt dass es sich mit einer Wahrscheinlich-keit von 99 Prozent um das Beduumlrfnis handelt den Hil-fetext zu sehen (UtilitiesHelp) Jedes Mal wenn eine Anfrage bei LUIS eintrifft werden alle vom Entwick-ler denierten Intentionen danach bewertet wie wahr-scheinlich sie sind Umgekehrt wird ebenfalls berechnet dass zur Aumluszligerung bdquoBitte hilf mirldquo die Intention bdquoGruumlszlige michldquo (Greeting) nur zu 001 Prozent passend ist Waumlre allerdings bdquoGruumlszlige michldquo faumllschlicherweise mit 99 Pro-zent bewertet worden waumlre eine Korrektur erforderlich Diese erfolgt entweder manuell uumlber die LUIS-Website oder uumlber einen programmatischen LUIS-API-Aufruf

In der Entwicklungsumgebung legt der Entwickler dann nur noch fest welche Aktion auf welche Intention folgt Wurde die Intention bdquoGruumlszlige michldquo (Abb 3 un-ter Greeting) erkannt wird ein Gruszlig als Post uumlber die DirectLine-Verbindung geschickt Der Bot-Framework-Server benachrichtigt daraufhin den oder die Teilneh-mer der Konversation uumlber die neue Nachricht Der Kontext enthaumllt dabei die Metadaten zur Konversation (z B wer die Dialogpartner sind)

Abbildung 4 zeigt die Situation im Bot wenn einer Aumluszligerung keine Intention zugeordnet werden konnte

Abb 3 Kor-rekturmoumlg-lichkeiten

im LUISai-Webportal

(Screen-shot)

Abb 2 Skype-Dialog zwischen Bot und Benutzer (Screenshot)

18 ndash 20 Februar 2019 | Muumlnchen2 ndash 4 April | Berlin

wwwdevops-trainingde

Das eigentlich junge Thema Docker wird mehr und mehr zu einem Bestandteil der Infrastruktur von kleinen Start-ups bis zu groszligen Firmen Sobald von DevOps oder Microservices gesprochen wird wird oft im gleichen Atemzug von Docker gesprochen Aber was hat es mit diesem Docker auf sich Dem vielleicht entscheidendem Baustein die IT zu revolutionieren Im neuen DevOps Docker Camp mit Erkan Yanar erhalten Sie von einem der bekanntesten deutschsprachigen Docker-Experten einen praktischen Einstieg in Docker Sie lernen die Kon-zepte von Docker und die darauf aufbauenden Infra-

strukturen umfassend kennen Schritt fuumlr Schritt bauen Sie eine eigene Infrastruktur fuumlr und mit Docker auf Es werden eigene Applikationen in Docker Images verpackt und eigene Microservices ausgerollt die automatisiert geloggt und gemonitort werden Am Ende des intensi-ven Docker-Trainings werden Sie einschaumltzen koumlnnen ob und wie Docker fuumlr Sie selbst relevant und nutzbrin-gend einzusetzen ist Der Schwerpunkt liegt im klassi-schen Aufbau von Docker auf Linux Die Verwendung von Docker auf und mit Microsoft wird aber erlaumlutert und kurz vorgefuumlhrt

Veranstalter

Praumlsentiert von

Docker_Camp DockerCamp DevOpsDockerCamp

Das Docker-Training mit Erkan Yanar

Jetzt Teilnahme sichern

88 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Die Nachricht wird an den LUIS-Dialog verwiesen und dieser kommuniziert im Hintergrund mit dem LUIS API Dieses meldet zuruumlck dass bdquoNoneldquo der wahr-scheinlichste Beweggrund der Anfrage war Daraufhin reagiert der Bot mit durch den Entwickler festgelegten Maszlignahmen In diesem Beispiel waumlhlt der Bot aus ei-ner Liste mit moumlglichen Variationen aus und fordert zur erneuten Eingabe auf Die Liste selektiert zufaumlllig den Wert bdquoDiese Antwort verstehe ich nichtldquo (Listing 2) Die moumlglichen Antworten sind programmatisch oder uumlber den JSON-Aufbau zu denieren

Mit der Einbindung von LUIS wird ein erweitertes Navigationskonzept geschaffen das die FormFlow-Na-vigationskommandos ergaumlnzt Es eignet sich besonders

fuumlr Bereiche in denen nicht klar ist welches Anliegen der Benutzer hat also etwa in einer Hilferubrik oder auf einer Kontaktseite Sinnvoll ist die Nutzung auch bei FAQs wobei die meisten Anbieter fuumlr diesen Be-reich auch sogenannte QA-Frameworks (Question-and-Answer-Frameworks) anbieten

Sicherheitsbedenken technische Schwierigkeiten und gesellschaftliche AkzeptanzEine der groumlszligten Herausforderungen im Bereich Bot-Programmierung ist das Thema Sicherheit Da saumlmt-liche Kommunikation uumlber das Internet laumluft ndash sofern keine Anbieter wie Snipsai im Einsatz sind [17] die mit lokal analysierender AI arbeiten ndash sind die ausge-tauschten Informationen exponiert Das wird durch eine Verschluumlsselung oder andere meist kostenpichtige Si-cherheitsmechanismen der Anbieter kompensiert Ver-antwortlich fuumlr die Funktionalitaumlt Verfuumlgbarkeit und Sicherheit sind laut den AGB verschiedenster Anbieter die Entwickler bzw Produkteigner da die Anbieter le-diglich eine Betaversion zur Verfuumlgung stellen Das be-deutet dass fuumlr die unternehmerische Nutzung in der EU ein Service Level Agreement notwendig ist was auch aus datenschutzrechtlicher Sicht empfehlenswert ist

Wenn der Bot wie im innobis-Projekt in einem Sprachassistenten integriert ist ergeben sich zudem technische Abhaumlngigkeiten vom Anbieter Es ist fuumlr den Bot-Entwickler nicht moumlglich spezielle Verhaltenswei-sen des benutzten Sprachassistenten zu beeinussen (so schloss sich etwa die Anwendung wenn der Benutzer auszligerhalb des Cortana Canvas klickte) Probleme gab es auch mit zu schnellen Ein- und Ausblendungen der

Abb 4 LUIS-Dialog wenn einer Aumluszligerung keine Intention zugeordnet werden konn-te (Screenshot)

Listing 2 Codeauszug aus den Nachbearbeitungsroutinen zur erkannten LUIS-Intention

[Serializable] public class BasicLuisDialog LuisDialogltobjectgt

ltsummarygt Der Konstruktor verwendet Infos aus der webcong um sich gegenuumlber dem LUIS-Sprachmodell-API zu authentizieren ltsummarygt public BasicLuisDialog() base(new LuisService(new LuisModelAttribute(CongurationManagerAppSettings[LuisAppId] CongurationManagerAppSettings[LuisAPIKey])))

ltsummarygt Die ldquokeine-Intentionrdquo-Intention ist die Intention die die AI erkennt wenn sie sich nicht sicher ist welche Intention gemeint ist ltsummarygt ltreturnsgtltreturnsgt [LuisIntent()]

[LuisIntent(None)] public async Task NoneIntent(IDialogContext context LuisResult result) string luisno = Resource1LuisNonesorry Didnrsquot understandhellip await contextPostAsync(Resource1LuisNone+$resultQuery) contextWait(MessageReceived)

ltsummarygt Diese Intention ist beispielhaft fuumlr eine selbstimplementierte Intention Damit sie auf diese Kundenanfrage antwortet muss die Aumluszligerung des Kunden von der AI als aumlhnlich zu einer bekannten Intention im Web Service als am houmlchsten wahrscheinlich erkannt werden ltsummarygt ltreturnsgtltreturnsgt [LuisIntent(Greeting)] public async Task GreetingIntent(IDialogContext context LuisResult result) await contextPostAsync(ResourceResource1regionalGreeting) contextWait(MessageReceived)

ARCHITEKTURWELTEN REAL UND VIRTUELL

wwwentwickler-pressde baukunst-fuer-softwarearchitekten

Jan Peuker

Baukunst fuumlr Softwarearchitekten

Was Software mit Architektur zu tun hat

288 SeitenISBN 978-3-86802-118-9

Preis 2490 euro (D)2560 euro (A)

ChatbotsInternet of

Things

Fragen und Timeouts Daruumlber hinaus war es nicht moumlglich der Cortana-Stimmerkennung Sonderzeichen wie oder π zu diktieren Die Spracherkennung hat generell Schwierigkeiten kurze und sprachlich gleich oder aumlhnlich klingende Antworten (Homophone) des FormFlow zu unterscheiden Es war zum Beispiel nicht moumlglich den Invokationsnamen bdquoLuisBotldquo zu diktie-ren Dies wurde unterschiedlich als bdquoluis potldquo oder bdquole-wis botldquo fehlinterpretiert Dieses Problem duumlrfte auch andere (deutsche) Produkt- Firmen- und Eigennamen betreffen Als Problemloumlsung konnten kanalspezische Angaben des Benutzers herangezogen werden Es erwies sich als moumlglich nach einer expliziten Zustimmung des Benutzers die Kontakt- Orts- und Benutzerdaten auszu-werten Seltene Vornamen oder Familiennamen koumlnnen auf diese Weise uumlbernommen werden ohne dass der Be-nutzer sie diktieren muss

Letztlich ist auch die Nutzerakzeptanz fuumlr Bots in Deutschland eine Herausforderung fuumlr Unternehmen Selbst in der Generation die als bdquoDigital Nativesldquo gilt gibt es Benutzer die bislang wenig mit Sprachunterstuumlt-zung gearbeitet haben bzw Probleme haben erlernte Konzepte wie etwa die Diktierfunktion in WhatsApp auf andere Produkte zu uumlbertragen Laut dem Online-portal fuumlr Statistik Statista GmbH haben 2016 nur etwa 25 Millionen von rund 80 Millionen Einwohnern in Deutschland angegeben bereits einen Sprachassistenten

genutzt zu haben [18] Es bleibt also eine Herausfor-derung mit dem Wachstum in dieser Branche Schritt zu halten den das Marktforschungsinstitut Gartner Inc fuumlr dialogunterstuumltzende Assistenten [19] genauso vor-hersagt wie den Zwei-Billionen-Umsatz fuumlr intelligente Lautsprecher fuumlr 2020 [20]

Anbieter und ProdukteEinen guten Uumlberblick uumlber die Produkte und Anbieter auf dem Markt bietet die Website von Predictive Analy-sis [21] Dort werden neben den multinationalen Kon-zernen und ihren Produkten auch kleinere Unternehmen und ihre Loumlsungen vorgestellt und ausgewertet Generell laumlsst sich hierbei sagen dass Google mit seinem Google Assistant uumlber die meisten Nutzer weltweit verfuumlgt Auch in der Praumlzision der Spracherkennung ist Google weiter vorangeschritten als beispielsweise die Microsoft- oder Amazon-Produkte Apple dagegen liegt in Bezug auf die Praumlzision zwar hinter Google aber noch vor Mi-crosoft und Amazon Wie die Slideshow von Konstantin Savenkov Intento Inc bdquoAspect Natural Lan guage Un-derstandingldquo zeigt [22] ist auch IBM mit seiner Wat-son ai- Plattform eine nicht zu unterschaumltzende Groumlszlige was Performanz ab einer gewissen Datensatzmenge angeht Die Untersuchung die Savenkov dazu durch-gefuumlhrt hat zeigt die Staumlrken und Schwaumlchen der fuumlnf groumlszligten Bot-Anbieter auf

Anzeige

90 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Es gibt neben den kommerziellen Anbietern im Uumlbri-gen auch zwei Open-Source-Projekte Lucida [23] und Athena [24] die sich mit kuumlnstlicher Intelligenz und sprach- bzw bildverarbeitenden dialoggestuumltzten Syste-men beschaumlftigen Lucida hat allerdings recht einschraumln-kende Systemvoraussetzungen weil es nur auf zwei bestimmten Ubuntu-Versionen installierbar ist Dieses Problem kann in VirtualBox umgangen werden sofern ein anderes Betriebssystem auf 64-Bit-Basis verfuumlgbar ist Lucida erfordert einen Arbeitsspeicher von mehr als 6 GB RAM Athena zielt darauf die Ergebnisse von Siri Alexa und Co zu erreichen und zu erweitern Es ist modular aufgebaut und bietet momentan Module fuumlr Musikwiedergabe Social Media (Twitter) und Hausau-tomation Athena ist in Python programmiert

FazitSprachgestuumltzte Unterhaltungen mit Bots weisen einen vielversprechenden Weg Strukturen im Unternehmen efzienter und effektiver zu machen Zudem bieten sie die Moumlglichkeit bisher nicht erreichte Benutzergruppen zu erschlieszligen Die datenschutzrechtlichen und sicher-heitskritischen Bedingungen koumlnnen durch Verschluumls-selungstechniken neue Authentizierungstechniken und Service Level Agreements geloumlst werden Nicht nur Fremdanbieterplattformen sondern auch eigene Systeme sind dank vorhandener Open-Source-Projek-te wie Athena nutzbar Dies lohnt sich weil Bots und der Handel mit Bot-faumlhigen Geraumlten eine zunehmen-de Verbreitung erfahren sodass es sogar denkbar ist dass Bot2Bot-Konversationen regulaumlr stattnden (auch Multi-Agent-Systeme genannt) Ein klassisches Beispiel hierfuumlr ist die Organisation von Terminen und z B die Bitte an einen Bot bdquoBitte Cortana unterhalte dich mal mit Siri von meinem Mann und mit Google Assistant von meiner Schwester und pruumlfe wann wir Zeit haben Pizza essen zu gehenldquo

Friederike Geissler Junior Consultant Development amp Integration Services bei der innobis AG hat im Unternehmen ihre Abschluss-arbeit zum Thema bdquoSprachassistenten in mobilen Bankanwendun-genldquo geschrieben Hierbei sind zwei Prototypen eine App und ein Bot entstanden die einen Benutzer durch einen Sprachassisten-

ten beim Ausfuumlllen eines Onlineformulars unterstuumltzen

[2] Nuance bdquoControl your computer voice with speed and accuracyldquo httpswwwnuancecomdragonhtmlstandardpage-mainpar_backgroundimage_copy

[3] Carlini N Wagner D bdquoAudio adversarial examples Targeted Attacks on Speech-to-Textldquo University of California 2018 httpsarxivorgpdf180101944pdf

[4] Song L Mittal P bdquoInaudible Voice Commandsldquo Princeton University 2017 httpsarxivorgpdf170807238pdf

[5] Feng H Fawaz K Shin K bdquoContinuous Authentication for Voice Assistants Computer Science ndash Cryptography and Securityldquo httpsarxivorgabs170104507

[6] bdquoBots fuumlr die Bank Die Zukunft der Kommunikationldquo httpscustomersmicrosoftcomen-usstoryducia-gadit-cognitive-services-cortana-azure-powerbi-banking-germany

[7] Okamoto S Scerri P Sycara K bdquoToward an understanding of the impact of software personal assistants on human organizationsldquo httpdxdoiorg10114511606331160745

[8] Haslam R bdquoThe bots are coming ndash 5 essential things ntech rms need to knowldquo httpsbanknxtcom56496bots-5-essential-ntech

[9] Lunden I bdquoRise of the bots Techcrunchldquo httpstechcrunchcom20160407rise-of-the-bots-x-ai-raises-23m-more-for-amy-a-bot-that-arranges-appointmentsguccounter=1

[10] LuisBot Innobis AG httpsgithubcomfr6087Hoermirzu

[11] Vincent J bdquoTwitter taught Microsoft AIrsquos Chatbot to be a racist asshole in less than a dayldquo httpswwwthevergecom201632411297050tay-microsoft-chatbot-racist

[12] Microsoft Botbuilder Sample Projects httpsgithubcomMicrosoftBotBuilder-Samples

[13] Brown P bdquoInternet of Stranger Thingsldquo httpsblogswindowscombuildingapps20161031the-internet-of-stranger-things-wall-part-1-introduction-and-remote-wiring

[14] Jibo httpswwwjibocom

[15] Key concepts of DirectLine API 30 Microsoft Botframework documentation httpsdocsmicrosoftcomen-usazurebot-servicerest-apibot-framework-rest-direct-line-3-0-conceptsview=azure-bot-service-30

[16] Osborne R bdquoConnecting Alexa to a Botframework Chatbotldquo httpswwwrobinosbornecouk20161219connecting-alexa-to-a-botframework-chatbot

[17] Snips Platform Documentation httpsnipsai

[18] Digital Assistants Statista dossier httpsdestatistacomstatistikdatenstudie620225umfragenutzung-von-sprachassistenten-in-deutschland

[19] Love J bdquoGartnerrsquos top 10 predictions for 2016 and the lsquopost-apprsquo eraldquo httpswwwitworldcanadacomarticlegartner-top-ten-predictions-for-2016-and-post-app-era377594

[20] bdquoGartner Says Worldwide Spending on VPA-Enabled Wireless Speakers Will Top $2 Billion by 2020ldquo httpswwwgartnercomnewsroomid3464317

[21] Top 22 intelligent personal assistants or automated personal assistants PredictiveAnalysis httpswwwpredictiveanalyticstodaycomtop-intelligent-personal-assistants-automated-personal-assistantscontent-anchor

[22] Savenkov K bdquoNLU Intent Detectionldquo Intento 2017 httpswwwslidesharenetKonstantinSavenkovnlu-intent-detection-benchmark-by-intento-august-2017

[23] Lucida httpsgithubcomclaritylablucida

[24] Athena httpsgithubcomrcbyronhey-athena-client

Mit Lucida und Athena gibt es zwei Open-Source-Projekte die sich mit

kuumlnstlicher Intelligenz beschaumlftigen

Links amp Literatur

[1] Ng Andrew httpstwittercomAndrewYNgstatus809579698883727360

Trainings fuumlr Softwarearchitekten mit iSAQB-Zerti zierung

wwwsoftware-architecture-campde

Das Camp bietet Ihnen eine fundierte und pragmatische Einfuumlhrung in Software-architektur mit hohem Uumlbungsanteil

Die verschiedenen Module des Advanced Levels vertiefen Ihre Kenntnisse und Faumlhig-keiten in den Bereichen Technik Methodik und Kommunikation

Praumlsentiert von in Kooperation mit iSAQBreg

Veranstalter

Jet983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555

983555983555si983579983579983555983555983555983555983579983555983555983555983579983579983579983579te983579983579983579983555

Mit Zerti zierung zum

Mit Zerti zierung zum

bdquoCerti ed Professional for Software Architecture ndash Foundation Level (CPSA-F)ldquo

bdquoCerti ed Professional for Software Architecture ndash Advanced Level (CPSA-A)ldquo

Mit Zerti zierung zum bdquoCerti ed Professional for Software Architectureldquo iSAQBreg

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde

Page 7: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

88 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Die Nachricht wird an den LUIS-Dialog verwiesen und dieser kommuniziert im Hintergrund mit dem LUIS API Dieses meldet zuruumlck dass bdquoNoneldquo der wahr-scheinlichste Beweggrund der Anfrage war Daraufhin reagiert der Bot mit durch den Entwickler festgelegten Maszlignahmen In diesem Beispiel waumlhlt der Bot aus ei-ner Liste mit moumlglichen Variationen aus und fordert zur erneuten Eingabe auf Die Liste selektiert zufaumlllig den Wert bdquoDiese Antwort verstehe ich nichtldquo (Listing 2) Die moumlglichen Antworten sind programmatisch oder uumlber den JSON-Aufbau zu denieren

Mit der Einbindung von LUIS wird ein erweitertes Navigationskonzept geschaffen das die FormFlow-Na-vigationskommandos ergaumlnzt Es eignet sich besonders

fuumlr Bereiche in denen nicht klar ist welches Anliegen der Benutzer hat also etwa in einer Hilferubrik oder auf einer Kontaktseite Sinnvoll ist die Nutzung auch bei FAQs wobei die meisten Anbieter fuumlr diesen Be-reich auch sogenannte QA-Frameworks (Question-and-Answer-Frameworks) anbieten

Sicherheitsbedenken technische Schwierigkeiten und gesellschaftliche AkzeptanzEine der groumlszligten Herausforderungen im Bereich Bot-Programmierung ist das Thema Sicherheit Da saumlmt-liche Kommunikation uumlber das Internet laumluft ndash sofern keine Anbieter wie Snipsai im Einsatz sind [17] die mit lokal analysierender AI arbeiten ndash sind die ausge-tauschten Informationen exponiert Das wird durch eine Verschluumlsselung oder andere meist kostenpichtige Si-cherheitsmechanismen der Anbieter kompensiert Ver-antwortlich fuumlr die Funktionalitaumlt Verfuumlgbarkeit und Sicherheit sind laut den AGB verschiedenster Anbieter die Entwickler bzw Produkteigner da die Anbieter le-diglich eine Betaversion zur Verfuumlgung stellen Das be-deutet dass fuumlr die unternehmerische Nutzung in der EU ein Service Level Agreement notwendig ist was auch aus datenschutzrechtlicher Sicht empfehlenswert ist

Wenn der Bot wie im innobis-Projekt in einem Sprachassistenten integriert ist ergeben sich zudem technische Abhaumlngigkeiten vom Anbieter Es ist fuumlr den Bot-Entwickler nicht moumlglich spezielle Verhaltenswei-sen des benutzten Sprachassistenten zu beeinussen (so schloss sich etwa die Anwendung wenn der Benutzer auszligerhalb des Cortana Canvas klickte) Probleme gab es auch mit zu schnellen Ein- und Ausblendungen der

Abb 4 LUIS-Dialog wenn einer Aumluszligerung keine Intention zugeordnet werden konn-te (Screenshot)

Listing 2 Codeauszug aus den Nachbearbeitungsroutinen zur erkannten LUIS-Intention

[Serializable] public class BasicLuisDialog LuisDialogltobjectgt

ltsummarygt Der Konstruktor verwendet Infos aus der webcong um sich gegenuumlber dem LUIS-Sprachmodell-API zu authentizieren ltsummarygt public BasicLuisDialog() base(new LuisService(new LuisModelAttribute(CongurationManagerAppSettings[LuisAppId] CongurationManagerAppSettings[LuisAPIKey])))

ltsummarygt Die ldquokeine-Intentionrdquo-Intention ist die Intention die die AI erkennt wenn sie sich nicht sicher ist welche Intention gemeint ist ltsummarygt ltreturnsgtltreturnsgt [LuisIntent()]

[LuisIntent(None)] public async Task NoneIntent(IDialogContext context LuisResult result) string luisno = Resource1LuisNonesorry Didnrsquot understandhellip await contextPostAsync(Resource1LuisNone+$resultQuery) contextWait(MessageReceived)

ltsummarygt Diese Intention ist beispielhaft fuumlr eine selbstimplementierte Intention Damit sie auf diese Kundenanfrage antwortet muss die Aumluszligerung des Kunden von der AI als aumlhnlich zu einer bekannten Intention im Web Service als am houmlchsten wahrscheinlich erkannt werden ltsummarygt ltreturnsgtltreturnsgt [LuisIntent(Greeting)] public async Task GreetingIntent(IDialogContext context LuisResult result) await contextPostAsync(ResourceResource1regionalGreeting) contextWait(MessageReceived)

ARCHITEKTURWELTEN REAL UND VIRTUELL

wwwentwickler-pressde baukunst-fuer-softwarearchitekten

Jan Peuker

Baukunst fuumlr Softwarearchitekten

Was Software mit Architektur zu tun hat

288 SeitenISBN 978-3-86802-118-9

Preis 2490 euro (D)2560 euro (A)

ChatbotsInternet of

Things

Fragen und Timeouts Daruumlber hinaus war es nicht moumlglich der Cortana-Stimmerkennung Sonderzeichen wie oder π zu diktieren Die Spracherkennung hat generell Schwierigkeiten kurze und sprachlich gleich oder aumlhnlich klingende Antworten (Homophone) des FormFlow zu unterscheiden Es war zum Beispiel nicht moumlglich den Invokationsnamen bdquoLuisBotldquo zu diktie-ren Dies wurde unterschiedlich als bdquoluis potldquo oder bdquole-wis botldquo fehlinterpretiert Dieses Problem duumlrfte auch andere (deutsche) Produkt- Firmen- und Eigennamen betreffen Als Problemloumlsung konnten kanalspezische Angaben des Benutzers herangezogen werden Es erwies sich als moumlglich nach einer expliziten Zustimmung des Benutzers die Kontakt- Orts- und Benutzerdaten auszu-werten Seltene Vornamen oder Familiennamen koumlnnen auf diese Weise uumlbernommen werden ohne dass der Be-nutzer sie diktieren muss

Letztlich ist auch die Nutzerakzeptanz fuumlr Bots in Deutschland eine Herausforderung fuumlr Unternehmen Selbst in der Generation die als bdquoDigital Nativesldquo gilt gibt es Benutzer die bislang wenig mit Sprachunterstuumlt-zung gearbeitet haben bzw Probleme haben erlernte Konzepte wie etwa die Diktierfunktion in WhatsApp auf andere Produkte zu uumlbertragen Laut dem Online-portal fuumlr Statistik Statista GmbH haben 2016 nur etwa 25 Millionen von rund 80 Millionen Einwohnern in Deutschland angegeben bereits einen Sprachassistenten

genutzt zu haben [18] Es bleibt also eine Herausfor-derung mit dem Wachstum in dieser Branche Schritt zu halten den das Marktforschungsinstitut Gartner Inc fuumlr dialogunterstuumltzende Assistenten [19] genauso vor-hersagt wie den Zwei-Billionen-Umsatz fuumlr intelligente Lautsprecher fuumlr 2020 [20]

Anbieter und ProdukteEinen guten Uumlberblick uumlber die Produkte und Anbieter auf dem Markt bietet die Website von Predictive Analy-sis [21] Dort werden neben den multinationalen Kon-zernen und ihren Produkten auch kleinere Unternehmen und ihre Loumlsungen vorgestellt und ausgewertet Generell laumlsst sich hierbei sagen dass Google mit seinem Google Assistant uumlber die meisten Nutzer weltweit verfuumlgt Auch in der Praumlzision der Spracherkennung ist Google weiter vorangeschritten als beispielsweise die Microsoft- oder Amazon-Produkte Apple dagegen liegt in Bezug auf die Praumlzision zwar hinter Google aber noch vor Mi-crosoft und Amazon Wie die Slideshow von Konstantin Savenkov Intento Inc bdquoAspect Natural Lan guage Un-derstandingldquo zeigt [22] ist auch IBM mit seiner Wat-son ai- Plattform eine nicht zu unterschaumltzende Groumlszlige was Performanz ab einer gewissen Datensatzmenge angeht Die Untersuchung die Savenkov dazu durch-gefuumlhrt hat zeigt die Staumlrken und Schwaumlchen der fuumlnf groumlszligten Bot-Anbieter auf

Anzeige

90 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Es gibt neben den kommerziellen Anbietern im Uumlbri-gen auch zwei Open-Source-Projekte Lucida [23] und Athena [24] die sich mit kuumlnstlicher Intelligenz und sprach- bzw bildverarbeitenden dialoggestuumltzten Syste-men beschaumlftigen Lucida hat allerdings recht einschraumln-kende Systemvoraussetzungen weil es nur auf zwei bestimmten Ubuntu-Versionen installierbar ist Dieses Problem kann in VirtualBox umgangen werden sofern ein anderes Betriebssystem auf 64-Bit-Basis verfuumlgbar ist Lucida erfordert einen Arbeitsspeicher von mehr als 6 GB RAM Athena zielt darauf die Ergebnisse von Siri Alexa und Co zu erreichen und zu erweitern Es ist modular aufgebaut und bietet momentan Module fuumlr Musikwiedergabe Social Media (Twitter) und Hausau-tomation Athena ist in Python programmiert

FazitSprachgestuumltzte Unterhaltungen mit Bots weisen einen vielversprechenden Weg Strukturen im Unternehmen efzienter und effektiver zu machen Zudem bieten sie die Moumlglichkeit bisher nicht erreichte Benutzergruppen zu erschlieszligen Die datenschutzrechtlichen und sicher-heitskritischen Bedingungen koumlnnen durch Verschluumls-selungstechniken neue Authentizierungstechniken und Service Level Agreements geloumlst werden Nicht nur Fremdanbieterplattformen sondern auch eigene Systeme sind dank vorhandener Open-Source-Projek-te wie Athena nutzbar Dies lohnt sich weil Bots und der Handel mit Bot-faumlhigen Geraumlten eine zunehmen-de Verbreitung erfahren sodass es sogar denkbar ist dass Bot2Bot-Konversationen regulaumlr stattnden (auch Multi-Agent-Systeme genannt) Ein klassisches Beispiel hierfuumlr ist die Organisation von Terminen und z B die Bitte an einen Bot bdquoBitte Cortana unterhalte dich mal mit Siri von meinem Mann und mit Google Assistant von meiner Schwester und pruumlfe wann wir Zeit haben Pizza essen zu gehenldquo

Friederike Geissler Junior Consultant Development amp Integration Services bei der innobis AG hat im Unternehmen ihre Abschluss-arbeit zum Thema bdquoSprachassistenten in mobilen Bankanwendun-genldquo geschrieben Hierbei sind zwei Prototypen eine App und ein Bot entstanden die einen Benutzer durch einen Sprachassisten-

ten beim Ausfuumlllen eines Onlineformulars unterstuumltzen

[2] Nuance bdquoControl your computer voice with speed and accuracyldquo httpswwwnuancecomdragonhtmlstandardpage-mainpar_backgroundimage_copy

[3] Carlini N Wagner D bdquoAudio adversarial examples Targeted Attacks on Speech-to-Textldquo University of California 2018 httpsarxivorgpdf180101944pdf

[4] Song L Mittal P bdquoInaudible Voice Commandsldquo Princeton University 2017 httpsarxivorgpdf170807238pdf

[5] Feng H Fawaz K Shin K bdquoContinuous Authentication for Voice Assistants Computer Science ndash Cryptography and Securityldquo httpsarxivorgabs170104507

[6] bdquoBots fuumlr die Bank Die Zukunft der Kommunikationldquo httpscustomersmicrosoftcomen-usstoryducia-gadit-cognitive-services-cortana-azure-powerbi-banking-germany

[7] Okamoto S Scerri P Sycara K bdquoToward an understanding of the impact of software personal assistants on human organizationsldquo httpdxdoiorg10114511606331160745

[8] Haslam R bdquoThe bots are coming ndash 5 essential things ntech rms need to knowldquo httpsbanknxtcom56496bots-5-essential-ntech

[9] Lunden I bdquoRise of the bots Techcrunchldquo httpstechcrunchcom20160407rise-of-the-bots-x-ai-raises-23m-more-for-amy-a-bot-that-arranges-appointmentsguccounter=1

[10] LuisBot Innobis AG httpsgithubcomfr6087Hoermirzu

[11] Vincent J bdquoTwitter taught Microsoft AIrsquos Chatbot to be a racist asshole in less than a dayldquo httpswwwthevergecom201632411297050tay-microsoft-chatbot-racist

[12] Microsoft Botbuilder Sample Projects httpsgithubcomMicrosoftBotBuilder-Samples

[13] Brown P bdquoInternet of Stranger Thingsldquo httpsblogswindowscombuildingapps20161031the-internet-of-stranger-things-wall-part-1-introduction-and-remote-wiring

[14] Jibo httpswwwjibocom

[15] Key concepts of DirectLine API 30 Microsoft Botframework documentation httpsdocsmicrosoftcomen-usazurebot-servicerest-apibot-framework-rest-direct-line-3-0-conceptsview=azure-bot-service-30

[16] Osborne R bdquoConnecting Alexa to a Botframework Chatbotldquo httpswwwrobinosbornecouk20161219connecting-alexa-to-a-botframework-chatbot

[17] Snips Platform Documentation httpsnipsai

[18] Digital Assistants Statista dossier httpsdestatistacomstatistikdatenstudie620225umfragenutzung-von-sprachassistenten-in-deutschland

[19] Love J bdquoGartnerrsquos top 10 predictions for 2016 and the lsquopost-apprsquo eraldquo httpswwwitworldcanadacomarticlegartner-top-ten-predictions-for-2016-and-post-app-era377594

[20] bdquoGartner Says Worldwide Spending on VPA-Enabled Wireless Speakers Will Top $2 Billion by 2020ldquo httpswwwgartnercomnewsroomid3464317

[21] Top 22 intelligent personal assistants or automated personal assistants PredictiveAnalysis httpswwwpredictiveanalyticstodaycomtop-intelligent-personal-assistants-automated-personal-assistantscontent-anchor

[22] Savenkov K bdquoNLU Intent Detectionldquo Intento 2017 httpswwwslidesharenetKonstantinSavenkovnlu-intent-detection-benchmark-by-intento-august-2017

[23] Lucida httpsgithubcomclaritylablucida

[24] Athena httpsgithubcomrcbyronhey-athena-client

Mit Lucida und Athena gibt es zwei Open-Source-Projekte die sich mit

kuumlnstlicher Intelligenz beschaumlftigen

Links amp Literatur

[1] Ng Andrew httpstwittercomAndrewYNgstatus809579698883727360

Trainings fuumlr Softwarearchitekten mit iSAQB-Zerti zierung

wwwsoftware-architecture-campde

Das Camp bietet Ihnen eine fundierte und pragmatische Einfuumlhrung in Software-architektur mit hohem Uumlbungsanteil

Die verschiedenen Module des Advanced Levels vertiefen Ihre Kenntnisse und Faumlhig-keiten in den Bereichen Technik Methodik und Kommunikation

Praumlsentiert von in Kooperation mit iSAQBreg

Veranstalter

Jet983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555

983555983555si983579983579983555983555983555983555983579983555983555983555983579983579983579983579te983579983579983579983555

Mit Zerti zierung zum

Mit Zerti zierung zum

bdquoCerti ed Professional for Software Architecture ndash Foundation Level (CPSA-F)ldquo

bdquoCerti ed Professional for Software Architecture ndash Advanced Level (CPSA-A)ldquo

Mit Zerti zierung zum bdquoCerti ed Professional for Software Architectureldquo iSAQBreg

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde

Page 8: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

ChatbotsInternet of

Things

Fragen und Timeouts Daruumlber hinaus war es nicht moumlglich der Cortana-Stimmerkennung Sonderzeichen wie oder π zu diktieren Die Spracherkennung hat generell Schwierigkeiten kurze und sprachlich gleich oder aumlhnlich klingende Antworten (Homophone) des FormFlow zu unterscheiden Es war zum Beispiel nicht moumlglich den Invokationsnamen bdquoLuisBotldquo zu diktie-ren Dies wurde unterschiedlich als bdquoluis potldquo oder bdquole-wis botldquo fehlinterpretiert Dieses Problem duumlrfte auch andere (deutsche) Produkt- Firmen- und Eigennamen betreffen Als Problemloumlsung konnten kanalspezische Angaben des Benutzers herangezogen werden Es erwies sich als moumlglich nach einer expliziten Zustimmung des Benutzers die Kontakt- Orts- und Benutzerdaten auszu-werten Seltene Vornamen oder Familiennamen koumlnnen auf diese Weise uumlbernommen werden ohne dass der Be-nutzer sie diktieren muss

Letztlich ist auch die Nutzerakzeptanz fuumlr Bots in Deutschland eine Herausforderung fuumlr Unternehmen Selbst in der Generation die als bdquoDigital Nativesldquo gilt gibt es Benutzer die bislang wenig mit Sprachunterstuumlt-zung gearbeitet haben bzw Probleme haben erlernte Konzepte wie etwa die Diktierfunktion in WhatsApp auf andere Produkte zu uumlbertragen Laut dem Online-portal fuumlr Statistik Statista GmbH haben 2016 nur etwa 25 Millionen von rund 80 Millionen Einwohnern in Deutschland angegeben bereits einen Sprachassistenten

genutzt zu haben [18] Es bleibt also eine Herausfor-derung mit dem Wachstum in dieser Branche Schritt zu halten den das Marktforschungsinstitut Gartner Inc fuumlr dialogunterstuumltzende Assistenten [19] genauso vor-hersagt wie den Zwei-Billionen-Umsatz fuumlr intelligente Lautsprecher fuumlr 2020 [20]

Anbieter und ProdukteEinen guten Uumlberblick uumlber die Produkte und Anbieter auf dem Markt bietet die Website von Predictive Analy-sis [21] Dort werden neben den multinationalen Kon-zernen und ihren Produkten auch kleinere Unternehmen und ihre Loumlsungen vorgestellt und ausgewertet Generell laumlsst sich hierbei sagen dass Google mit seinem Google Assistant uumlber die meisten Nutzer weltweit verfuumlgt Auch in der Praumlzision der Spracherkennung ist Google weiter vorangeschritten als beispielsweise die Microsoft- oder Amazon-Produkte Apple dagegen liegt in Bezug auf die Praumlzision zwar hinter Google aber noch vor Mi-crosoft und Amazon Wie die Slideshow von Konstantin Savenkov Intento Inc bdquoAspect Natural Lan guage Un-derstandingldquo zeigt [22] ist auch IBM mit seiner Wat-son ai- Plattform eine nicht zu unterschaumltzende Groumlszlige was Performanz ab einer gewissen Datensatzmenge angeht Die Untersuchung die Savenkov dazu durch-gefuumlhrt hat zeigt die Staumlrken und Schwaumlchen der fuumlnf groumlszligten Bot-Anbieter auf

Anzeige

90 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Es gibt neben den kommerziellen Anbietern im Uumlbri-gen auch zwei Open-Source-Projekte Lucida [23] und Athena [24] die sich mit kuumlnstlicher Intelligenz und sprach- bzw bildverarbeitenden dialoggestuumltzten Syste-men beschaumlftigen Lucida hat allerdings recht einschraumln-kende Systemvoraussetzungen weil es nur auf zwei bestimmten Ubuntu-Versionen installierbar ist Dieses Problem kann in VirtualBox umgangen werden sofern ein anderes Betriebssystem auf 64-Bit-Basis verfuumlgbar ist Lucida erfordert einen Arbeitsspeicher von mehr als 6 GB RAM Athena zielt darauf die Ergebnisse von Siri Alexa und Co zu erreichen und zu erweitern Es ist modular aufgebaut und bietet momentan Module fuumlr Musikwiedergabe Social Media (Twitter) und Hausau-tomation Athena ist in Python programmiert

FazitSprachgestuumltzte Unterhaltungen mit Bots weisen einen vielversprechenden Weg Strukturen im Unternehmen efzienter und effektiver zu machen Zudem bieten sie die Moumlglichkeit bisher nicht erreichte Benutzergruppen zu erschlieszligen Die datenschutzrechtlichen und sicher-heitskritischen Bedingungen koumlnnen durch Verschluumls-selungstechniken neue Authentizierungstechniken und Service Level Agreements geloumlst werden Nicht nur Fremdanbieterplattformen sondern auch eigene Systeme sind dank vorhandener Open-Source-Projek-te wie Athena nutzbar Dies lohnt sich weil Bots und der Handel mit Bot-faumlhigen Geraumlten eine zunehmen-de Verbreitung erfahren sodass es sogar denkbar ist dass Bot2Bot-Konversationen regulaumlr stattnden (auch Multi-Agent-Systeme genannt) Ein klassisches Beispiel hierfuumlr ist die Organisation von Terminen und z B die Bitte an einen Bot bdquoBitte Cortana unterhalte dich mal mit Siri von meinem Mann und mit Google Assistant von meiner Schwester und pruumlfe wann wir Zeit haben Pizza essen zu gehenldquo

Friederike Geissler Junior Consultant Development amp Integration Services bei der innobis AG hat im Unternehmen ihre Abschluss-arbeit zum Thema bdquoSprachassistenten in mobilen Bankanwendun-genldquo geschrieben Hierbei sind zwei Prototypen eine App und ein Bot entstanden die einen Benutzer durch einen Sprachassisten-

ten beim Ausfuumlllen eines Onlineformulars unterstuumltzen

[2] Nuance bdquoControl your computer voice with speed and accuracyldquo httpswwwnuancecomdragonhtmlstandardpage-mainpar_backgroundimage_copy

[3] Carlini N Wagner D bdquoAudio adversarial examples Targeted Attacks on Speech-to-Textldquo University of California 2018 httpsarxivorgpdf180101944pdf

[4] Song L Mittal P bdquoInaudible Voice Commandsldquo Princeton University 2017 httpsarxivorgpdf170807238pdf

[5] Feng H Fawaz K Shin K bdquoContinuous Authentication for Voice Assistants Computer Science ndash Cryptography and Securityldquo httpsarxivorgabs170104507

[6] bdquoBots fuumlr die Bank Die Zukunft der Kommunikationldquo httpscustomersmicrosoftcomen-usstoryducia-gadit-cognitive-services-cortana-azure-powerbi-banking-germany

[7] Okamoto S Scerri P Sycara K bdquoToward an understanding of the impact of software personal assistants on human organizationsldquo httpdxdoiorg10114511606331160745

[8] Haslam R bdquoThe bots are coming ndash 5 essential things ntech rms need to knowldquo httpsbanknxtcom56496bots-5-essential-ntech

[9] Lunden I bdquoRise of the bots Techcrunchldquo httpstechcrunchcom20160407rise-of-the-bots-x-ai-raises-23m-more-for-amy-a-bot-that-arranges-appointmentsguccounter=1

[10] LuisBot Innobis AG httpsgithubcomfr6087Hoermirzu

[11] Vincent J bdquoTwitter taught Microsoft AIrsquos Chatbot to be a racist asshole in less than a dayldquo httpswwwthevergecom201632411297050tay-microsoft-chatbot-racist

[12] Microsoft Botbuilder Sample Projects httpsgithubcomMicrosoftBotBuilder-Samples

[13] Brown P bdquoInternet of Stranger Thingsldquo httpsblogswindowscombuildingapps20161031the-internet-of-stranger-things-wall-part-1-introduction-and-remote-wiring

[14] Jibo httpswwwjibocom

[15] Key concepts of DirectLine API 30 Microsoft Botframework documentation httpsdocsmicrosoftcomen-usazurebot-servicerest-apibot-framework-rest-direct-line-3-0-conceptsview=azure-bot-service-30

[16] Osborne R bdquoConnecting Alexa to a Botframework Chatbotldquo httpswwwrobinosbornecouk20161219connecting-alexa-to-a-botframework-chatbot

[17] Snips Platform Documentation httpsnipsai

[18] Digital Assistants Statista dossier httpsdestatistacomstatistikdatenstudie620225umfragenutzung-von-sprachassistenten-in-deutschland

[19] Love J bdquoGartnerrsquos top 10 predictions for 2016 and the lsquopost-apprsquo eraldquo httpswwwitworldcanadacomarticlegartner-top-ten-predictions-for-2016-and-post-app-era377594

[20] bdquoGartner Says Worldwide Spending on VPA-Enabled Wireless Speakers Will Top $2 Billion by 2020ldquo httpswwwgartnercomnewsroomid3464317

[21] Top 22 intelligent personal assistants or automated personal assistants PredictiveAnalysis httpswwwpredictiveanalyticstodaycomtop-intelligent-personal-assistants-automated-personal-assistantscontent-anchor

[22] Savenkov K bdquoNLU Intent Detectionldquo Intento 2017 httpswwwslidesharenetKonstantinSavenkovnlu-intent-detection-benchmark-by-intento-august-2017

[23] Lucida httpsgithubcomclaritylablucida

[24] Athena httpsgithubcomrcbyronhey-athena-client

Mit Lucida und Athena gibt es zwei Open-Source-Projekte die sich mit

kuumlnstlicher Intelligenz beschaumlftigen

Links amp Literatur

[1] Ng Andrew httpstwittercomAndrewYNgstatus809579698883727360

Trainings fuumlr Softwarearchitekten mit iSAQB-Zerti zierung

wwwsoftware-architecture-campde

Das Camp bietet Ihnen eine fundierte und pragmatische Einfuumlhrung in Software-architektur mit hohem Uumlbungsanteil

Die verschiedenen Module des Advanced Levels vertiefen Ihre Kenntnisse und Faumlhig-keiten in den Bereichen Technik Methodik und Kommunikation

Praumlsentiert von in Kooperation mit iSAQBreg

Veranstalter

Jet983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555

983555983555si983579983579983555983555983555983555983579983555983555983555983579983579983579983579te983579983579983579983555

Mit Zerti zierung zum

Mit Zerti zierung zum

bdquoCerti ed Professional for Software Architecture ndash Foundation Level (CPSA-F)ldquo

bdquoCerti ed Professional for Software Architecture ndash Advanced Level (CPSA-A)ldquo

Mit Zerti zierung zum bdquoCerti ed Professional for Software Architectureldquo iSAQBreg

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde

Page 9: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

90 Entwickler Magazin 12019 wwwentwickler-magazinde

Internet of Things Chatbots

Es gibt neben den kommerziellen Anbietern im Uumlbri-gen auch zwei Open-Source-Projekte Lucida [23] und Athena [24] die sich mit kuumlnstlicher Intelligenz und sprach- bzw bildverarbeitenden dialoggestuumltzten Syste-men beschaumlftigen Lucida hat allerdings recht einschraumln-kende Systemvoraussetzungen weil es nur auf zwei bestimmten Ubuntu-Versionen installierbar ist Dieses Problem kann in VirtualBox umgangen werden sofern ein anderes Betriebssystem auf 64-Bit-Basis verfuumlgbar ist Lucida erfordert einen Arbeitsspeicher von mehr als 6 GB RAM Athena zielt darauf die Ergebnisse von Siri Alexa und Co zu erreichen und zu erweitern Es ist modular aufgebaut und bietet momentan Module fuumlr Musikwiedergabe Social Media (Twitter) und Hausau-tomation Athena ist in Python programmiert

FazitSprachgestuumltzte Unterhaltungen mit Bots weisen einen vielversprechenden Weg Strukturen im Unternehmen efzienter und effektiver zu machen Zudem bieten sie die Moumlglichkeit bisher nicht erreichte Benutzergruppen zu erschlieszligen Die datenschutzrechtlichen und sicher-heitskritischen Bedingungen koumlnnen durch Verschluumls-selungstechniken neue Authentizierungstechniken und Service Level Agreements geloumlst werden Nicht nur Fremdanbieterplattformen sondern auch eigene Systeme sind dank vorhandener Open-Source-Projek-te wie Athena nutzbar Dies lohnt sich weil Bots und der Handel mit Bot-faumlhigen Geraumlten eine zunehmen-de Verbreitung erfahren sodass es sogar denkbar ist dass Bot2Bot-Konversationen regulaumlr stattnden (auch Multi-Agent-Systeme genannt) Ein klassisches Beispiel hierfuumlr ist die Organisation von Terminen und z B die Bitte an einen Bot bdquoBitte Cortana unterhalte dich mal mit Siri von meinem Mann und mit Google Assistant von meiner Schwester und pruumlfe wann wir Zeit haben Pizza essen zu gehenldquo

Friederike Geissler Junior Consultant Development amp Integration Services bei der innobis AG hat im Unternehmen ihre Abschluss-arbeit zum Thema bdquoSprachassistenten in mobilen Bankanwendun-genldquo geschrieben Hierbei sind zwei Prototypen eine App und ein Bot entstanden die einen Benutzer durch einen Sprachassisten-

ten beim Ausfuumlllen eines Onlineformulars unterstuumltzen

[2] Nuance bdquoControl your computer voice with speed and accuracyldquo httpswwwnuancecomdragonhtmlstandardpage-mainpar_backgroundimage_copy

[3] Carlini N Wagner D bdquoAudio adversarial examples Targeted Attacks on Speech-to-Textldquo University of California 2018 httpsarxivorgpdf180101944pdf

[4] Song L Mittal P bdquoInaudible Voice Commandsldquo Princeton University 2017 httpsarxivorgpdf170807238pdf

[5] Feng H Fawaz K Shin K bdquoContinuous Authentication for Voice Assistants Computer Science ndash Cryptography and Securityldquo httpsarxivorgabs170104507

[6] bdquoBots fuumlr die Bank Die Zukunft der Kommunikationldquo httpscustomersmicrosoftcomen-usstoryducia-gadit-cognitive-services-cortana-azure-powerbi-banking-germany

[7] Okamoto S Scerri P Sycara K bdquoToward an understanding of the impact of software personal assistants on human organizationsldquo httpdxdoiorg10114511606331160745

[8] Haslam R bdquoThe bots are coming ndash 5 essential things ntech rms need to knowldquo httpsbanknxtcom56496bots-5-essential-ntech

[9] Lunden I bdquoRise of the bots Techcrunchldquo httpstechcrunchcom20160407rise-of-the-bots-x-ai-raises-23m-more-for-amy-a-bot-that-arranges-appointmentsguccounter=1

[10] LuisBot Innobis AG httpsgithubcomfr6087Hoermirzu

[11] Vincent J bdquoTwitter taught Microsoft AIrsquos Chatbot to be a racist asshole in less than a dayldquo httpswwwthevergecom201632411297050tay-microsoft-chatbot-racist

[12] Microsoft Botbuilder Sample Projects httpsgithubcomMicrosoftBotBuilder-Samples

[13] Brown P bdquoInternet of Stranger Thingsldquo httpsblogswindowscombuildingapps20161031the-internet-of-stranger-things-wall-part-1-introduction-and-remote-wiring

[14] Jibo httpswwwjibocom

[15] Key concepts of DirectLine API 30 Microsoft Botframework documentation httpsdocsmicrosoftcomen-usazurebot-servicerest-apibot-framework-rest-direct-line-3-0-conceptsview=azure-bot-service-30

[16] Osborne R bdquoConnecting Alexa to a Botframework Chatbotldquo httpswwwrobinosbornecouk20161219connecting-alexa-to-a-botframework-chatbot

[17] Snips Platform Documentation httpsnipsai

[18] Digital Assistants Statista dossier httpsdestatistacomstatistikdatenstudie620225umfragenutzung-von-sprachassistenten-in-deutschland

[19] Love J bdquoGartnerrsquos top 10 predictions for 2016 and the lsquopost-apprsquo eraldquo httpswwwitworldcanadacomarticlegartner-top-ten-predictions-for-2016-and-post-app-era377594

[20] bdquoGartner Says Worldwide Spending on VPA-Enabled Wireless Speakers Will Top $2 Billion by 2020ldquo httpswwwgartnercomnewsroomid3464317

[21] Top 22 intelligent personal assistants or automated personal assistants PredictiveAnalysis httpswwwpredictiveanalyticstodaycomtop-intelligent-personal-assistants-automated-personal-assistantscontent-anchor

[22] Savenkov K bdquoNLU Intent Detectionldquo Intento 2017 httpswwwslidesharenetKonstantinSavenkovnlu-intent-detection-benchmark-by-intento-august-2017

[23] Lucida httpsgithubcomclaritylablucida

[24] Athena httpsgithubcomrcbyronhey-athena-client

Mit Lucida und Athena gibt es zwei Open-Source-Projekte die sich mit

kuumlnstlicher Intelligenz beschaumlftigen

Links amp Literatur

[1] Ng Andrew httpstwittercomAndrewYNgstatus809579698883727360

Trainings fuumlr Softwarearchitekten mit iSAQB-Zerti zierung

wwwsoftware-architecture-campde

Das Camp bietet Ihnen eine fundierte und pragmatische Einfuumlhrung in Software-architektur mit hohem Uumlbungsanteil

Die verschiedenen Module des Advanced Levels vertiefen Ihre Kenntnisse und Faumlhig-keiten in den Bereichen Technik Methodik und Kommunikation

Praumlsentiert von in Kooperation mit iSAQBreg

Veranstalter

Jet983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555983555

983555983555si983579983579983555983555983555983555983579983555983555983555983579983579983579983579te983579983579983579983555

Mit Zerti zierung zum

Mit Zerti zierung zum

bdquoCerti ed Professional for Software Architecture ndash Foundation Level (CPSA-F)ldquo

bdquoCerti ed Professional for Software Architecture ndash Advanced Level (CPSA-A)ldquo

Mit Zerti zierung zum bdquoCerti ed Professional for Software Architectureldquo iSAQBreg

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde

Page 10: Knative... Entwickler Magazin 1.2019 83 Chatbots Internet of Things um die Bestellung zu veri˛zieren und den Bestellvor-gang zu vereinfachen. Hierfür ist maßgeblich, dass der Benutzer

Mehr als 420 Magazine Buumlcher und shortcuts lesen

Ab 990 EUR im Monat erhalten bestehende Abonnenten im Onlineservice entwicklerkiosk uneingeschraumlnkten Zugang zu uumlber 420 Magazinen Buumlchern und shortcuts ndash sowohl am

Desktop als auch mobil

Neukunden greifen mit dem entwicklerkiosk-Zugang fuumlr monatliche 1990 EUR auf das gesamte Sortiment im entwicklerkiosk zu

wwwentwickler-kioskde