fbpx

Intelligenza Artificiale per tutti: Bot Framework Composer

da | 26 Apr 2021 | Blog

Nella creazione di un’applicazione che coinvolge l’intelligenza artificiale, l’interazione tra diversi reparti è l’arma vincente. Questo vale specialmente per le applicazioni conversazionali, dove il contributo di figure diverse può concentrarsi in ambiti specifici: gli esperti di dominio ad esempio possono contribuire alla realizzazione di funzionalità utili nel proprio ambito, i traduttori possono tradurre i dialoghi in una lingua diversa, e così via.

Non tutti, però, hanno anche le conoscenze tecniche per creare un’applicazione partendo dal codice. In questi casi possiamo utilizzare gli strumenti che ci consentono di creare un’applicazione con poco codice, detti tool low-code, o addirittura senza codice, chiamati tool no-code. Queste soluzioni danno la possibilità di inserire nel processo di sviluppo anche chi non ha conoscenze di programmazione o intelligenza artificiale.

Sono molte le piattaforme, in Cloud e non, che offrono strumenti del genere. Oggi ci soffermeremo sull’offerta Microsoft, che include diverse soluzioni per la creazione di Bot che si adattano ad esigenze diverse: in questo articolo vedremo insieme il Bot Framework Composer.

Di cosa si tratta

Come si può già intuire dal nome, il Composer è basato su Bot Framework, una serie di librerie e strumenti open source per lo sviluppo di Bot. Scrivere codice non è più strettamente necessario, in quanto Composer segue un approccio grafico basato sulla costruzione di diagrammi di flusso e template testuali che andranno a costituire la logica del Bot, lasciando comunque la possibilità di personalizzare alcuni aspetti tecnici. Per poter sfruttare appieno le funzionalità del framework, può essere utile quindi conoscere le sue convenzioni e quali sono le integrazioni che mette a disposizione.

Un esempio è l’integrazione con diversi servizi su Cloud Azure, per i quali il tool offre integrazione nativa, come i servizi di NLP LUIS e QnA Maker, che ci aiutano a costruire un’applicazione ricca ed intelligente.

Se non conoscete LUIS potete farvi un’idea generale di quali funzionalità offre dando uno sguardo al precedente articolo.

Una volta installato ed aperto, fin da subito Composer ci presenta molti esempi da cui partire o anche trarre semplicemente spunto. Tra questi daremo uno sguardo a “Todo with LUIS”, un Bot per gestire delle liste che utilizza LUIS per capire le richieste dell’ utente.

Aperto il nuovo progetto, la schermata principale si presenta così:

  1. Un menu laterale con cui potersi spostare tra le diverse sezioni del composer.
  2. La lista dei dialog gestiti dal bot.
  3. Il flusso del dialog selezionato.
  4. Le proprietà di un singolo blocco all’interno del flusso.

Ma cosa sono questi dialog?

Gestione dei dialoghi

La conversazione con un utente viene gestita in quello che viene chiamato dialog, che rappresenta una specifica sequenza di interazioni con l’utente. All’interno di un dialog si possono richiedere informazioni all’utente, inviargli dei messaggi, valutare i dati a disposizione ed eseguire azioni. Vediamolo in pratica selezionando il dialog WelcomeUser dalla lista.

Questo dialog invia un messaggio di benvenuto agli utenti che aprono una conversazione con il Bot. Il messaggio viene inviato dal blocco Send a Response.

Da qui è possibile arricchire la risposta. Si possono aggiungere delle variazioni alle frasi, così da rendere la conversazione più dinamica, oppure aggiungere una risposta vocale sintetizzando il testo.

E’ possibile utilizzare l’approccio grafico, o accedere direttamente al template testuale che utilizza la sintassi LanguageGenerator. Questa sintassi ci consente di non fermarci al semplice testo, ma rispondere con card ricche ed interattive, ad esempio includendo audio o video, o utilizzando le Adaptive Cards.

