Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma

Ciao, Habr! Oggi ti mostreremo come utilizzare Azure per risolvere problemi che in genere richiedono l'intervento umano. Gli agenti trascorrono molto tempo rispondendo alle stesse domande, gestendo telefonate e messaggi di testo. I chatbot automatizzano la comunicazione e il riconoscimento e riducono il carico sulle persone. I bot vengono utilizzati anche in Azure DevOps, dove consentono, ad esempio, di approvare rilasci, gestire build - visualizzare, avviare e arrestare - direttamente da Slack o Microsoft Teams. In sostanza, un chatbot ricorda un po' una CLI, solo interattiva, e consente allo sviluppatore di rimanere nel contesto della discussione in chat.

In questo articolo parleremo degli strumenti per creare chatbot, mostreremo come possono essere migliorati con i servizi cognitivi e descriveremo come accelerare lo sviluppo con servizi già pronti in Azure.

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma

Chatbot e servizi cognitivi: quali somiglianze e quali differenze?

Per creare bot in Microsoft Azure, si utilizza il servizio Azure Bot e il Bot Framework. Insieme rappresentano un insieme di software per costruire, testare, distribuire e amministrare bot, che consente di creare da moduli già pronti sistemi di comunicazione sia semplici che avanzati con supporto vocale, riconoscimento del linguaggio naturale e altre funzionalità.

Supponiamo che tu debba implementare un semplice bot basato su un servizio di domande e risposte aziendale o, al contrario, creare un bot funzionale con un sistema di comunicazione complesso e ramificato. Per fare ciò è possibile utilizzare una serie di strumenti, divisi in tre gruppi: 

  1. Servizi per lo sviluppo rapido di interfacce di dialogo (bot).
  2. Servizi di intelligenza artificiale cognitiva già pronti per diversi casi d'uso (riconoscimento di modelli, riconoscimento vocale, base di conoscenza e ricerca).
  3. Servizi per la creazione e l'addestramento di modelli IA.

In genere, le persone confondono intuitivamente “bot” e “servizi cognitivi” perché entrambi i concetti si basano sul principio della comunicazione e il caso d’uso di bot e servizi implica dialoghi. Ma i chatbot funzionano con parole chiave e trigger, mentre i servizi cognitivi funzionano con richieste arbitrarie che vengono solitamente elaborate dagli esseri umani: 

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma

I servizi cognitivi sono un altro modo per comunicare con l'utente, aiutando a convertire una richiesta arbitraria in un comando chiaro e trasmetterlo al bot. 

Pertanto, i chatbot sono applicazioni per lavorare con le richieste, mentre i servizi cognitivi sono strumenti per l’analisi intelligente delle richieste che vengono lanciate separatamente, ma alle quali il chatbot può accedere, diventando “intelligente”. 

Creazione di chatbot

Il diagramma di progettazione consigliato per un bot in Azure è il seguente: 

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma

Per progettare e sviluppare bot in Azure, utilizzare Struttura Bot. Disponibile su GitHub esempi di bot, le capacità del framework cambiano, quindi è necessario tenere conto della versione dell'SDK utilizzata nei bot.

Il framework fornisce diverse opzioni per la creazione di bot: utilizzando codice classico, strumenti a riga di comando o diagrammi di flusso. L'ultima opzione visualizza le finestre di dialogo; per questo è possibile utilizzare il gestore Compositore di Bot Framework. È stato basato su Bot Framework SDK come strumento di sviluppo visivo che i team interdisciplinari potevano utilizzare per creare bot.

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma

Bot Framework Composer ti consente di utilizzare i blocchi per creare una struttura di dialogo con cui funzionerà il bot. Inoltre, puoi creare trigger, ovvero parole chiave a cui il bot reagirà durante il dialogo. Ad esempio le parole “operatore”, “furto” oppure “stop” e “basta”.

In Bot Framework Composer è possibile creare sistemi di dialogo complessi utilizzando Dialoghi adattivi. I dialoghi possono utilizzare sia servizi cognitivi che carte evento (Carte Adattative):

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma

Dopo la creazione, puoi distribuire il chatbot in un abbonamento e uno script preparato automaticamente creerà tutte le risorse necessarie: servizi cognitivi, piano applicativo, Application Insights, database e così via.

