Tworzenie klienta Django dla frontendu dla aplikacji Dialogflow

Z tego modułu dowiesz się, jak utworzyć klienta Django w interfejsie, aby utworzyć interfejs rozmowy w aplikacji Dialogflow. Wykonaj te czynności:

  • Pobierz, skonfiguruj i uruchom klienta frontendu Django.
  • Dowiedz się, jak skonfigurować punkt końcowy Dialogflow DetectionIntent, który ma być wywoływany z klienta Django frontendu.
  • wdrożyć aplikację w Google Cloud w App Engine,
  • Sprawdź, czy zaproszenia z Kalendarza są konfigurowane na żądanie użytkownika.

Wymagania wstępne

Zanim przejdziesz dalej, musisz wykonać te ćwiczenia z programowania:

  1. Tworzenie harmonogramu spotkań za pomocą Dialogflow
  2. Omówienie encji w Dialogflow
  3. Informacje o realizacji, integrując Dialogflow z Kalendarzem

Czego się nauczysz

  • Jak skonfigurować i uruchomić klienta frontendu Django dla Dialogflow
  • Jak wdrożyć klienta Django frontendu do Google Cloud w App Engine
  • Testowanie aplikacji Dialogflow z niestandardowego frontendu

Co stworzysz

  • Musisz skonfigurować i uruchomić klienta Django dla Dialogflow.
  • Wdrożysz klienta Django frontendu do Google Cloud w App Engine.
  • Przetestujesz aplikację Dialogflow z tego niestandardowego interfejsu.

Czego potrzebujesz

  • Podstawowe informacje o języku Python
  • Podstawowe informacje o Dialogflow

Użyjesz interfejsu rozmowy z Harmonogramem spotkań, który został przez Ciebie utworzony i utworzony dla Twojej aplikacji.

Użytkownik wyśle prośbę o umówienie spotkania przez frontend. Wywoła to interfejs Dialogflow DialogflowIntent API, aby skonfigurować spotkanie w określonym dniu i o wybranej godzinie. Następnie realizacja Dialogflow wysyła do Kalendarza żądanie, aby ustawić odpowiednie spotkanie i zwrócić użytkownikowi potwierdzenie przez Dialogflow.

Końcowy wynik będzie wyglądać tak:

  1. Skopiuj repozytorium na komputer lokalny, wpisując to polecenie w lokalnym terminalu komputera:
git clone https://github.com/priyankavergadia/Django-Dialogflow-Appointment-Scheduler.git
  1. Przejdź do katalogu, który zawiera kod. Możesz też pobrać próbkę jako plik ZIP i wyodrębnić go.
cd Django-Dialogflow-Appointment-Scheduler

Podczas wdrażania Twoja aplikacja używa serwera proxy Cloud SQL, który jest zintegrowany z standardowym środowiskiem App Engine, aby komunikować się z Twoją instancją Cloud SQL. Aby jednak przetestować aplikację lokalnie, musisz zainstalować lokalną kopię serwera proxy Cloud SQL i używać jej w środowisku programistycznym. Więcej informacji znajdziesz w artykule Informacje o serwerze proxy Cloud SQL.

Aby wykonywać podstawowe zadania administracyjne w instancji Cloud SQL, możesz użyć klienta Cloud SQL dla MySQL.

Zainstaluj serwer proxy Cloud SQL

Pobierz i zainstaluj serwer proxy Cloud SQL. Serwer proxy Cloud SQL służy do łączenia się z instancją Cloud SQL, gdy działa lokalnie.

Pobierz serwer proxy.

curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64

Skonfiguruj serwer proxy jako plik wykonywalny.

chmod +x cloud_sql_proxy

Tworzenie instancji Cloud SQL

  1. Tworzenie instancji Cloud SQL dla MySQL drugiej generacji. Nazwij instancję "polls-instance" lub podobną. Może minąć kilka minut, zanim instancja będzie gotowa. Gdy będzie gotowy, powinien być widoczny na liście instancji.
  2. Użyj narzędzia gcloud, aby uruchomić następujące polecenie, w którym [YOUR_INSTANCE_NAME] reprezentuje nazwę Twojej instancji. Zanotuj wartość wyświetlaną jako nazwę połączenia instancji w następnym kroku, podaną w formacie [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME].
gcloud sql instances describe [YOUR_INSTANCE_NAME]

Możesz też kliknąć instancję, aby wyświetlić nazwę połączenia instancji.

Inicjowanie instancji Cloud SQL

Uruchom serwer proxy Cloud SQL, używając nazwy połączenia instancji z poprzedniego kroku. Zastąp [YOUR_INSTANCE_CONNECTION_NAME] wartością zarejestrowaną w poprzednim kroku. Nawiązuje ono połączenie między Twoim komputerem lokalnym a Twoją instancją w celu przeprowadzenia testów lokalnych. Podczas testowania aplikacji lokalnie używaj serwera proxy Cloud SQL.

./cloud_sql_proxy -instances="[YOUR_INSTANCE_CONNECTION_NAME]"=tcp:3306

Następnie utwórz nowe konto użytkownika i bazę danych Cloud SQL.

  1. W Google Cloud Console utwórz dla swojej instancji nową bazę danych o nazwie polls-instance. Możesz na przykład wpisać „ankiety” jako nazwę.
  2. Utwórz w Cloud Console nowe konto użytkownika dla swojej instancji Cloud SQL o nazwie polls-instance.

Skonfiguruj ustawienia bazy danych

  1. Otwórz mysite/settings.py, aby edytować.
  2. W 2 miejscach zastąp [YOUR-USERNAME] i [YOUR-PASSWORD] nazwą użytkownika bazy danych i hasłem utworzonym w poprzedniej sekcji. Ułatwia to konfigurowanie połączenia z bazą danych w celu wdrażania aplikacji App Engine i testowania lokalnego.
  3. W wierszu ‘HOST': ‘cloudsql/ [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]' zastąp [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME] wartością zapisaną w poprzedniej sekcji.
  4. Uruchom następujące polecenie i skopiuj wartość parametru wyjściowego instancji, aby przejść do następnego kroku.
gcloud sql instances describe [YOUR_INSTANCE_NAME]
  1. Zastąp [YOUR-CONNECTION-NAME] wartością zarejestrowaną w poprzedniej sekcji.
  2. Zastąp [YOUR-DATABASE] nazwą wybraną w poprzedniej sekcji.
# [START db_setup]
if os.getenv('GAE_APPLICATION', None):
    # Running on production App Engine, so connect to Google Cloud SQL using
    # the unix socket at /cloudsql/<your-cloudsql-connection string>
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '/cloudsql/[PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]',
            'USER': '[YOUR-USERNAME]',
            'PASSWORD': '[YOUR-PASSWORD]',
            'NAME': '[YOUR-DATABASE]',
        }
    }
else:
    # Running locally so connect to either a local MySQL instance or connect to
    # Cloud SQL via the proxy. To start the proxy via command line:
    #     $ cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME]=tcp:3306
    # See https://cloud.google.com/sql/docs/mysql-connect-proxy
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '127.0.0.1',
            'PORT': '3306',
            'NAME': '[YOUR-DATABASE]',
            'USER': '[YOUR-USERNAME]',
            'PASSWORD': '[YOUR-PASSWORD]'
        }
    }
# [END db_setup]
  1. Zamknij i zapisz settings.py.
  1. W konsoli Dialogflow kliknij . Na karcie Ogólne obok opcji Identyfikator projektu kliknij Google Cloud .
  2. Kliknij menu nawigacyjne ☰ > Interfejsy API & Usługi > Dane logowania.
  3. Kliknij Utwórz dane logowania > konto usługi.
  4. W Szczegółach konta usługi wpisz "appointment-scheduler" jako nazwę konta usługi, a następnie kliknij Utwórz.

  1. W przypadku opcji Przyznaj temu kontu usługi dostęp do projektu kliknij Dalej, aby go pominąć.
  2. W sekcji Przyznaj użytkownikom dostęp do tego konta usługi (opcjonalnie) kliknij Utwórz klucz > JSON > Utwórz.

Na komputer zostanie pobrany plik JSON (wymagany jest w następnych sekcjach konfiguracyjnych).

  1. W folderze czatu zastąp AppointmentScheduler.json plikiem JSON swoich danych logowania.
  2. W polu views.py w folderze czatu zmień GOOGLE_PROJECT_ID = "<YOUR_PROJECT_ID>" na identyfikator projektu.

Aby uruchomić aplikację Django na komputerze lokalnym, musisz skonfigurować środowisko programistyczne Python, w tym Python, pip i VRenv. Instrukcje znajdziesz w artykule Konfigurowanie środowiska programistycznego w języku Python.

  1. Utwórz izolowane środowisko Pythona i zainstaluj zależności:
virtualenv env
source env/bin/activate
pip install -r requirements.txt
  1. Aby skonfigurować modele, uruchom migracje Django.
python3 manage.py makemigrations
python3 manage.py makemigrations polls
python3 manage.py migrate
  1. Uruchom lokalny serwer WWW.
python3 manage.py runserver
  1. W przeglądarce wpisz http://localhost:8000/. Powinna wyświetlić się prosta strona internetowa, jak widać na tym zrzucie ekranu:

Przykładowe strony aplikacji są wyświetlane przez serwer WWW Django uruchomiony na komputerze. Gdy wszystko będzie gotowe, naciśnij Control+S (Command+S na Macu), by zatrzymać lokalny serwer WWW.

Uruchom następujące polecenie, aby przenieść wszystkie pliki statyczne aplikacji do folderu określonego w narzędziu STATIC_ROOT: settings.py

python3 manage.py collectstatic

Prześlij aplikację, uruchamiając następujące polecenie w katalogu aplikacji, w którym znajduje się plik app.yaml:

gcloud app deploy

Poczekaj na wiadomość z informacją, że aktualizacja została zakończona.

W przeglądarce wpisz https://<your_project_id>.appspot.com.

Tym razem żądanie jest obsługiwane przez serwer WWW działający w standardowym środowisku App Engine.

Polecenie app deploy wdraża aplikację w sposób opisany w app.yaml i ustawia nowo wdrożoną wersję jako domyślną, przez co obsługuje cały nowy ruch.

Przejdź do strony https://<your_project_id>.appspot.com i wpisz następujące informacje:

  1. Użytkownik: "Ustal termin rejestracji pojazdu na jutro o 15:00."
  2. Czatbot odpowiada:

  1. Kalendarz zapisze odpowiedź.

Jeśli planujesz ukończyć inne ćwiczenia z programowania Dialogflow, na razie pomiń tę część i wróć do niej później.

Usuwanie agenta Dialogflow

  1. Kliknij obok istniejącego agenta.
  1. Na karcie Ogólne przewiń do dołu i kliknij Usuń tego agenta.
  2. W wyświetlonym oknie wpisz Usuń i kliknij Usuń.

Utworzyłeś czatbota w Dialogflow i zintegrowałeś go z Kalendarzem. Jesteś teraz czatbotem!

Więcej informacji

Więcej informacji na ten temat znajdziesz tutaj: