We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform

Hallo, Habr! Vandaag laten we u zien hoe u Azure kunt gebruiken om problemen op te lossen die doorgaans menselijke tussenkomst vereisen. Agenten besteden veel tijd aan het beantwoorden van dezelfde vragen en het afhandelen van telefoontjes en sms-berichten. Chatbots automatiseren de communicatie en herkenning en verminderen de last voor mensen. Bots worden ook gebruikt in Azure DevOps, waar ze het bijvoorbeeld mogelijk maken om releases goed te keuren, builds te beheren – bekijken, starten en stoppen – rechtstreeks vanuit Slack of Microsoft Teams. In wezen doet een chatbot enigszins denken aan een CLI, alleen interactief, en stelt de ontwikkelaar in staat om in de context van de chatdiscussie te blijven.

In dit artikel bespreken we tools voor het maken van chatbots, laten we zien hoe deze kunnen worden verbeterd met cognitieve services en beschrijven we hoe je de ontwikkeling kunt versnellen met kant-en-klare services in Azure.

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform

Chatbots en cognitieve diensten: wat zijn de overeenkomsten en wat zijn de verschillen?

Om bots te maken in Microsoft Azure gebruik je de Azure Bot Service en het Bot Framework. Samen vertegenwoordigen ze een set software voor het bouwen, testen, inzetten en beheren van bots, waarmee je vanuit kant-en-klare modules zowel eenvoudige als geavanceerde communicatiesystemen met spraakondersteuning, natuurlijke taalherkenning en andere mogelijkheden kunt creëren.

Laten we aannemen dat u een eenvoudige bot moet implementeren op basis van een zakelijke vraag- en antwoordservice, of omgekeerd een functionele bot moet maken met een complex, vertakt communicatiesysteem. Om dit te doen, kunt u een aantal hulpmiddelen gebruiken, onderverdeeld in drie groepen: 

  1. Diensten voor snelle ontwikkeling van dialooginterfaces (bots).
  2. Kant-en-klare cognitieve AI-diensten voor verschillende gebruiksscenario's (patroonherkenning, spraakherkenning, kennisbank en zoeken).
  3. Diensten voor het maken en trainen van AI-modellen.

Doorgaans verwarren mensen intuïtief ‘bots’ en ‘cognitieve diensten’ omdat beide concepten gebaseerd zijn op het principe van communicatie, en de use case voor bots en diensten dialoog omvat. Maar chatbots werken met trefwoorden en triggers, en cognitieve diensten werken met willekeurige verzoeken die doorgaans door mensen worden verwerkt: 

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform

Cognitieve services zijn een andere manier om met de gebruiker te communiceren en helpen een willekeurig verzoek om te zetten in een duidelijk commando en dit door te geven aan de bot. 

Chatbots zijn dus toepassingen voor het werken met verzoeken, en cognitieve diensten zijn hulpmiddelen voor intelligente analyse van verzoeken die afzonderlijk worden gelanceerd, maar waartoe de chatbot toegang heeft en zo ‘intelligent’ worden. 

Chatbots maken

Het aanbevolen ontwerpdiagram voor een bot in Azure is als volgt: 

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform

Gebruik om bots in Azure te ontwerpen en te ontwikkelen Bot-framework. Beschikbaar op GitHub voorbeelden van bots, de mogelijkheden van het raamwerk veranderen, dus het is noodzakelijk om rekening te houden met de versie van de SDK die in de bots wordt gebruikt.

Het raamwerk biedt verschillende opties voor het maken van bots: het gebruik van klassieke code, opdrachtregelhulpmiddelen of stroomdiagrammen. De laatste optie visualiseert dialogen, hiervoor kunt u de manager gebruiken Bot Framework-componist. Het is gebouwd op de Bot Framework SDK als een visuele ontwikkelingstool die interdisciplinaire teams kunnen gebruiken om bots te maken.

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform

Met Bot Framework Composer kunt u blokken gebruiken om een ​​dialoogstructuur te creëren waarmee de bot zal werken. Bovendien kunt u triggers maken, dat wil zeggen trefwoorden waarop de bot tijdens de dialoog zal reageren. Bijvoorbeeld de woorden “operator”, “diefstal” of “stop” en “genoeg”.

In Bot Framework Composer kunt u complexe dialoogsystemen maken met behulp van Adaptieve dialogen. Dialogen kunnen zowel cognitieve diensten als gebeurteniskaarten (Adaptive Cards) gebruiken:

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform

Na het maken kunt u de chatbot in een abonnement implementeren, en een automatisch voorbereid script zal alle benodigde bronnen creëren: cognitieve services, applicatieplan, Application Insights, database, enzovoort.

