Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.

Hallo, Habr! Heute erklären wir, wie Sie mit Azure Aufgaben bewältigen können, die normalerweise menschliches Eingreifen erfordern. Betreiber verbringen viel Zeit damit, dieselben Fragen zu beantworten, Anrufe entgegenzunehmen und Textnachrichten zu bearbeiten. Chatbots automatisieren die Kommunikation und das Erkennen von Anfragen, was die Belastung für Menschen reduziert. Sie werden auch in Azure DevOps eingesetzt, wo sie beispielsweise dabei helfen, Releases zu genehmigen, Builds zu verwalten – sie können direkt über Slack oder Microsoft Teams angezeigt, gestartet und gestoppt werden. Im Grunde genommen ähnelt ein Chatbot einem CLI, nur interaktiv, und ermöglicht es dem Entwickler, im Gespräch im Chat kontextbezogen zu bleiben.

In diesem Artikel sprechen wir über die Werkzeuge zur Erstellung von Chatbots, zeigen, wie sie mit kognitiven Diensten verbessert werden können, und beschreiben, wie man die Entwicklung durch fertige Dienste in Azure beschleunigt.

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.

Chatbots und kognitive Dienste: Gemeinsamkeiten und Unterschiede.

Für die Erstellung von Bots in Microsoft Azure kommen der Azure Bot-Dienst und die Bot Framework-Plattform zum Einsatz. Gemeinsam bilden sie eine Software-Suite zur Erstellung, zum Testen, zur Bereitstellung und zur Verwaltung von Bots. Diese ermöglicht die Entwicklung sowohl einfacher als auch komplexer Kommunikationssysteme mit Sprachunterstützung, natürlicher Sprachverarbeitung und weiteren Funktionen.

Angenommen, Sie möchten einen einfachen Bot für einen Unternehmensfragen- und -antwortendienst implementieren oder hingegen einen funktionalen Bot mit einem komplexen, verzweigten Kommunikationssystem erstellen. Dafür stehen Ihnen mehrere Werkzeuge zur Verfügung, die grob in drei Gruppen unterteilt werden können: 

  1. Schnellentwicklungsdienste für dialogorientierte Benutzeroberflächen (Bots).
  2. Fertige KI-kognitive Dienste für verschiedene Nutzungsszenarien (Bild- und Spracherkennung, Wissensdatenbanken und Suche).
  3. Dienste zur Erstellung und Schulung von KI-Modellen.

Menschen neigen oft dazu, „Bots“ und „kognitive Dienste“ intuitiv zu verwechseln, da beide auf dem Prinzip der Kommunikation basieren und sowohl in der Nutzung von Bots als auch von Diensten Dialoge entstehen. Chatbots arbeiten jedoch mit Schlüsselwörtern und Triggern, während kognitive Dienste mit offenen Anfragen umgehen, die normalerweise von Menschen bearbeitet werden: 

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.

Kognitive Dienste sind eine weitere Möglichkeit, mit dem Benutzer zu kommunizieren. Sie helfen dabei, eine offene Anfrage in einen klaren Befehl umzuwandeln und diesen an den Bot weiterzugeben. 

Damit sind Chatbots Anwendungen, die Anfragen bearbeiten, während kognitive Dienste intelligente Analysetools für Anfragen sind, die separat aktiviert werden, auf die jedoch ein Chatbot zugreifen kann, wodurch er „intelligent“ wird. 

Erstellung von Chatbots

Das empfohlene Entwurfsschema für Bots in Azure sieht folgendermaßen aus: 

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.

Für das Design und die Entwicklung von Bots in Azure wird Bot Frameworkverwendet. Auf GitHub gibt es Beispiele für Bots, die Möglichkeiten des Frameworks ändern sich, weshalb die verwendete SDK-Version, die in den Bots genutzt wird, berücksichtigt werden muss.

Das Framework bietet mehrere Möglichkeiten zur Erstellung von Bots: entweder durch klassischen Code, Kommandozeilen-Tools oder Flussdiagramme. Letztere visualisieren die Dialoge und können mit einem Manager verwendet werden. Bot Framework Composer. Es wurde auf Basis des Bot Framework SDK als anschauliches Entwicklungstool entwickelt, das interdisziplinäre Teams zur Erstellung von Bots nutzen können.

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.

Mit dem Bot Framework Composer lässt sich durch Blöcke eine Dialogstruktur erstellen, mit der der Bot interagiert. Zusätzlich können Trigger, also Schlüsselwörter, definiert werden, auf die der Bot während des Dialogs reagiert, wie beispielsweise „Operator“, „Diebstahl“ oder „Stopp“ und „Genug“.

Im Bot Framework Composer kann ein komplexes Dialogsystem erstellt werden, das Adaptive Dialogsverwendet. Die Dialoge können sowohl kognitive Dienste als auch Ereigniskarten (Adaptive Cards) nutzen:

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.

Nach der Erstellung kann der Chatbot in der Subscription bereitgestellt werden, wobei ein automatisch generiertes Skript alle notwendigen Ressourcen einrichtet: kognitive Dienste, Application Plan, Application Insights, Datenbank und mehr.

