Webhook Dialogflow w .NET Core

Jak zaimplementować Webhook Dialogflow w .NET Core ? [7]

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:

  1. Stworzyłem repozytorium na GitHubie, a w nim dodałem solucję na API, pełniące rolę Webhook’a
  2. API zawiera jedną metodę w kontrolerze VocabularyTrainerController o nazwie: Dispatch
  3. Baza danych na razie jest w postaci pliku tekstowego (jak będzie potrzeba, zamienię ją na jaką relacyjną bazę danych)
  4. Na podstawie przychodzącego intent’u uruchamiany jest odpowiedni handler, obsługujący request
  5. Wykorzystałem paczkę Nuget Google.Cloud.Dialogflow.V2, w celu parsowania przychodzącego Request’u
  6. 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:



Udostępnij: