
Flows is een krachtige drag-and-drop automatiseringsengine voor het creëren van communicatieflows. We bedachten het aanvankelijk als een no-code oplossing, maar we ontdekten dat veel gebruikers echt krachtige functionaliteiten konden creëren door wat code te schrijven voor specifieke use-cases. Deze stukjes code kunnen binnen Flow Builder zijn, of ze kunnen 3rd party cloudfuncties zijn zoals AWS Lambda functies of Google Cloud Functions.
Business in a box.
Ontdek onze oplossingen.
Praat met ons verkoopteam
Dit is een eenvoudige demonstratie met GoogleCloud Functions en Flows om beeldherkenning uit te voeren op een afbeelding die via Telegram is verzonden.
Flows en Beyond
Als een ontwikkelaar van Flows denk ik vaak na over wie onze gebruikers zijn, waarom ze Flows gebruiken en wat ze nodig hebben om hun doelen te bereiken; en dan, welke functies we moeten implementeren om deze gebruikers het beste van dienst te zijn.
Flows is een krachtige drag-and-drop automatiseringsengine voor het creëren van communicatiestromen. We bedachten het aanvankelijk als een no-code oplossing, maar we ontdekten dat veel gebruikers echt krachtige functionaliteiten konden realiseren door wat code te schrijven voor specifieke use-cases. Deze stukjes code kunnen binnen Flows zijn, of het kunnen externe cloudfuncties zijn zoals AWS Lambda-functies of Google Cloud Functions.
Een interessant gebruiksgeval: Beeldherkenning
Voor een kort en grappig voorbeeld zal ik je laten zien hoe je een app implementeert die hotdogs herkent. We zullen een flow instellen in Flows, die afbeeldingen van gebruikers ontvangt en beslist of ze een hotdog hebben gestuurd of niet.
Voor veel van onze klanten kan dit type beeldherkenning zeer krachtig zijn. Stel je voor dat je een bezorgservice runt en je wilde leveringen automatisch verifiëren. Vergelijkbaar met wat ik ga laten zien, zou je locatiegegevens, foto's van pakketten en zelfs handtekeningen van ontvangers kunnen gebruiken om een verificatiestroom in Flows te creëren.
Een plan voor succes
Het instellen van de Google Cloud Function
Allereerst moeten we een cloudfunctie instellen. Om snel aan de slag te gaan, maak een cloudfunctie met behulp van deze tutorial: https://cloud.google.com/functions/docs/quickstart-console. Kies als ‘Trigger’ HTTP trigger, uitvoering omgeving: Node.js 10, en voeg in het broncodeveld het codefragment in. Het is eenvoudige code, die controleert of het verzoek JSON-code bevat en antwoordt ja of nee.

Vervolgens moet je deze functie implementeren. Volg de stappen uit de tutorial om het binnen Google Cloud Platform te testen.
Om vanuit je browser te testen, ga je naar de volgende URL en vul je het specifieke adres voor je functie in:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
zou moeten retourneren {“isHotDog”: true} en het adres https://your-function-address.cloudfunctions.net/HotDogOrNot
zou moeten retourneren {“isHotDog”: false}.
Mooie prestatie! Je hebt een Google Cloud-functie ingesteld. Nu moeten we onze cloudfunctie slimmer maken.
Het instellen van de Google Vision API
Om het slimmer te maken, laten we beeldherkenning toevoegen. Voor dit doel zullen we de Google Vision API gebruiken. Om te beginnen, volg stappen 1-4 van deze tutorial: https://cloud.google.com/vision/docs/quickstart-client-libraries. In de tutorial activeer je de Vision API en maak je een service-account aan om het te gebruiken.
Ga nu terug naar de cloudfunctie die je hebt gemaakt. Schakel "Omgevingsvariabelen, netwerken, time-outs en meer" in en kies in het bestand “Service account” het VisionAPI-service-account dat je zojuist hebt gemaakt. Nu hebben we toegang tot de Vision API binnen onze functie.

Laten we nu de code wijzigen. Open een “Package.json” tabblad en voer deze code in. Het zal de Google Vision API-bibliotheek toevoegen als afhankelijkheid van je functie.
Werk op het tabblad "Index.js" de bestaande code bij met het volgende codefragment.

Wat is het verschil vergeleken met de vorige versie? We hebben een verzoek toegevoegd aan VisionAPI, dat de ‘labels’ retourneert die het op de afbeelding heeft gevonden. Vervolgens filteren we deze labels op beschrijving: als het “hotdog” bevat en als het meer dan 60% vertrouwen heeft in dat label. Als er na het filteren ten minste 1 label overblijft, betekent dit dat we een hotdog op de afbeelding hebben gevonden.
Om te begrijpen hoe Google VisionAPI werkt en hoe de respons eruitziet, bekijk hun documentatie, https://cloud.google.com/vision/docs
Daarna implementeer je de nieuwe versie van onze functie. Om het vanuit je browser te testen, zoek een willekeurige afbeelding van een hotdog en bewaar de URL. Ga nu naar de URL van je functie (plaats het juiste adres voor je functie) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
en vervang de “url_to_image” door een URL naar de gevonden afbeelding. Als er een hotdog op de afbeelding staat, geeft de pagina {“isHotDog”: true} terug.
Laten we deze functie nu verbinden met Flow Builder.
Een flow maken in Flows
Log in in het Bird Dashboard of meld je aan voor een account als je er nog geen hebt.
Als je nieuw bent bij Flows en je nog geen kanalen hebt ingesteld, moet je naar de Kanaalconfiguratiepagina gaan en ervoor kiezen om het Telegram-kanaal in te stellen. Ik koos Telegram voor deze demo omdat het gemakkelijk en snel op te zetten is.

Nu heb je een kanaal dat we in Flows kunnen gebruiken. Ga naar de Flows-pagina, maak een nieuwe aangepaste flow aan en kies de “Telegram” kanaaltrigger.

Je wordt doorgestuurd naar een flowpagina, waar je je Telegram-kanaal als trigger moet kiezen, in ons geval is het “Hotdog”. Voeg alsjeblieft 2 stappen toe: “Fetch variables” en “Reply to channel message”.
In de stap “Fetch variables” zullen we onze cloudfunctie aanroepen en de respons ophalen in de variabele “isHotDog” die “true” of “false” zal bevatten als reactie van de GoogleClound functie. Vul in het URL-veld de URL in naar je functie https://your-function-address.cloudfunctions.net/HotDogOrNot
en vul alle andere velden in zoals op de afbeelding "Fetch variable step content".
En in de stap “Reply to channel message” zullen we de klant antwoorden met een bericht dat de ja of nee reactie bevat. Voeg daarvoor in het veld "Reply with message" de volgende tekst in: "Hotdog op de afbeelding? {{isHotDog}}".


Als je problemen hebt met het bouwen van de flow, kun je de volgende snippet gebruiken:

Om het te testen, stuur een afbeelding naar je Telegram-bot.
Tot nu toe ziet het er cool uit! We hebben een kleine chatbot gemaakt die de door klanten verzonden afbeeldingen controleert. Om het mooier te maken, laten we enkele extra stappen toevoegen zoals hieronder weergegeven:

Als je problemen hebt met het bouwen van de flow, kun je de volgende snippet gebruiken:
Resultaten


Hoewel dit een leuk voorbeeld is, denken we dat dit soort functionaliteit zeer nuttig kan zijn voor onze gebruikers.
Als u meer functies zoals deze wilt opnemen in Flows, schrijf dan naar ons ondersteuningsteam om het ons te laten weten.