OVH NEWS | INNOVAZIONI E TENDENZE IT


Scopri, comprendi, anticipa









24/05/2017
Condividi

Articolo scritto da Benjamin Coenen


[UX Labs] Chatbot OVH: l’intelligenza artificiale al servizio della user experience


Il primo progetto nato all'interno di OVH UX Labs, il nuovo spazio di R&D collaborativo dedicato al miglioramento continuo della user experience, è l'assistente virtuale OVH. Disponibile su Facebook Messenger e Slack, questo chatbot oggi è in grado di eseguire la diagnostica di un hosting Web e rispondere a un determinato numero di domande sul servizio. Questo è solo l'inizio: grazie al contributo degli utenti sarà possibile ampliare le capacità di assistenza del chatbot che, proprio per questo motivo, abbiamo reso open source.






Quando abbiamo immaginato questo assistente virtuale, l'obiettivo era ridurre la frustrazione dei clienti nel momento in cui riscontrano un problema (oggi con il proprio hosting Web, domani - speriamo - con molti altri servizi OVH). Il vantaggio per l'utente? Ottenere una diagnostica immediata in caso di problemi sul proprio hosting o errori nella sua configurazione, senza dover necessariamente chiamare il supporto o aprire un ticket. Per sviluppare il chatbot ci siamo concentrati inizialmente sulle principali richieste di assistenza delle chiamate al supporto Web. Il primo motivo di chiamata è stato: "Il mio sito non funziona più". Analizzando nel dettaglio questa categoria di chiamate abbiamo individuato diversi casi, dal più semplice al più complesso. Le cause di alcuni malfunzionamenti sono abbastanza semplici e possono essere diagnosticate automaticamente, altre richiedono lo sviluppo di un'intelligenza artificiale per essere identificate in modo preciso. Dal certificato SSL parzialmente installato ai problemi di configurazione DNS passando per gli errori di connessione ai database, l'assistente virtuale è in grado di rilevare, dopo qualche semplice domanda, l'origine del problema. Presto, in caso di incidente con impatto totale o parziale sull'infrastruttura OVH, potrà anche reindirizzarti al task aperto grazie al quale potrai seguire l'evoluzione della risoluzione dell'incidente.

Vediamo più da vicino il funzionamento del chatbot.



Tecnologie utilizzate


• Elaborazione del linguaggio
Per essere in grado di comprendere l'intento comunicativo, il chatbot deve poter effettuare un'elaborazione automatica del linguaggio naturale (Natural Language Processing), utile per dedurre l’intenzione veicolata da una frase formulata nel linguaggio umano. Noi abbiamo utilizzato il servizio wit.ai che, oltre a essere gratuito, dispone di un'API REST (ne esistono anche altri, ad esempio api.ai, recast.ai e luis.ai). In breve: il motore NLP prende la frase in entrata e, per comprendere l'intenzione, elimina tutte le parole superflue come i determinanti, i plurali, i pronomi personali... Dopo aver eliminato queste parole il sistema ricerca l'intento tra le parole restanti, basandosi sul "catalogo delle intenzioni" che gli abbiamo insegnato. Per funzionare correttamente, l'intelligenza artificiale deve passare per prima cosa da una fase di apprendimento: la frase "Il mio sito non funziona più", ad esempio, significa l'intenzione "website_break". Per il processo di apprendimento è sufficiente "nutrire" il motore di intelligenza artificiale con diversi esempi di frasi associati all'intenzione corrispondente.

• Piattaforme di comunicazione
Una volta che il chatbot "comprende" frasi del linguaggio umano — o sa associarle a un'intenzione — ha bisogno di un canale per poter interagire con l'utente. Grazie alla sua popolarità, la nostra scelta si è indirizzata rapidamente su Facebook Messenger. Messenger fornisce un'API HTTP per recuperare eventi come la ricezione e la lettura di un messaggio, o ancora la connessione… Questi eventi vengono poi restituiti tramite un webhook HTTP integrato sull'interfaccia di sviluppo Facebook Messenger durante la creazione dell'applicazione Messenger. Le risposte vengono poi inviate all’API Messenger tramite chiamate HTTP. L’API di Slack ha un funzionamento simile, fatta eccezione per alcune nozioni in materia di autenticazione e di diritti rispetto ai team Slack.

• API
Per rispondere agli eventi inviati sui webhook, è necessaria un'API HTTP. Quella che abbiamo sviluppato è realizzata Node.Js con il framework Express.Js ed è connessa a un database MongoDB fornito da OVH in modalità as a Service. Ogni piattaforma di comunicazione possiede strade differenti, che noi stessi abbiamo indicato sull'interfaccia di sviluppo di Slack e Facebook Messenger. Quando riceviamo una frase, rileviamo l'intenzione grazie a wit.ai ed effettuiamo le elaborazioni ricercando le informazioni ad essa associate, in particolare su api.ovh.com. Tutti i nostri log sono inviati su Graylog grazie al nostro servizio Logs Data Platform. Questo ci permette di monitorare il nostro servizio per individuare rapidamente malfunzionamenti o errori sulla nostra API.

Relativamente all'API, ecco un punto importante: per motivi di sicurezza, Facebook e Slack richiedono che sia accessibile in HTTPS. Per abilitare questo protocollo abbiamo utilizzato un altro servizio OVH disponibile in beta, SSL Gateway. Questa soluzione permette un notevole risparmio di tempo sia per la realizzazione dell'SSL che per la sua manutenzione (rinnovo del certificato), perché OVH si occupa di tutto. Praticamente, è sufficiente indicare un indirizzo IP e un dominio e il gioco è fatto: SSL Gateway invia via mail le informazioni da inserire nella zona DNS per attivare la comunicazione in HTTPS sul dominio.



Il codice del chatbot OVH è open source: a te la prossima mossa!


Utilizzare un chatbot per raccogliere informazioni o rispondere a domande apre la strada a molte opportunità. Oggi è ancora tutto da ideare e costruire. La nostra intenzione è sviluppare queste idee insieme a voi.

Proprio per questo abbiamo reso il codice open source, dopo aver eseguito il refactoring e reso pubbliche alcune dipendenze interne. Che tipo di contributo ci aspettiamo? Come arricchiremo il progetto? Ecco le risposte.






Progetti interni


Dall'avvio del progetto, abbiamo raccolto internamente molti suggerimenti interessanti per aumentare la copertura del servizio ed estederne le possibilità di utilizzo. Il team responsabile del miglioramento continuo, ripartito all'interno di ogni universo di prodotti e in costante contatto con i team del supporto tecnico, avrà presto la possibilità di arricchire il database con nuove opzioni, corrispondenti alle domande più frequenti degli utenti e inserire le relative risposte.

In futuro l’utilizzo del chatbot verrà esteso a tutti i servizi OVH e, oltre a eseguire una diagnostica, sarà in grado di fornire la risposta reindirizzando l'utente a una guida o a un thread del forum della Community OVH.

Non solo: alcuni customer advocate hanno immaginato di sfruttare l'intelligenza artificiale del chatbot per fornire consigli commerciali semplici, sulla base di esigenze espresse dai clienti… prima di proporre, in caso di necessità, un appuntamento telefonico per continuare lo scambio con l'operatore.






Tutti i contributi sono ben accetti!


Parallelamente al lavoro portato avanti dai team di OVH (che include anche l’implementazione nel chatbot di un modulo di feedback, necessario alla valutazione e al miglioramento continuo del tool), anche i vostri contributi sono importanti. Il codice open source del chatbot, disponibile tramite licenza BSD 3-clause, consente a tutti di aggiungere intenzioni, risposte e idee di diagnostica per qualsiasi servizio OVH, grazie alle informazioni disponibili via API OVH. I rivenditori delle soluzioni OVH, ad esempio, possono offrire ai propri clienti un assistente virtuale in white label oppure possono metterlo a disposizione di tutti suggerendo di integrare le proprie parti di codice con una "pull-request" su GitHub.

Ma non è tutto! Perché non immaginare un sistema di monitoring o alerting basato sul chatbot, che notifichi un disco pieno o un sovraccarico della CPU sul tuo server? E rendere il chatbot disponibile su nuove applicazioni, come Twitter? Provate a sorprenderci… e, se avete bisogno di stimoli per lo sviluppo delle vostre idee, contattaci!



Sviluppo del tuo chatbot


Il nostro chatbot è stato sviluppato a partire dai moduli standard disponibili in OVH (SSL Gateway, DBaaS MongoDB, Logs Data Platform…). Presto sarà disponibile in fase beta un modulo che faciliterà ulteriormente l'implementazione del proprio chatbot personale, Fonction as a Service: un servizio di elaborazione serverless in grado di eseguire calcoli in risposta a eventi definiti, senza doversi preoccupare delle risorse sottostanti.

Speriamo che sarete in tanti a implementare il vostro chatbot. Al di là del buzz (molti parlano già di rivoluzione in molti ambiti), è uno strumento potente, la cui assenza di interfaccia aumenta le possibilità.