QnA Maker

Um einfache Bots auf der Basis von Unternehmensdatenbanken mit Fragen und Antworten zu erstellen, kann der kognitive Dienst QnA Maker verwendet werden. Dieser wird als einfacher Web-Assistent bereitgestellt und ermöglicht es, entweder einen Link zu einer Unternehmenswissensdatenbank (FAQ-URLs) oder eine Dokumentenbasis im Format *.doc oder *.pdf bereitzustellen. Nachdem der Index erstellt wurde, wählt der Bot selbst die am besten passenden Antworten auf die Benutzerfragen aus.

Mit QnA Maker können auch Ketten von Klärungsfragen erstellt werden, inklusive der automatischen Generierung von Schaltflächen. Zudem können die Wissensdatenbank mit Metadaten ergänzt und der Dienst während der Nutzung weiter trainiert werden.

Der Dienst kann entweder als Chatbot verwendet werden, der nur diese Funktion implementiert, oder als Teil eines komplexen Chatbots, der je nach Anfrage auch andere KI-Dienste oder Elemente des Bot Framework nutzt.

Arbeiten mit anderen kognitiven Diensten

Auf der Azure-Plattform gibt es viele verschiedene kognitive Dienste. Technisch gesehen handelt es sich um eigenständige Web-Services, die aus dem Code heraus aufgerufen werden können. Als Antwort sendet der Dienst ein JSON in einem bestimmten Format, das im Chatbot verwendet werden kann.

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.
Am häufigsten werden in Chatbots folgende verwendet:

  1. Texterkennung.
  2. Erkennung von entwicklerdefinierten Bildkategorien im Custom Vision Service (Anwendungsfall: Erkennung, ob ein Mitarbeiter einen Helm, eine Schutzbrille oder eine Maske trägt).
  3. Gesichtserkennung (ein hervorragender Anwendungsfall – Überprüfung, ob die befragte Person ihr eigenes Gesicht oder z.B. ein Foto eines Hundes oder einer Person anderen Geschlechts verwendet hat).
  4. Spracherkennung.
  5. Bildanalyse.
  6. Übersetzung (wir alle erinnern uns, wie viel Aufsehen die simultane Übersetzung in Skype erregt hat).
  7. Rechtschreibprüfung und Vorschläge zur Fehlerkorrektur.

LUIS

Ein Bot zu erstellen kann auch erfordert werden LUIS (Language Understanding Intelligent Service). Die Aufgaben des Dienstes:

  • Feststellen, ob die Äußerung des Nutzers sinnvoll ist und ob eine Reaktion des Bots erforderlich ist.
  • Den Aufwand für die Transkription von Sprache (Text) des Nutzers in für den Bot verständliche Befehle reduzieren.
  • Echte Nutzerziele/Intentionen vorhersagen und Schlüsselinformationen aus Phrasen im Dialog extrahieren.
  • Es Entwicklern ermöglichen, einen Bot mit nur wenigen Beispielen zur Bedeutungserkennung zu starten und den Bot während des Betriebs weiter zu trainieren.
  • Entwicklern die Möglichkeit geben, Visualisierungen zur Bewertung der Qualität von Transkriptionen zu nutzen.
  • Bei schrittweisen Verbesserungen der Erkennung echter Ziele helfen.

Im Wesentlichen ist das Hauptziel von LUIS, mit einer bestimmten Wahrscheinlichkeit zu verstehen, was der Benutzer gemeint hat, und natürliche Anfragen in strukturierte Befehle umzuwandeln. Für die Bedeutungsinterpretation von Anfragen nutzt LUIS eine Reihe von Intents (Absichten) und Entities (Entitäten), die entweder von Entwicklern vordefiniert oder aus vorgefertigten 'Domänen' entnommen wurden – fertige Bibliotheken mit Standardphrasen, die von Microsoft vorbereitet wurden. 

Ein einfaches Beispiel: Sie haben einen Bot, der Wettervorhersagen abgibt. Der Intent wäre die Umwandlung der natürlichen Anfrage in eine 'Aktion' – die Anfrage nach der Wettervorhersage, wobei die Entitäten Zeit und Ort sind. Sehen wir uns das Funktionsschema des Intents CheckWeather für diesen Bot an.

Intent
Entität
Beispiel für eine natürliche Anfrage

CheckWeather
{ "type": "location", "entity": "moscow" }
{ "type": "builtin.datetimeV2.date", "entity": "future", "resolution": "2020-05-30" }
Wie wird das Wetter morgen in Moskau?

CheckWeather
{ "type": "date_range", "entity": "this weekend" }
Zeig mir die Vorhersage für dieses Wochenende.

QnA Maker und LUIS können kombiniert werden. Dispatcher

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.

Wenn Sie mit QnA Maker arbeiten und eine Anfrage von einem Benutzer erhalten, analysiert das System, mit welcher Wahrscheinlichkeit die Antwort aus QnA zur Anfrage passt. Ist die Wahrscheinlichkeit hoch, erhält der Benutzer einfach die Antwort aus der Unternehmenswissen-Datenbank. Bei geringer Wahrscheinlichkeit kann die Anfrage an LUIS zur Klärung weitergeleitet werden. Die Verwendung von Dispatcher ermöglicht es, diese Logik nicht zu programmieren, sondern automatisch die Grenze zwischen den Anfragen zu bestimmen und diese effizient zu verteilen.

Testen und Veröffentlichen des Bots

Zur Durchführung von Tests wird eine weitere lokale Anwendung verwendet, Bot Framework Emulator. Mit dem Emulator können Sie mit dem Bot kommunizieren und die Nachrichten prüfen, die er sendet und empfängt. Der Emulator zeigt Nachrichten so an, wie sie im Web-Chat-Interface erscheinen würden, und protokolliert die Anfragen und Antworten im JSON-Format beim Austausch von Nachrichten mit dem Bot.

Ein Beispiel für die Verwendung des Emulators wird in dieser Demo gezeigt, in der die Erstellung eines virtuellen Assistenten für BMW präsentiert wird. Im Video werden auch neue Beschleuniger zur Erstellung von Chatbots – Vorlagen – erläutert:

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.
https://youtu.be/u7Gql-ClcVA?t=564

Sie können auch Vorlagen verwenden, um Ihre Chatbots zu erstellen. 
Vorlagen ermöglichen es Ihnen, wiederkehrende Bot-Funktionen nicht erneut zu schreiben, sondern bereits vorhandenen Code als „Fähigkeit“ hinzuzufügen. Ein Beispiel könnte die Arbeit mit einem Kalender, die Terminvereinbarung usw. sein. Der Code für fertige Fähigkeiten finden Sie veröffentlicht auf GitHub.

Die Tests waren erfolgreich, der Bot ist bereit und muss jetzt veröffentlicht und mit Kanälen verbunden werden. Die Veröffentlichung erfolgt über Azure, und als Kanäle können Messenger oder soziale Netzwerke verwendet werden. Falls der benötigte Kanal für die Dateneingabe nicht vorhanden ist, können Sie in der entsprechenden Community auf GitHub danach suchen. 

Außerdem benötigen Sie für die Erstellung eines voll funktionsfähigen Chatbots als Benutzeroberfläche für die Interaktion mit Nutzern und kognitiven Diensten zusätzliche Azure-Dienste, wie Datenbanken, Serverless (Azure Functions), sowie LogicApp-Dienste und möglicherweise Event Grid.

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.

Bewertung und Analyse

Zur Bewertung der Interaktion mit Nutzern können sowohl die integrierte Analyse des Azure Bot Service als auch der spezielle Dienst Application Insights verwendet werden.

So können Informationen anhand der folgenden Kriterien gesammelt werden:

  • Wie viele Nutzer haben innerhalb des gewählten Zeitraums über verschiedene Kanäle auf den Bot zugegriffen?
  • Wie viele Nutzer, die eine Nachricht gesendet haben, kehrten später zurück und haben eine weitere gesendet?
  • Wie viele Aktionen wurden über jeden Kanal während des angegebenen Zeitraums gesendet und empfangen?

Mit Application Insights lassen sich alle Anwendungen in Azure überwachen, insbesondere Chatbots, um zusätzliche Daten über das Nutzerverhalten, die Lasten und die Reaktionen der Chatbots zu erhalten. Es ist zu beachten, dass der Service Application Insights eine eigene Benutzeroberfläche im Azure-Portal hat.

Die über diesen Service gesammelten Daten können auch zur Erstellung zusätzlicher Visualisierungen und analytischer Berichte in PowerBI verwendet werden. Ein Beispiel für einen solchen Bericht und eine Vorlage für PowerBI sind verfügbar. hier.

Entwickeln Sie schneller mit Azure-Diensten: Erstellen von Chatbots und kognitiven Diensten auf der Plattform.

Vielen Dank für Ihre Aufmerksamkeit! In diesem Artikel haben wir Material Aus dem Webinar der Microsoft Azure Architektin Anna Fenushina "Wenn Menschen nicht mithalten können. Wie man Chatbots und kognitive Dienste zu 100 % zur Automatisierung von Routineprozessen nutzt", in dem wir anschaulich gezeigt haben, was Chatbots in Azure sind und welche Anwendungsszenarien es gibt. Zudem demonstrierten wir, wie man in 15 Minuten einen Bot im QnA Maker erstellt und wie die Struktur der Abfragen in LUIS entschlüsselt wird. 

Dieses Webinar fand im Rahmen des Online-Marathons für Entwickler Dev Bootcamp statt. Dabei ging es um Produkte, die die Entwicklung beschleunigen und einen Teil der Routinearbeit der Mitarbeiter durch Automatisierungswerkzeuge und vorgefertigte Module von Azure erleichtern. Aufzeichnungen anderer Webinare, die in den Marathon aufgenommen wurden, sind über die folgenden Links verfügbar:

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster