Dzisiejszy artykuł dotyczył będzie zagadnień mocno technicznych, czyli takich, które są związane z moją pracą zawodową. Pokażę Wam jak zaimplementować Webhook Dialogflow w .NET Core.
Zdaję sobie sprawę, że budowanie własnego API i implementacja Webhook’ów w .NET Core nie jest tematem, który zainteresuje wszystkich czytelników, ale mimo to chciałem się tym z Wami podzielić. Kod, który udostępniam i który tworzę nie jest jeszcze „gotowy”, jest wiele do zrobienia, zrefaktorowania i raczej traktuję go jako wstęp do czegoś większego, niż gotowy produkt.
Dzisiejszy wpis to kontynuacja TEGO wpisu, w którym stworzyłem działający mock-up bota w Dialogflow, wykorzystującego funkcjonalność Fullfilment.
Dla szybkiego przypomnienia, chcemy aktualnie zaimplementować zapisywanie słowa/frazy oraz jej tłumaczenia do bazy danych użytkownika. W poprzednim artykule czynności te zasymulowaliśmy za pomocą narzędzia Mockservice.io, a dzisiaj pokażę jak stworzone mock-up’y zamienić na prawdziwe API, które będzie zapisywało dodane wyrażenia.
To co udało mi się zrobić to:
- Stworzyłem repozytorium na GitHubie, a w nim dodałem solucję na API, pełniące rolę Webhook’a
- API zawiera jedną metodę w kontrolerze VocabularyTrainerController o nazwie: Dispatch
- Baza danych na razie jest w postaci pliku tekstowego (jak będzie potrzeba, zamienię ją na jaką relacyjną bazę danych)
- Na podstawie przychodzącego intent’u uruchamiany jest odpowiedni handler, obsługujący request
- Wykorzystałem paczkę Nuget Google.Cloud.Dialogflow.V2, w celu parsowania przychodzącego Request’u
- Tymczasowo wykorzystałem paczkę GoogleTranslateFreeApi w celu odpytania o sugestie tłumaczeń (do zmiany w przyszłości)
Ad.1 Repozytorium znajduje się TUTAJ
Ad.2 Metoda znajduje się TUTAJ
Ad.3 File storage znajduje się TUTAJ
Ad.4 Prosta implementacja sprawdza przychodzacy intent i przekazuje sterowanie do odpowiedniego handler’a (paczka MediatR się tym zajmuje)
Tak jak na wstępie wspomniałem kod będzie żył i jego aktualna wersja jest daleka od ideału. Będę chciał ten kod w wolnej chwili ulepszać i krok po kroku integrować bota Dialogflow z Webhook’iem napisanym w .NET Core.
Jak byście mieli jakieś pytania, uwagi to zaprasza do komentowania.
Poprzednie wpisy z tej serii:
-
📝 Dialogflow – początki [1]
-
📝 Dialogflow – jak to działa? [2]
-
📝 Integracja Dialogflow z Messenger’em [3]
-
📝 Dialogflow – rozpoczęcie rozmowy [4]
-
📝 Dialogflow – tworzenie prostego menu [5]
-
📝 Dialogflow i fulfillment – co to właściwie jest? [6]
Komentarz