QnA-maker

Als u eenvoudige bots wilt maken op basis van zakelijke vraag- en antwoorddatabases, kunt u de cognitieve service QnA Maker gebruiken. Geïmplementeerd als een eenvoudige webwizard, kunt u een link invoeren naar een bedrijfskennisbank (FAQ-URL's) of een documentendatabase in *.doc- of *.pdf-formaat als basis gebruiken. Na het maken van de index selecteert de bot automatisch de meest geschikte antwoorden op de vragen van de gebruiker.

Met QnAMaker kunt u ook ketens van verhelderende vragen creëren door automatisch knoppen aan te maken, de kennisbank aanvullen met metadata en de dienst verder trainen tijdens het gebruik.

De dienst kan ingezet worden als chatbot die alleen deze ene functie implementeert, of als onderdeel van een complexe chatbot die, afhankelijk van de aanvraag, gebruik maakt van andere AI-diensten of elementen van het Bot Framework.

Samenwerken met andere cognitieve diensten

Er zijn veel verschillende cognitieve services op het Azure-platform. Technisch gezien zijn dit onafhankelijke webservices die vanuit code kunnen worden aangeroepen. Als reactie hierop stuurt de dienst json van een bepaald formaat, dat gebruikt kan worden in de chatbot.

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform
De meest voorkomende toepassingen van chatbots zijn:

  1. Tekst herkennen.
  2. Herkenning van door de ontwikkelaar gedefinieerde afbeeldingscategorieën van de Custom Vision Service (productiegeval: herkenning of een medewerker een helm, veiligheidsbril of masker draagt).
  3. Gezichtsherkenning (een uitstekend gebruiksvoorbeeld is het controleren of de ondervraagde persoon zijn eigen gezicht heeft gepost, of bijvoorbeeld een foto van een hond of een foto van een persoon van een ander geslacht).
  4. Spraakherkenning.
  5. Foto analyse.
  6. Vertaling (we weten allemaal nog hoeveel ruis simultaanvertaling in Skype veroorzaakte).
  7. Spellingcontrole en suggesties voor het corrigeren van fouten.

LUIS

Ook om bots te maken die u mogelijk nodig heeft LUIS (Taal begrijpen van intelligente service). Servicedoelstellingen:

  • Bepaal of de verklaring van de gebruiker zinvol is en of de reactie van de bot noodzakelijk is.
  • Verminder de inspanningen om gebruikersspraak (tekst) om te zetten in opdrachten die begrijpelijk zijn voor de bot.
  • Voorspel echte gebruikersdoelen/intenties en haal belangrijke inzichten uit zinsneden in dialoog.
  • Laat de ontwikkelaar de bot starten met slechts enkele voorbeelden van betekenisherkenning en daaropvolgende aanvullende training van de bot tijdens het gebruik.
  • Stel de ontwikkelaar in staat visualisatie te gebruiken om de kwaliteit van de opdrachttranscriptie te beoordelen.
  • Helpen bij stapsgewijze verbeteringen in echte doelherkenning.

In feite is het belangrijkste doel van LUIS om met een bepaalde waarschijnlijkheid te begrijpen wat de gebruiker bedoelde en een natuurlijk verzoek om te zetten in een harmonieus commando. Om querywaarden te herkennen, gebruikt LUIS een reeks intenties (betekenissen, intenties) en entiteiten (vooraf geconfigureerd door ontwikkelaars, of genomen en vooraf gevormde “domeinen” - enkele kant-en-klare bibliotheken met standaardzinnen opgesteld door Microsoft). 

Een eenvoudig voorbeeld: je hebt een bot die je een weersvoorspelling geeft. Voor hem zal de bedoeling de vertaling zijn van een natuurlijk verzoek in een “actie” – een verzoek om een ​​weersvoorspelling, en de entiteiten zullen tijd en plaats zijn. Hier is een diagram van hoe de CheckWeather-intentie voor zo'n bot werkt.

Intentie
essence
Voorbeeld van een natuurlijke query

ControleerWeer
{"type": "locatie", "entity": "moskou"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolutie: 2020-05-30"}
Hoe zal het weer morgen zijn in Moskou?

ControleerWeer
{ "type": "date_range", "entity": "dit weekend" }
Laat me de voorspelling voor dit weekend zien

Om QnA Maker en LUIS te combineren kunt u gebruiken dispatcher

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform

Wanneer u met QnA Maker werkt en een verzoek ontvangt van een gebruiker, bepaalt het systeem welk percentage van de waarschijnlijkheid het antwoord uit QnA overeenkomt met het verzoek. Als de waarschijnlijkheid groot is, krijgt de gebruiker eenvoudigweg een antwoord uit de bedrijfskennisbank; als deze laag is, kan de aanvraag ter verduidelijking naar LUIS worden verzonden. Met Dispatcher kunt u deze logica niet programmeren, maar automatisch deze grens van de scheiding van verzoeken bepalen en deze snel distribueren.

De bot testen en publiceren

Voor het testen wordt een andere lokale applicatie gebruikt, Bot-framework-emulator. Met behulp van de emulator kunt u met de bot communiceren en de berichten controleren die deze verzendt en ontvangt. De emulator geeft berichten weer zoals ze zouden verschijnen in een webchatinterface en registreert JSON-verzoeken en -reacties wanneer u berichten naar de bot stuurt.

In deze demo wordt een voorbeeld van het gebruik van de emulator gepresenteerd, waarin de creatie van een virtuele assistent voor BMW wordt getoond. In de video wordt ook gesproken over nieuwe versnellers voor het maken van chatbots - sjablonen:

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform
https://youtu.be/u7Gql-ClcVA?t=564

U kunt ook sjablonen gebruiken bij het maken van uw chatbots. 
Met sjablonen kun je de standaard botfuncties niet opnieuw schrijven, maar kant-en-klare code toevoegen als ‘vaardigheid’. Denk hierbij aan het werken met een kalender, het maken van afspraken etc. Code van kant-en-klare vaardigheden gepubliceerde op github.

Het testen was succesvol, de bot is klaar en nu moet hij worden gepubliceerd en de kanalen worden aangesloten. Publiceren gebeurt met behulp van Azure en messengers of sociale netwerken kunnen als kanalen worden gebruikt. Als u niet over het vereiste kanaal beschikt om gegevens in te voeren, kunt u ernaar zoeken in de overeenkomstige community op GitHab. 

Om een ​​volwaardige chatbot te creëren als interface voor communicatie met de gebruiker en cognitieve services, heb je uiteraard aanvullende Azure-services nodig, zoals databases, serverless (Azure Functions), evenals LogicApp-services en mogelijk , Gebeurtenisraster.

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform

Beoordeling en analyse

Om de gebruikersinteractie te evalueren, kunt u zowel de ingebouwde analytics van de Azure Bot Service als de speciale Application Insights-service gebruiken.

Als gevolg hiervan kunt u informatie verzamelen op basis van de volgende criteria:

  • Hoeveel gebruikers toegang hebben gehad tot de bot via verschillende kanalen gedurende de geselecteerde periode.
  • Hoeveel gebruikers die één bericht hebben verzonden, zijn later teruggekomen en nog een bericht verzonden.
  • Hoeveel acties zijn er verzonden en ontvangen via elk kanaal gedurende het opgegeven tijdsinterval.

Met Application Insights kunt u elke applicatie in Azure, en in het bijzonder chatbots, monitoren en aanvullende gegevens verkrijgen over gebruikersgedrag, belasting en chatbotreacties. Opgemerkt moet worden dat de Application Insights-service een eigen interface heeft in de Azure-portal.

U kunt de via deze service verzamelde gegevens ook gebruiken om aanvullende visualisaties en analytische rapporten in PowerBI te maken. Een voorbeeld van een dergelijk rapport en sjabloon voor PowerBI kan worden genomen hier.

We versnellen de ontwikkeling met behulp van Azure-services: we creëren chatbots en cognitieve services met behulp van het platform

Bedankt allemaal voor jullie aandacht! In dit artikel hebben we gebruikt materiaal uit het webinar van Microsoft Azure architect Anna Fenyushina “Als mensen geen tijd hebben. Hoe chatbots en cognitieve services 100% kunnen worden gebruikt om routineprocessen te automatiseren”, waar we duidelijk lieten zien wat chatbots zijn in Azure en wat de scenario’s zijn voor hun gebruik, en ook lieten zien hoe je in 15 minuten een bot kunt maken in QnA Maker en hoe de querystructuur wordt ontcijferd in LUIS. 

Dit webinar hebben wij gemaakt als onderdeel van de online marathon voor ontwikkelaars Dev Bootcamp. Het ging om producten die de ontwikkeling versnellen en een deel van de routinematige werklast van bedrijfsmedewerkers verlichten met behulp van automatiseringstools en kant-en-klare, vooraf geconfigureerde Azure-modules. Opnames van andere webinars die deel uitmaken van de marathon zijn beschikbaar via de volgende links:

Bron: www.habr.com

Voeg een reactie