Tramite Adaptive Cards, è possibile creare delle card interattive per presentare le informazioni in maniera grafica ed interattiva, come questa card per le informazioni su un volo, che è solo uno dei tanti esempi messi a disposizione sul portale di Adaptive Cards.

Riconoscimento degli intent

Il riconoscimento delle intenzioni dell’utente può avvenire tramite la definizioni di regole fisse, oppure affidandosi a LUIS. Da Composer si possono definire le frasi di esempio e anche le entità contenute all’interno di esse.

Nel caso in cui non ci si volesse affidare a LUIS, è possibile definire una lista di espressioni regolari all’interno del campo trigger phrases. Con questo metodo è possibile riconoscere frasi semplici e va bene quando ci si aspetta delle frasi che non varieranno molto, oppure con codici e sigle personalizzati.

Mediante espressioni regolari è possibile non solo riconoscere l’intento dell’utente, ma anche di estrapolare parti della frase come variabili da utilizzare nei nostri dialog.

Ulteriori funzionalità

Spesso non si può fare a meno di accedere a servizi esterni per eseguire le operazioni richieste o recuperare delle informazioni da restituire all’utente. Composer ci mette a disposizione diversi strumenti per accedere a risorse esterne. E’ possibile invocare ad esempio una API REST. Il risultato dell’invocazione può essere poi manipolato all’interno del flusso del dialog e restituito all’utente.

Bot Framework Composer inoltre permette di gestire i dialoghi in più lingue, così da rendere semplice tradurre l’app nelle lingue dei propri utenti.

Come già detto, Bot Framework Composer fa parte di un framework più ampio chiamato Bot Framework: un sistema flessibile, a cui si possono applicare diverse personalizzazioni adatte ad ogni caso d’uso. In Bot Framework Solutions, ad esempio, trovate l’implementazione di un meccanismo di feedback con cui chiedere il parere dell’utente sul Bot, così da poterlo migliorare sulla base dell’esperienza degli utenti.

Testare l’applicazione

Per testare l’applicazione, è possibile avviare il Bot ed aprire una conversazione. Il Composer avvia il Bot e crea anche le risorse necessarie al test dell’applicazione, in questo caso, ad esempio, crea le app LUIS in maniera automatica.

In produzione!

Ci sono diversi modi di fare il deploy dell’applicazione, una completamente automatica ed una manuale. Nel caso della prima, il tool si occuperà di creare e gestire tutte le risorse necessarie a far girare il nostro bot su Azure, come ad esempio le app LUIS e QnA maker.

Dalle impostazioni di progetto, si crea un profilo di pubblicazione. Il wizard chiederà di autenticarsi con il proprio account Azure, di cui è necessario avere una sottoscrizione valida, e farà il resto.

Il secondo metodo, è quello di esportare il codice dell’applicazione e di farne il deploy manualmente nell’ambiente che si preferisce. La procedura è per utenti esperti, e consente di personalizzare gli aspetti di natura più tecnica dell’applicazione. Potete trovare maggiori informazioni nella guida ufficiale.

In ogni caso, una volta esportato il Bot può essere pubblicato sui canali disponibili come Teams, Skype, Facebook e tanti altri. In alternativa, è possibile utilizzare il progetto Web Chat per integrare all’interno di un sito già esistente una chat.

Per finire

Il Bot Framework Composer con il suo approccio low-code consente di separare quelli che sono i problemi tecnici da quelli del dominio, permettendo alle figure non tecniche di essere incluse nel ciclo di sviluppo del prodotto, pur lasciando la porta aperta alla personalizzazione del Bot, modificando il codice per integrare le funzionalità non previste nativamente.

E’ fondamentale capire che una tecnologia del genere non può essere demandata soltanto agli sviluppatori, che poi è la ragione principale per cui stiamo realizzando Elly: creare strumenti che aiutino gli esperti a dare valore ai propri dati!

Continuate a seguirci!

Scritto da

Scritto da

Salvatore Merone