Creatore di QnA

Per creare semplici bot basati su database di domande e risposte aziendali, è possibile utilizzare il servizio cognitivo QnA Maker. Implementato come una semplice procedura guidata web, consente di inserire un collegamento a una knowledge base aziendale (FAQ URL) o di utilizzare come base un database di documenti in formato *.doc o *.pdf. Dopo aver creato l’indice, il bot selezionerà automaticamente le risposte più appropriate alle domande dell’utente.

Utilizzando QnAMaker, puoi anche creare catene di domande chiarificatrici con la creazione automatica di pulsanti, integrare la base di conoscenza con metadati e addestrare ulteriormente il servizio durante l'uso.

Il servizio può essere utilizzato come chatbot che implementa solo questa funzione, oppure come parte di un chatbot complesso che utilizza, a seconda della richiesta, altri servizi AI o elementi del Bot Framework.

Collaborare con altri servizi cognitivi

Sono disponibili molti servizi cognitivi diversi sulla piattaforma Azure. Tecnicamente si tratta di servizi web indipendenti che possono essere richiamati dal codice. In risposta, il servizio invia json di un determinato formato, che può essere utilizzato nel chatbot.

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma
Gli usi più comuni dei chatbot sono:

  1. Riconoscimento del testo.
  2. Riconoscimento delle categorie di immagini del servizio Custom Vision definite dallo sviluppatore (caso di produzione: riconoscimento se un dipendente indossa un elmetto, occhiali o maschera).
  3. Riconoscimento facciale (un ottimo caso d'uso è verificare se la persona intervistata ha pubblicato il proprio volto o, ad esempio, una foto di un cane o una foto di una persona di sesso diverso).
  4. Riconoscimento vocale.
  5. Analisi delle immagini.
  6. Traduzione (ricordiamo tutti quanto rumore ha causato la traduzione simultanea su Skype).
  7. Controllo ortografico e suggerimenti per correggere gli errori.

LUIS

Inoltre, per creare bot potresti aver bisogno LUIS (Servizio intelligente per la comprensione del linguaggio). Obiettivi del servizio:

  • Determina se l'affermazione dell'utente ha senso e se la risposta del bot è necessaria.
  • Ridurre gli sforzi per trascrivere il parlato dell'utente (testo) in comandi comprensibili al bot.
  • Prevedi i veri obiettivi/intenti degli utenti ed estrai informazioni chiave dalle frasi nel dialogo.
  • Consentire allo sviluppatore di avviare il bot utilizzando solo alcuni esempi di riconoscimento del significato e successiva formazione aggiuntiva del bot durante il funzionamento.
  • Consentire allo sviluppatore di utilizzare la visualizzazione per valutare la qualità della trascrizione dei comandi.
  • Assistere nei miglioramenti incrementali nel vero riconoscimento del bersaglio.

L'obiettivo principale di LUIS, infatti, è comprendere con una certa probabilità cosa intendeva l'utente e convertire una richiesta naturale in un comando armonico. Per riconoscere i valori delle query, LUIS utilizza una serie di intenti (significati, intenzioni) ed entità (preconfigurati dagli sviluppatori o "domini" presi e preformati, ovvero alcune librerie già pronte di frasi standard preparate da Microsoft). 

Un semplice esempio: hai un bot che ti dà le previsioni del tempo. Per lui l'intento sarà la traduzione di una richiesta naturale in un'“azione” - una richiesta di previsioni del tempo, e le entità saranno il tempo e il luogo. Ecco un diagramma di come funziona l'intento CheckWeather per un bot di questo tipo.

Intento
essenza
Esempio di query naturale

Controlla il meteo
{"type": "location", "entity": "mosca"}
{"type": "builtin.datetimeV2.date", "entity": "future","display":"2020-05-30"}
Che tempo farà domani a Mosca?

Controlla il meteo
{ "type": "date_range", "entity": "questo fine settimana" }
Mostrami le previsioni per questo fine settimana

Per combinare QnA Maker e LUIS è possibile utilizzare Dispatcher

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma

Quando lavori con QnA Maker e ricevi una richiesta da un utente, il sistema determina la percentuale di probabilità che la risposta di QnA corrisponda alla richiesta. Se la probabilità è alta all'utente viene semplicemente fornita una risposta dalla knowledge base aziendale; se è bassa è possibile inviare la richiesta alla LUIS per chiarimenti. L'uso di Dispatcher consente di non programmare questa logica, ma di determinare automaticamente questo limite di separazione delle richieste e di distribuirle rapidamente.

Testare e pubblicare il bot

Un'altra applicazione locale viene utilizzata per i test, Emulatore di framework bot. Utilizzando l'emulatore, puoi comunicare con il bot e controllare i messaggi che invia e riceve. L'emulatore visualizza i messaggi così come apparirebbero in un'interfaccia di chat Web e registra le richieste e le risposte JSON durante l'invio di messaggi al bot.

In questa demo viene presentato un esempio di utilizzo dell'emulatore, che mostra la creazione di un assistente virtuale per BMW. Il video parla anche dei nuovi acceleratori per la creazione di chatbot: modelli:

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma
https://youtu.be/u7Gql-ClcVA?t=564

Puoi anche utilizzare i modelli durante la creazione dei tuoi chatbot. 
I modelli ti consentono di non scrivere di nuovo le funzioni standard dei bot, ma di aggiungere codice già pronto come "abilità". Un esempio potrebbe essere lavorare con un calendario, fissare appuntamenti, ecc. Codice di competenze già pronte pubblicato su github.

Il test ha avuto successo, il bot è pronto e ora deve essere pubblicato e collegato ai canali. La pubblicazione viene eseguita utilizzando Azure e come canali è possibile utilizzare messenger o social network. Se non disponi del canale richiesto per l'inserimento dei dati, puoi cercarlo nella community corrispondente su GitHab. 

Inoltre, per creare un chatbot a tutti gli effetti come interfaccia per la comunicazione con l'utente e i servizi cognitivi, avrai ovviamente bisogno di servizi Azure aggiuntivi, come database, serverless (funzioni di Azure), nonché servizi LogicApp e, possibilmente , Griglia Degli Eventi.

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma

Valutazione e analisi

Per valutare l'interazione dell'utente, è possibile utilizzare sia l'analisi integrata del servizio Azure Bot sia il servizio speciale Application Insights.

Di conseguenza, è possibile raccogliere informazioni in base ai seguenti criteri:

  • Quanti utenti hanno effettuato l'accesso al bot da vari canali durante il periodo di tempo selezionato.
  • Quanti utenti che hanno inviato un messaggio sono tornati più tardi e ne hanno inviato un altro.
  • Quante azioni sono state inviate e ricevute utilizzando ciascun canale durante l'intervallo di tempo specificato.

Utilizzando Application Insights è possibile monitorare qualsiasi applicazione in Azure e, in particolare, i chatbot, ottenendo dati aggiuntivi sul comportamento degli utenti, sui carichi e sulle reazioni dei chatbot. Va notato che il servizio Application Insights ha una propria interfaccia nel portale di Azure.

È inoltre possibile utilizzare i dati raccolti tramite questo servizio per creare visualizzazioni aggiuntive e report analitici in PowerBI. È possibile prendere un esempio di tale report e modello per PowerBI qui.

Acceleriamo lo sviluppo utilizzando i servizi Azure: creiamo chatbot e servizi cognitivi utilizzando la piattaforma

Grazie a tutti per l'attenzione! In questo articolo abbiamo utilizzato materiale dal webinar dell'architetto di Microsoft Azure Anna Fenyushina “Quando le persone non hanno tempo. Come utilizzare al 100% i chatbot e i servizi cognitivi per automatizzare i processi di routine", in cui abbiamo mostrato chiaramente cosa sono i chatbot in Azure e quali sono gli scenari per il loro utilizzo, e abbiamo anche dimostrato come creare un bot in QnA Maker in 15 minuti e come la struttura della query viene decifrata in LUIS. 

Abbiamo realizzato questo webinar come parte della maratona online per sviluppatori Dev Bootcamp. Si trattava di prodotti che acceleravano lo sviluppo e alleviavano parte del carico di lavoro di routine dei dipendenti dell'azienda utilizzando strumenti di automazione e moduli Azure preconfigurati già pronti. Le registrazioni degli altri webinar inseriti nella maratona sono disponibili ai seguenti link:

Fonte: habr.com

Aggiungi un commento