giovedì 23 giugno 2016 di Michele Nasi 2931 Letture

Applicazioni più intelligenti con Azure Cognitive Services e Bot Framework

Nel corso dell'ultima edizione della Microsoft Build Developer Conference, la piattaforma Azure è stato uno degli argomenti sui quali si sono concentrati nuovi annunci, discussioni e approfondimenti.

Azure Cognitive Services, ovvero come portare l'intelligenza artificiale avanzata nelle applicazioni

Nei precedenti articoli abbiamo già visto come gli algoritmi di machine learning siano il perno attorno al quale ruotano molti servizi Microsoft (vedere Azure: machine learning, analisi dei dati anche in tempo reale e big data).

La piattaforma per il machine learning di Azure è in continua evoluzione così come lo sono tutti i "servizi satellite" utilizzabili dagli utenti nelle proprie applicazioni e nei propri progetti.
Un'ulteriore conferma è arrivata nel corso della Build 2016 durante la quale Microsoft ha annunciato Azure Cognitive Services.


I Cognitive Services (in italiano "Servizi cognitivi") permettono di abilitare, facilmente, algoritmi di intelligenza artificiale per visione, sintesi vocale, linguaggio e conoscenza all'interno delle applicazioni. Il tutto senza installare nulla e senza dover sostenere pesanti configurazioni dal momento che l'intelligenza artificiale avanzata è immediatamente disponibile sulla cloud.

Microsoft vuole rendere Azure una vera e propria fucina per la creazione di nuove esperienze d'uso che possano permettere agli utenti di agire in maniera molto più naturale, maggiormente personalizzata e, in ultima analisi, utilizzando un comportamento simile a quello che teniamo ogni giorno per interagire con qualunque essere umano.

Dal punto di vista tecnico, Cognitive Services è una raccolta di 22 API (almeno allo stato attuale) che aiuteranno professionisti e sviluppatori a realizzare quei "software intelligenti" che saranno posti al servizio delle più disparate esigenze nei decenni a venire.

L'idea è quella di rendere la macchina, grazie all'intelligenza artificiale fornita dai Cognitive Services di Azure, capace di "vedere" il mondo circostante (mediante l'interpretazione di immagini e video) e di "parlare" agli utenti in modo naturale anche riconoscendo il linguaggio naturale.
"Scandagliando" l'enorme mole di dati disponibile attraverso diverse sorgenti, l'intelligenza artificiale realizzabile usando i Cognitive Services di Azure può fornire risposte corrette e pertinenti sviluppando quella che può essere definita una forma di conoscenza. L'intelligenza artificiale di Microsoft è infatti in grado di individuare legami fra concetti ed entità del "mondo reale".

Applicazioni più intelligenti con Azure Cognitive Services e Bot Framework

Durante le demo svoltesi in occasione della Build 2016, i tecnici di Microsoft hanno dimostrato come i Cognitive Services possano essere utilizzati per le necessità più disparate.

L'applicazione web CaptionBot è basata proprio su Azure Cognitive Services: utilizzando l'intelligenza artificiale, essa è in grado di descrivere quanto raffigurato in qualunque foto o immagine.

Applicazioni più intelligenti con Azure Cognitive Services e Bot Framework

Non solo. L'intelligenza artificiale è pure in grado di riconoscere l'identità delle persone raffigurate nelle foto.

Un altro esempio è l'applicazione Celebslike.me che riesce a stabilire la somiglianza di qualunque persona con i personaggi famosi. È stato poi citato anche Project Murphy che permette di interagire con "bot" per porgli domande del tipo: "come sarebbe stato Beethoven se fosse stato una rockstar?".

Alcuni esempi che rendono bene l'idea di quanto siano potenti e versatili i Cognitive Services di Azure.

Ancora una volta, come accade per l'intera pletora dei servizi Azure, i Cognitive Services si basano su API REST, il che ne consente l'utilizzo da qualunque applicazione, sviluppata con qualsiasi linguaggio di programmazione e su qualsivoglia piattaforma.

Sebbene i Cognitive Services siano stati realizzati da un team di esperti, il loro utilizzo non è affatto riservato ai soli esperti. Non è quindi necessario disporre di particolari competenze nel campo del machine learning e dell'intelligenza artificiale per adoperarli sin da subito.


Anzi, basta la semplice iscrizione gratuita ad Azure per provare subito i Cognitive Services sulla piattaforma cloud di Microsoft.

Applicazioni più intelligenti con Azure Cognitive Services e Bot Framework

È interessante evidenziare che tutte le API dei Cognitive Services accessibili attraverso la piattaforma Azure sono fruibili anche utilizzando un profilo completamente gratuito (Free pricing tier) che permette di effettuare i test di ciascuna funzionalità in proprio senza spendere un centesimo (quindi senza alcun addebito sulla carta di credito).

Bot Framework: le applicazioni diventano più intelligenti e interagiscono con gli utenti in modo più naturale

L'altra importante novità presentata alla ultima Build Conference di Microsoft si chiama Bot Framework.

Si tratta di un'innovativa piattaforma che permette la realizzazione di applicazioni intelligenti, capaci di interagire con gli utenti in maniera naturale. "Dietro le quinte" il Bot Framework è già utilizzato per migliorare il comportamento dell'assistente digitale Cortana (ne avevamo parlato nell'articolo Cortana interagirà con i bot per aiutare gli utenti) ma oggi si offre a qualunque sviluppatore che desideri creare applicazioni più evolute e offrire agli utenti nuove esperienze d'uso.

Un "bot" creato con il nuovo framework proposto da Microsoft, parte integrante della piattaforma Azure, può far leva su elementi software che abbiamo già visto nei precedenti articoli (logic apps, web apps; vedere Come eseguire un'applicazione web ASP.NET, PHP, Java o Python su Azure e Realizzare una app per dispositivi mobili con Azure. Mobile apps, logic apps e API apps), su algoritmi di machine learning ma anche sistemi on-premises permettendo così l'ibridazione delle app.
Il "bot" può attingere a risorse conservate nella propria infrastruttura così come sul cloud per ottimizzare l'esperienza d'utilizzo e fornire risposte.


Applicazioni più intelligenti con Azure Cognitive Services e Bot Framework

Il Bot Framework mette a disposizione dello sviluppatore gli strumenti per costruire e interconnettere "bot" intelligenti che possano interagire in maniera naturale indipendentemente dagli strumenti adoperati dagli utenti per colloquiare (si pensi a Office 365, Skype, Slack, Telegram o altri popolari servizi).

Il bot in sé può essere realizzato ricorrendo ad esempio a Visual Studio oppure servendosi del Bot Builder SDK.
Quest'ultimo è un pacchetto di sviluppo opensource (ospitato su GitHub) che permette di definire il comportamento del bot servendosi di Node.js o C# (maggiori informazioni sono disponibili a questo indirizzo).

Combinando il Bot Framework con i Cognitive Services, è possibile realizzare un'applicazione intelligente in un tempo ridotto e renderla in grado di porre in correlazioni concetti ed entità e intrattenere dialoghi con gli utenti.

Attraverso il Bot Connector, si possono collegare i propri bot ai vari servizi (compresi i tradizionali servizi di messaggistica, come i semplici SMS).

Si potrà quindi registrare il proprio bot su questo sito, impostare le modalità con cui deve comunicare e pubblicarlo nella directory (che già contiene diversi bot di esempio; vedere queste pagine).

 Newsletter e Social