Guest Post: Cognitive Services
Questo post è stato scritto da Massimo Bonanni , Microsoft Sr Consultant - Cloud App e Data Insight
Cognitive Services (anche noto con il nome di Project Oxford) è un insieme di servizi esposti come API REST che permettono di aggiungere alle nostre applicazioni delle funzionalità “cognitive”, cioè funzionalità che abilitano le nostre applicazioni alla “comprensione” del mondo che le circonda.
Cognitive Services sfrutta la potenza del cloud e, in particolar modo, Azure Machine Learning per fornire una pletora di servizi che possiamo dividere nelle seguenti categorie:
- Vision Service: sono quei servizi che permettono di analizzare immagini o video alla ricerca di informazioni. Fanno parte di questa categoria i servizi che ci consentono di individuare un volto o delle espressioni di un viso o le caratteristiche di un oggetto presente in un’immagine;
- Speech Service: sono quei servizi che ci consentono di lavorare su stream vocali per, ad esempio, convertirli in testo, riconoscere il parlato o l’identità dello speaker;
- Language Service: sono quei servizi che permettono di analizzare frasi o paragrafi per analizzare se sono formalmente corretti dal punto di vista di un linguaggio. Tra questi servizi troviamo servizi per eseguire analisi di linguaggio o cercare di comprendere cosa hanno intenzione di dire i nostri utenti.
- Knowledge Service: sono quei servizi che permettono di eseguire analisi su basi di conoscenza. Tra questi servizi troviamo, ad esempio, il servizio per fornire suggerimenti e consigliare “prodotti” ai nostri utenti.
- Search Service: sono servizi di ricerca “classici” che possono agire su pagine web, immagini, video, etc., etc..
In questo post non entreremo nel dettaglio dei servizi ma cercheremo di capire da dove poter cominciare e quali risorse abbiamo a disposizione.
Per Iniziare...
L’entry point per cominciare a scoprire il mondo di Cognitive Services è https://www.microsoft.com/cognitive-services.
Cognitive Services fornisce un abbonamento gratuito per poter testare le API che possiamo attivare semplicemente registrandoci con un Microsoft Account.
La procedure per la registrazione è molto semplice e basta cliccare sul link “My Account” presente in alto a destra.
Una volta inserite le credenziali del Microsoft Account, viene visualizzata la pagina dell’account in cui possiamo attivare l’utilizzo dei singoli servizi di Cognitive Services.
Il tasto “Request new Trials” permette di scegliere queli servizi attivare.
Il tasto “Subscribe” attiva effettivamente le trial che vengono mostrate successivamente all’attivazione nella sezione “My free subscriptions”.
Il tasto “Request New Trials” ci consente di attivare delle trial successivamente qualora non le avessimo selezionate durante la prima attivazione.
Per ogni servizio attivato abbiamo a disposizione le condizioni della trial (campo Description), le chiavi necessarie per poter utilizzare le API REST (vedremo in seguito come), lo stato della trial e la possibilità di vedere le quote consumate.
Usare le API REST
Vediamo ora come poter utilizzare le API REST per poter fare delle prove e capire il funzionamento dei servizi esposte da Cognitive Services.
Tutti i servizi hanno la loro home page nella quale vengono illustrate le caratteristiche principali del servizio e in cui troviamo i link per accedere alla documentazione ufficiale, alle API Reference e all’SDK (ove presente) nei vari linguaggi di programmazione.
Nel caso del servizio di Face API (che useremo come esempio in questo post), la pagina si trova all’indirizzo https://www.microsoft.com/cognitive-services/en-us/face-api
Come possiamo notare dalla figura precedente, la home page del servizio fornisce anche informazioni relative alle opzioni di prezzo disponibili: nel caso del servizio di Face API, l’account trial ci fornisce 30.000 transazioni (cioè chiamate REST) al mese dopo delle quali il servizio non è più disponibile mentre il piano standard prevede un costo di 1,50 dollari ogni 1000 transazioni.
Il piano trial è ampiamente sufficiente per poter fare delle prove e capire se il servizio fa al caso nostro o meno.
Nella pagina, come già detto, troviamo i link per accedere all’SDK, alla documentazione e alle API Reference.
In particolare la documentazione contiene esempi di utilizzo delle API anche in linguaggi non .NET e tutorial per poter utilizzare in maniera rapida tutte le funzionalità del servizio.
Per concludere l’analisi della home page dei singoli servizi citiamo il link alle API Reference (presente anche nelle pagine di documentazione) che ci permette di accedere alla documentazione in cui è dettagliatamente spiegata ogni singola API REST.
Giochiamo con le API REST
Per poter giocare un po' con le API dei servizi, possiamo scrivere una applicazione specifica (utilizzando l’SDK o eseguendo le chiamate REST via codice), utilizzare strumenti come Fiddler (http://www.telerik.com/fiddler) o PostMan (https://www.getpostman.com/) oppure sfruttare la Testing Console presente all’interno delle Reference API.
La console di test ci permette di aggiungere o togliere parametri alla richiesta, modificare il body, aggiungere la chiave di sicurezza vista in precedenza ed effettuare la chiamata REST.
A seguito dell’invio della richiesta REST, la pagina si aggiorna mostrando il risultato della chiamata stessa.
In questo modo possiamo facilmente provare le API senza dover scrivere una linea di codice.