בניית לקוח Djago קדמי לאפליקציה של Dialogflow

במעבדה זו תלמדו איך ליצור לקוח Djago קדמי כדי ליצור חוויית שיחה לאפליקציה של Dialogflow. באופן ספציפי:

  • הורדה, הגדרה והפעלה של לקוח הקצה הקדמי של Django.
  • יש להגדיר את נקודת הקצה של Dialogflow לזיהוי קריאות ללקוח מהלקוח הקצה של Django.
  • פריסת האפליקציה ב-Google Cloud ב-App Engine.
  • בודקים אם ההזמנות של היומנים מוגדרות לפי בקשה של משתמש.

דרישות מוקדמות

לפני שממשיכים, צריך להשלים את ה-Labs הבאות:

  1. בניית מתזמן פגישות באמצעות Dialogflow
  2. הסבר על ישויות ב-Dialogflow
  3. הסבר על מילוי ההזמנות על ידי שילוב Dialogflow ביומן

מה תלמדו

  • איך להגדיר ולהפעיל לקוח קצה קדמי של Django עבור Dialogflow
  • איך לפרוס את לקוח הקצה הקדמי של Django ב-Google Cloud ב-App Engine
  • איך בודקים אפליקציה של Dialogflow דרך ממשק קצה מותאם אישית

מה תפתחו

  • צריך להגדיר ולהפעיל לקוח קצה של Django עבור Dialogflow.
  • יש לפרוס את לקוח הקצה הקדמי של Django ב-Google Cloud ב-App Engine.
  • יש לבדוק אפליקציה של Dialogflow בממשק הקצה המותאם אישית.

מה תצטרך להכין

  • הבנה בסיסית של Python
  • הבנה בסיסית של Dialogflow

תשתמשו בחוויית השיחה של לוח הזמנים לפגישות שיצרתם בעבר ויצרתם עבור ממשק קצה את האפליקציה. תוכלו לפתח את ממשק הקצה באמצעות Django, להריץ ולבדוק אותו באופן מקומי, ולפרוס אותו ב-App Engine.

המשתמש ישלח בקשה לפגישה דרך ממשק הקצה, שיתקשר ל-Dialogflow APIIntent כדי לקבוע פגישה בתאריך ובשעה הרצויים. לאחר מכן, מילוי ההזמנות ב-Dialogflow ישלח בקשה ליומן כדי לקבוע את הפגישה המתאימה ולהחזיר אישור למשתמש דרך Dialogflow.

התוצאה הסופית תיראה כך:

  1. שכפול המאגר למכונה המקומית שלך על ידי הקלדת הפקודה הזו במסוף המקומי של המחשב:
git clone https://github.com/priyankavergadia/Django-Dialogflow-Appointment-Scheduler.git
  1. צריך לעבור לספרייה שמכילה את הקוד. לחלופין, אפשר להוריד את הדגימה כקובץ ZIP ולחלץ אותה.
cd Django-Dialogflow-Appointment-Scheduler

לאחר הפריסה, האפליקציה משתמשת בשרת ה-proxy של Cloud SQL המובנה ב-App Engine בסביבה כדי לתקשר עם המכונה ב-Cloud SQL. עם זאת, כדי לבדוק את האפליקציה באופן מקומי, עליך להתקין עותק מקומי של שרת ה-proxy של Cloud SQL ולהשתמש בו בסביבת הפיתוח שלך. מידע נוסף זמין במאמר מידע על שרת ה-proxy של Cloud SQL.

כדי לבצע משימות בסיסיות של מנהל מערכת במופע של Cloud SQL, אפשר להשתמש ב-Cloud SQL ל-MySQL.

התקנה של שרת proxy ל-Cloud SQL

הורדה והתקנה של שרת proxy ל-Cloud SQL. שרת ה-proxy של Cloud SQL משמש לחיבור למופע של Cloud SQL בזמן הפעלה מקומית.

מורידים את שרת ה-proxy.

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

יש להפעיל את שרת ה-proxy.

chmod +x cloud_sql_proxy

יצירת מופע של Cloud SQL

  1. יצירת מכונה ב-Cloud SQL עבור דור שני של MySQL. נותנים שם למכונה "polls-intance" או שם דומה. יכול להיות שיחלפו כמה דקות עד שהמכונה תהיה מוכנה. כשהערך יהיה מוכן, הוא אמור להופיע ברשימת המופעים.
  2. יש להשתמש בכלי gcloud כדי להריץ את הפקודה הבאה כאשר [YOUR_INSTANCE_NAME] מייצג את שם המכונה. הערה לגבי הערך המוצג, לדוגמה, שם החיבור לשלב הבא, שמוצג בפורמט [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME].
gcloud sql instances describe [YOUR_INSTANCE_NAME]

לחלופין, אפשר ללחוץ על המכונה כדי לראות את שם החיבור של המופע.

אתחול המופע של Cloud SQL

מתחילים את שרת ה-proxy של Cloud SQL באמצעות שם החיבור של המופע מהשלב הקודם. מחליפים את [YOUR_INSTANCE_CONNECTION_NAME] בערך שתועד בשלב הקודם. כך ייווצר חיבור מהמחשב המקומי למכונה למטרות בדיקה מקומית. שרת ה-proxy של Cloud SQL ימשיך לפעול בזמן בדיקת האפליקציה באופן מקומי.

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

בשלב הבא, יוצרים משתמש ומסד נתונים חדשים ב-Cloud SQL.

  1. יוצרים מסד נתונים חדש באמצעות Google Cloud Console עבור המופע של Cloud SQL בשם polls-intance. לדוגמה, אפשר להזין "polls" בתור השם.
  2. יוצרים חשבון משתמש חדש באמצעות Cloud Console למופע של Cloud SQL בשם polls-intance.

קביעת הגדרות מסד נתונים

  1. יש לפתוח את mysite/settings.py לעריכה.
  2. בשני מקומות צריך להחליף את [YOUR-USERNAME] ואת [YOUR-PASSWORD] בשם המשתמש ובסיסמה של מסד הנתונים שיצרת בקטע הקודם. הפעולה הזו עוזרת בהגדרת החיבור למסד הנתונים עבור פריסת App Engine ובדיקות מקומיות.
  3. בשורה שבה כתוב ‘HOST': ‘cloudsql/ [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME],' מחליפים את [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME] בערך שתועד בקטע הקודם.
  4. מריצים את הפקודה הבאה ומעתיקים את ערך השם של מופע הפלט שנוצר בשלב הבא.
gcloud sql instances describe [YOUR_INSTANCE_NAME]
  1. מחליפים את [YOUR-CONNECTION-NAME] בערך שתועד בקטע הקודם.
  2. מחליפים את [YOUR-DATABASE] בשם שבחרתם בקטע הקודם.
# [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. סגירה ושמירה של settings.py.
  1. במסוף של Dialogflow, לוחצים על . בכרטיסייה כללי לצד Project ID, לוחצים על Google Cloud .
  2. לוחצים על Navigation menu ☰ > APIs & Services > Credentials.
  3. לוחצים על יצירת פרטי כניסה > חשבון שירות.
  4. בקטע פרטי חשבון השירות, מזינים "appointment-Scheduler&&;בשם חשבון השירות, ואז לוחצים על יצירה.

  1. בקטע הענקת גישה לחשבון השירות הזה לפרויקט, לוחצים על המשך כדי לדלג עליו.
  2. בקטע הענקת למשתמשים גישה לחשבון השירות הזה (אופציונלי), לוחצים על יצירת מפתח > JSON &gt. יצירה.

קובץ JSON ירד למחשב שלך, ותהיה לך צורך בו בקטעי ההגדרה הבאים.

  1. בתיקיית הצ'אט, יש להחליף את AppointmentScheduler.json בקובץ ה-JSON עם פרטי הכניסה שלך.
  2. בתיקייה views.py בתיקיית הצ'אט, משנים את GOOGLE_PROJECT_ID = "<YOUR_PROJECT_ID>" למזהה הפרויקט.

כדי להריץ את אפליקציית Django במחשב המקומי, צריך להגדיר סביבת פיתוח של Python, כולל Python, pip ו-Virtualenv. הוראות מפורטות במאמר הגדרה של סביבת פיתוח של Python.

  1. יוצרים סביבת Python מבודדת ומתקינים יחסי תלות:
virtualenv env
source env/bin/activate
pip install -r requirements.txt
  1. יש להריץ את ההעברות של Django כדי להגדיר את המודלים שלך.
python3 manage.py makemigrations
python3 manage.py makemigrations polls
python3 manage.py migrate
  1. מפעילים שרת אינטרנט מקומי.
python3 manage.py runserver
  1. בדפדפן האינטרנט, מזינים http://localhost:8000/. דף אינטרנט פשוט אמור להופיע בצילום המסך הבא:

דפי האפליקציה לדוגמה מסופקים על ידי שרת האינטרנט Django שפועל במחשב שלך. כשתהיו מוכנים להתקדם, לחצו על Control+S (Command+S ב-Macintosh) כדי להפסיק את שרת האינטרנט המקומי.

מריצים את הפקודה הבאה כדי להעביר את כל הקבצים הסטטיים של האפליקציה לתיקייה שצוינה ב-STATIC_ROOT ב-settings.py:

python3 manage.py collectstatic

כדי להעלות את האפליקציה, מריצים את הפקודה הבאה בספרייה של האפליקציה שבה נמצא הקובץ app.yaml:

gcloud app deploy

ממתינים להודעה על כך שהעדכון הושלם.

בדפדפן האינטרנט, מזינים https://<your_project_id>.appspot.com.

הפעם, הבקשה שלך מוגשת על ידי שרת אינטרנט שפועל בסביבה הרגילה של App Engine.

הפקודה app deploy פורסת את האפליקציה כפי שמתואר ב-app.yaml ומגדירה את הגרסה החדשה שנפרסה כגרסת ברירת המחדל. היא גורמת להצגת כל התנועה החדשה.

נכנסים לכתובת https://<your_project_id>.appspot.com ומזינים את הפרטים הבאים:

  1. User: "קביעת פגישה לרישום רכב בשעה 15:00 מחר."
  2. הצ'אט בוט מגיב באופן הבא:

  1. היומן מזמין את התגובה.

אם אתם מתכננים להשלים את הפעולות האחרות של Dialogflow בקודים, אתם יכולים לדלג על החלק הזה בינתיים ולחזור אליו מאוחר יותר.

מחיקת הנציג של Dialogflow

  1. לוחצים על ליד הנציג הקיים.
  1. בכרטיסייה כללי, גוללים לתחתית המסך ולוחצים על מחיקת הנציג הזה.
  2. מקלידים Delete בחלון שמופיע ולוחצים על Delete (מחיקה).

יצרתם צ'אט בוט ב-Dialogflow והטמעתם אותו ביומן Google. מעכשיו יש לך צ'אט בוט!

מידע נוסף

למידע נוסף, מומלץ לעיין במקורות המידע הבאים: