Questa è una semplice dimostrazione utilizzando GoogleCloud Functions e Flussi per fare riconoscimento delle immagini su un'immagine inviata su Telegram.
Flussi e oltre
Come sviluppatore di Flussi, penso spesso a chi sono i nostri utenti, perché usano Flussi e cosa hanno bisogno di raggiungere con i loro obiettivi; e poi, quali funzionalità dobbiamo implementare per servire al meglio quegli utenti.
Flussi è un potente motore di automazione drag-and-drop per creare flussi di comunicazione. Inizialmente lo abbiamo concepito come una soluzione senza codice, ma abbiamo scoperto che molti utenti possono ottenere comportamenti davvero potenti scrivendo un po' di codice per casi d'uso specifici. Questi frammenti di codice possono essere all'interno di Flussi o possono essere funzioni di cloud di terze parti come AWS Lambda o Google Cloud Functions.
Un caso d'uso interessante: Riconoscimento delle immagini
Per un breve e divertente esempio, ti mostrerò come implementare un'app che riconosce i hot dog. Configureremo un flusso in Flussi, che riceverà immagini dagli utenti e deciderà se hanno inviato un hot dog o meno.
Per molti dei nostri clienti, questo tipo di riconoscimento delle immagini può essere molto potente. Immagina di gestire un servizio di consegna e di voler verificare automaticamente le consegne riuscite. Simile a ciò che sto per mostrare, potresti utilizzare i dati di posizione, foto dei pacchi e persino le firme dei destinatari per creare un flusso di verifica in Flussi.
Un piano per il successo
Innanzitutto, dovremo impostare una funzione cloud, che riceve una richiesta con un'URL a un'immagine, quindi utilizza un'API di riconoscimento delle immagini per elaborare l'immagine, e risponde se c'è un hot dog nell'immagine o meno.
Poi costruiremo un flusso, che riceve un messaggio da un utente tramite un canale di messaggistica (Telegram in questo caso), esegue la funzione cloud sopra e risponde all'utente se c'è un hot dog in una foto che ha inviato.
Configurazione della Google Cloud Function
Per prima cosa, dovremo configurare una funzione cloud. Per iniziare rapidamente, crea una funzione cloud utilizzando questo tutorial: https://cloud.google.com/functions/docs/quickstart-console. Come 'Trigger' scegli il trigger HTTP, ambiente di esecuzione: Node.js 10, e nel campo del codice sorgente inserisci il frammento di codice. È un codice semplice, che verifica se la richiesta contiene codice JSON e risponde sì o no.
Successivamente, dovrai distribuire questa funzione. Per testarla all'interno di Google Cloud Platform, segui i passaggi del tutorial.
Per testare dal tuo browser, vai al seguente URL inserendo l'indirizzo specifico per la tua funzione:
https://il-tuo-indirizzo-funzione.cloudfunctions.net/HotDogOrNot/?url=hello dovrebbe restituire {"isHotDog": true} e l'indirizzo https://il-tuo-indirizzo-funzione.cloudfunctions.net/HotDogOrNot dovrebbe restituire {"isHotDog": false}.
Bel lavoro! Hai impostato una funzione di Google Cloud. Ora dobbiamo rendere la nostra funzione più intelligente.
Impostazione della Google Vision API
Per renderla più intelligente, aggiungiamo il riconoscimento delle immagini. A questo scopo utilizzeremo Google Vision API. Per iniziare, segui i passi da 1 a 4 di questo tutorial: https://cloud.google.com/vision/docs/quickstart-client-libraries. Nel tutorial attiverai la Vision API e creerai un account di servizio per utilizzarla.
Ora torna alla funzione cloud che hai creato. Attiva “Variabili ambientali, networking, timeout e altro” e nel file “Account di servizio” scegli l'account di servizio VisionAPI che hai appena creato. Ora possiamo accedere alla Vision API all'interno della nostra funzione.
Ora cambiamo il codice. Nella scheda “Package.json”, inserisci questo codice. Aggiungerà la libreria Google Vision API come dipendenza alla tua funzione, e nella scheda "Index.js" aggiorna il codice esistente con il seguente frammento di codice.
Qual è la differenza rispetto alla versione precedente? Abbiamo aggiunto una richiesta alla VisionAPI, che restituisce le ‘etichette’ trovate nell'immagine. Poi filtriamo queste etichette per descrizione: se contiene “hot dog” e se ha una fiducia superiore al 60% in quella etichetta. Se c'è almeno 1 etichetta restante dopo il filtraggio, significa che abbiamo trovato un hot dog nell'immagine.
Per capire come funziona Google VisionAPI e come appare la risposta, controlla la loro documentazione, https://cloud.google.com/vision/docs
Dopo, distribuisci la nuova versione della nostra funzione. Per testarla dal tuo browser, trova qualsiasi immagine di un hot dog e salva il suo URL. Ora vai all'URL della tua funzione (inserendo l'indirizzo corretto per la tua funzione) https://il-tuo-indirizzo-funzione.cloudfunctions.net/HotDogOrNot?url=url_a_immagine e sostituisci la “url_a_immagine” con un URL all'immagine trovata. Se c'è un hot dog nell'immagine, la pagina restituirà {"isHotDog": true}.
Ora colleghiamo questa funzione a Flow Builder.
Creazione di un flusso in Flussi
Accedi al Bird Dashboard o registrati per un account se non ne hai uno.
Se sei nuovo in Flussi e non hai canali configurati, dovrai andare alla pagina di configurazione dei canali e scegliere di impostare il canale Telegram. Ho scelto Telegram per questa dimostrazione perché è facile e veloce da configurare.
Ora hai un canale che possiamo usare in Flussi. Vai alla pagina Flussi, crea un nuovo flusso personalizzato e scegli il trigger del canale “Telegram”.
Sarai reindirizzato a una pagina di flusso, dove dovresti scegliere il tuo canale Telegram come trigger, nel nostro caso è “Hotdog”. Si prega di aggiungere 2 passaggi: “Recupera variabili” e “Rispondi al messaggio del canale”.
All'interno del passaggio “Recupera variabili” chiameremo la nostra funzione cloud e recupereremo la risposta nella variabile “isHotDog” che conterrà “true” o “false” come risposta dalla funzione GoogleCloud. Nel campo URL inserisci l'URL della tua funzione https://your-function-address.cloudfunctions.net/HotDogOrNot e compila tutti gli altri campi come nella foto del contenuto del passaggio "Recupera variabile".
E all'interno del passo “Rispondi al messaggio del canale” risponderemo al cliente con un messaggio contenente la risposta sì o no. A tal fine, inserisci nel campo "Rispondi con messaggio" il seguente testo "Hotdog nell'immagine? {{isHotDog}}".
Se hai problemi a costruire il flusso, puoi esportarlo dal file: simple-hotdog-flow.json.
Per testarlo, invia un'immagine al tuo bot di Telegram.
Fino ad ora, sembra fantastico! Abbiamo creato un piccolo chatbot, che controlla le immagini inviate dai clienti. Per renderlo più carino, aggiungiamo qualche passaggio in più come mostrato di seguito:
Se hai problemi a costruire il flusso, puoi esportarlo dal file: advanced-hotdog-flow.json.
Risultati
Pur essendo un esempio divertente, crediamo che questo tipo di funzionalità possa essere molto utile per i nostri utenti.
Se desideri ulteriori funzionalità come questa integrate in Flussi, scrivi al nostro team di supporto per farcelo sapere.