To jest prosta demonstracja używająca GoogleCloud Functions i Flows, aby rozpoznać obraz na obrazie wysłanym na Telegramie.
Flows i więcej
Jako deweloper Flows często myślę, kim są nasi użytkownicy, dlaczego używają Flows i czego potrzebują, aby osiągnąć swoje cele; a następnie, jakie funkcje musimy zaimplementować, aby najlepiej służyć tym użytkownikom.
Flows to potężny silnik automatyzacji typu drag-and-drop do tworzenia przepływów komunikacyjnych. Początkowo zaprojektowaliśmy go jako rozwiązanie bez kodu, ale odkryliśmy, że wielu użytkowników może uzyskać naprawdę potężne zachowanie, pisząc trochę kodu do konkretnych przypadków użycia. Te fragmenty kodu mogą znajdować się wewnątrz Flows lub mogą to być funkcje chmurowe innych firm, takie jak AWS Lambda lub Google Cloud Functions.
Interesujący przypadek użycia: Rozpoznawanie obrazów
Dla krótkiego i zabawnego przykładu pokażę ci, jak zaimplementować aplikację, która rozpoznaje hot-dogi. Ustawimy przepływ w Flows, który będzie otrzymywał obrazy od użytkowników i decydował, czy wysłali hot-doga, czy nie.
Dla wielu naszych klientów ten typ rozpoznawania obrazów może być bardzo przydatny. Wyobraź sobie, że prowadzisz usługę dostawy i chciałbyś automatycznie weryfikować udane dostawy. Podobnie jak to, co zamierzam pokazać, możesz użyć danych lokalizacyjnych, zdjęć paczek, a nawet podpisów odbiorców, aby stworzyć przepływ weryfikacji w Flows.
Plan na sukces
Najpierw skonfigurujemy funkcję chmurową, która odbiera żądanie z URL-em do obrazu, następnie wykorzystuje API rozpoznawania obrazów do przetwarzania obrazu, i odpowiada, czy na obrazie jest hot-dog, czy nie.
Następnie zbudujemy przepływ, który odbiera wiadomość od użytkownika przez kanał komunikacyjny (Telegram w tym przypadku), wykonuje powyższą funkcję chmurową i odpowiada użytkownikowi, czy na zdjęciu wysłanym przez niego znajduje się hot-dog.
Konfigurowanie funkcji Google Cloud
Najpierw musimy skonfigurować funkcję chmurową. Aby szybko rozpocząć, stwórz funkcję chmurową za pomocą tego poradnika: https://cloud.google.com/functions/docs/quickstart-console. Jako „Wyzwalacz” wybierz wyzwalacz HTTP, środowisko wykonawcze: Node.js 10, a w polu kodu źródłowego wstaw fragment kodu. To prosty kod, który sprawdza, czy żądanie zawiera kod JSON i odpowiada tak lub nie.
Następnie będziesz musiał wdrożyć tę funkcję. Aby przetestować ją wewnątrz Google Cloud Platform, postępuj zgodnie z krokami z poradnika.
Aby przetestować w przeglądarce, przejdź do poniższego URL-a, wstawiając konkretny adres swojej funkcji:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello powinien zwrócić {“isHotDog”: true}, a adres https://your-function-address.cloudfunctions.net/HotDogOrNot powinien zwrócić {“isHotDog”: false}.
Świetna robota! Ustawiłeś funkcję chmurową google. Teraz musimy uczynić naszą funkcję chmurową bardziej inteligentną.
Konfigurowanie Google Vision API
Aby uczynić ją mądrzejszą, dodajmy rozpoznawanie obrazów. W tym celu użyjemy Google Vision API. Aby zacząć, wykonaj kroki 1-4 tego poradnika: https://cloud.google.com/vision/docs/quickstart-client-libraries. W poradniku aktywujesz API Vision i utworzysz konto serwisowe, aby móc go używać.
Teraz wróć do funkcji chmurowej, którą stworzyłeś. Przełącz „Zmienne środowiskowe, sieci, limity czasowe i inne” i w pliku „Konto serwisowe” wybierz konto serwisowe VisionAPI, które właśnie utworzyłeś. Teraz możemy uzyskać dostęp do API Vision wewnątrz naszej funkcji.
Teraz zmieńmy kod. Na karcie „Package.json” wstaw ten kod. Doda to bibliotekę Google Vision API jako zależność do twojej funkcji, a na karcie "Index.js" zaktualizuj istniejący kod za pomocą następującego fragmentu kodu.
Jaka jest różnica w porównaniu z poprzednią wersją? Dodaliśmy zapytanie do VisionAPI, które zwraca „etykiety”, które znalazł na obrazie. Następnie filtrujemy te etykiety według opisu: jeśli zawiera „hot dog” i ma większą niż 60% pewności w tej etykiecie. Jeśli po filtrowaniu pozostanie przynajmniej 1 etykieta, oznacza to, że znaleźliśmy hot-doga na obrazie.
Aby zrozumieć, jak działa Google VisionAPI i jak wygląda odpowiedź, zapoznaj się z ich dokumentacją, https://cloud.google.com/vision/docs
Po tym wdroż nową wersję naszej funkcji. Aby przetestować ją w przeglądarce, znajdź dowolny obraz hot-doga i zapisz jego URL. Teraz przejdź do URL twojej funkcji (wstawiając poprawny adres swojej funkcji) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image i zastąp „url_to_image” URL-em znalezionego obrazu. Jeśli na obrazie jest hot-dog, strona zwróci {“isHotDog”: true}.
Teraz połączmy tę funkcję z Flow Builder.
Tworzenie przepływu w Flows
Zaloguj się do pulpitu nawigacyjnego Bird lub zarejestruj się na konto, jeśli go nie masz.
Jeśli jesteś nowy w Flows i nie masz skonfigurowanych żadnych kanałów, musisz przejść do strony konfiguracji kanału i wybrać konfigurację kanału Telegram. Wybrałem Telegram do tej demonstracji, ponieważ jest łatwy i szybki w konfiguracji.
Teraz masz kanał, którego możemy użyć w Flows. Przejdź do strony Flows, utwórz nowy niestandardowy przepływ i wybierz wyzwalacz „Telegram”.
Zostaniesz przekierowany do strony przepływu, gdzie powinieneś wybrać swój kanał Telegram jako wyzwalacz, w naszym przypadku jest to „Hotdog”. Proszę dodać 2 kroki: „Pobierz zmienne” i „Odpowiedz na wiadomość kanału”.
W kroku „Pobierz zmienne” wywołamy naszą funkcję chmurową i pobierzemy odpowiedź do zmiennej „isHotDog”, która będzie zawierała „true” lub „false” jako odpowiedź z funkcji GoogleCloud. W polu URL wstaw URL do swojej funkcji https://your-function-address.cloudfunctions.net/HotDogOrNot i wypełnij wszystkie pozostałe pola tak, jak na obrazku "Zawartość kroku pobierania zmiennych".
A w kroku „Odpowiedz na wiadomość kanału” odpowiemy klientowi wiadomością zawierającą odpowiedź tak lub nie. W tym celu w polu „Odpowiedz wiadomością” wstaw następujący tekst „Hot-dog na obrazie? {{isHotDog}}”.
Jeśli masz jakiekolwiek problemy z budowaniem przepływu, możesz go wyeksportować z pliku: simple-hotdog-flow.json.
Aby przetestować, wyślij obraz do swojego bota Telegram.
Jak na razie wygląda to świetnie! Stworzyliśmy małego chatbota, który sprawdza obrazy wysłane przez klientów. Aby uczynić to bardziej atrakcyjnym, dodajmy jeszcze kilka kroków, jak pokazano poniżej:
Jeśli masz jakiekolwiek problemy z budowaniem przepływu, możesz go wyeksportować z pliku: advanced-hotdog-flow.json.
Wyniki
Chociaż to zabawny przykład, wierzymy, że ten typ funkcjonalności może być bardzo przydatny dla naszych użytkowników.
Jeśli chcesz więcej takich funkcji wbudowanych w Flows, napisz do naszego zespołu wsparcia, aby dać nam znać.