Dialogflow ऐप्लिकेशन के लिए एक फ़्रंटएंड Django क्लाइंट बनाएं

इस कोडलैब में आप #39; Django क्लाइंट बनाना चाहेंगे, ताकि Dialogflow ऐप्लिकेशन के लिए बातचीत का अनुभव तैयार किया जा सके. खास तौर पर, आप ये काम कर सकते हैं:

  • Django फ़्रंटएंड क्लाइंट को डाउनलोड करें, सेट अप करें, और चलाएं.
  • Django फ़्रंटएंड क्लाइंट से कॉल किए जाने के लिए Dialogflow पहचान इंटेंट एंडपॉइंट को सेट अप करें.
  • ऐप्लिकेशन को Google Cloud App App पर डिप्लॉय करें.
  • जांचें कि कैलेंडर के न्योते, हर उपयोगकर्ता के अनुरोध के हिसाब से सेट अप किए जा रहे हैं या नहीं.

ज़रूरी बातें

आगे बढ़ने से पहले, आपको ये कोडलैब (कोड बनाना सीखना) पूरे करने होंगे:

  1. Dialogflow के साथ अपॉइंटमेंट शेड्यूल करने की सुविधा बनाएं
  2. Dialogflow में इकाइयों को समझना
  3. Calendar के साथ Dialogflow को इंटिग्रेट करके, ग्राहकों को सामान भेजने के बारे में जानें

आप इन चीज़ों के बारे में जानेंगे

  • Dialogflow के लिए Django फ़्रंटएंड क्लाइंट सेट अप करने और चलाने का तरीका
  • App Engine पर Django फ़्रंटएंड क्लाइंट को Google Cloud में डिप्लॉय करने का तरीका
  • कस्टम फ़्रंटएंड से Dialogflow ऐप्लिकेशन की जांच करने का तरीका

आप क्या बनाएंगे #39;

  • आप Dialogflow के लिए Django फ़्रंटएंड क्लाइंट सेट अप करेंगे और चलाएंगे.
  • आप'Django फ़्रंटएंड क्लाइंट को App Engine पर Google Cloud में डिप्लॉय करेंगे.
  • आप उस कस्टम फ़्रंटएंड से एक Dialogflow ऐप्लिकेशन की जांच करेंगे.

आपको इनकी ज़रूरत होगी

  • Python की बुनियादी जानकारी
  • Dialogflow के बारे में बुनियादी जानकारी

आप अपॉइंटमेंट शेड्यूलर बातचीत के उस अनुभव का इस्तेमाल करेंगे जो आपने पहले ऐप्लिकेशन के लिए पसंद के मुताबिक फ़्रंटएंड बनाया था. आप और #39;Django के साथ फ़्रंटएंड बनाएंगे, इसे स्थानीय तौर पर चलाएंगे, और App Engine पर डिप्लॉय करेंगे.

उपयोगकर्ता, फ़्रंटएंड से अपॉइंटमेंट का अनुरोध भेजेगा. इसके बाद, Dialogflow पहचानकर्ता इंटेंट कॉल करके, अनुरोध की गई तारीख और समय पर अपॉइंटमेंट सेट अप करेगा. इसके बाद, Dialogflow के साथ काम करने की सुविधा की मदद से, Calendar को एक अनुरोध भेजा जाएगा, ताकि उससे जुड़ा अपॉइंटमेंट सेट अप किया जा सके और Dialogflow के ज़रिए उपयोगकर्ता को पुष्टि की जानकारी भेजी जा सके.

आखिरी नतीजा कुछ ऐसा दिखेगा:

  1. अपने कंप्यूटर's स्थानीय टर्मिनल में इस निर्देश को टाइप करके, अपने लोकल मशीन में रिपॉज़िटरी बनाएं:
git clone https://github.com/priyankavergadia/Django-Dialogflow-Appointment-Scheduler.git
  1. उस डायरेक्ट्री में बदलें जिसमें कोड है. वैकल्पिक रूप से, आप नमूना को एक ज़िप के रूप में डाउनलोड करके उसे एक्सट्रैक्ट कर सकते हैं.
cd Django-Dialogflow-Appointment-Scheduler

लागू होने पर, आपका ऐप्लिकेशन, Cloud SQL प्रॉक्सी का इस्तेमाल करता है, जो आपके Cloud SQL इंस्टेंस के साथ संपर्क करने के लिए, ऐप्लिकेशन इंजन के स्टैंडर्ड एनवायरमेंट में पहले से मौजूद होता है. हालांकि, अपने ऐप्लिकेशन को स्थानीय तौर पर टेस्ट करने के लिए, आपको अपने डेवलपमेंट एनवायरमेंट में Cloud SQL प्रॉक्सी की एक लोकल कॉपी इंस्टॉल और इस्तेमाल करनी होगी. ज़्यादा जानकारी के लिए, Cloud SQL प्रॉक्सी के बारे में जानकारी देखें.

अपने Cloud SQL इंस्टेंस पर बुनियादी एडमिन टास्क करने के लिए, आप 'MySQL के लिए Cloud SQL' क्लाइंट का इस्तेमाल कर सकते हैं.

Cloud SQL प्रॉक्सी इंस्टॉल करें

Cloud SQL प्रॉक्सी डाउनलोड और इंस्टॉल करें. क्लाउड SQL प्रॉक्सी का इस्तेमाल स्थानीय रूप से चलते समय आपके Cloud SQL इंस्टेंस से कनेक्ट करने के लिए किया जाता है.

प्रॉक्सी डाउनलोड करें.

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

प्रॉक्सी को एक्ज़ीक्यूटेबल बनाएं.

chmod +x cloud_sql_proxy

Cloud SQL का इंस्टेंस बनाना

  1. MySQL की दूसरी जनरेशन का इंस्टेंस के लिए Cloud SQL बनाएं. इंस्टेंस को नाम दें & तारीख और कोटेशन इंस्टेंस तैयार होने में कुछ मिनट लग सकते हैं. तैयार होने के बाद, यह इंस्टेंस सूची में दिखना चाहिए.
  2. यह कमांड चलाने के लिए gcloud टूल का इस्तेमाल करें. इस कमांड में [YOUR_INSTANCE_NAME] आपके इंस्टेंस का नाम दिखाता है. अगले चरण के लिए इंस्टेंस कनेक्शन के नाम के लिए दिखाई जाने वाली वैल्यू बनाएं, जिसे [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]. के फ़ॉर्मैट में दिखाया गया है
gcloud sql instances describe [YOUR_INSTANCE_NAME]

इसके अलावा, आप इंस्टेंस कनेक्शन का नाम देखने के लिए, इंस्टेंस पर क्लिक कर सकते हैं.

अपना Cloud SQL इंस्टेंस शुरू करना

पिछले चरण के इंस्टेंस कनेक्शन के नाम का इस्तेमाल करके, Cloud SQL प्रॉक्सी शुरू करें. [YOUR_INSTANCE_CONNECTION_NAME] को उस वैल्यू से बदलें जिसे आपने पिछले चरण में रिकॉर्ड किया था. यह स्थानीय जांच के लिए, आपके लोकल कंप्यूटर से आपके इंस्टेंस तक कनेक्ट करता है. अपने ऐप्लिकेशन की स्थानीय तौर पर जांच करते समय Cloud SQL प्रॉक्सी को चालू रखें.

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

इसके बाद, एक नया Cloud SQL उपयोगकर्ता और डेटाबेस बनाएं.

  1. अपने क्लाउड SQL इंस्टेंस पोल पोल-इंस्टेंस के लिए Google Cloud Console का इस्तेमाल करके एक नया डेटाबेस बनाएं. उदाहरण के लिए, आप नाम के तौर पर &kot;polls" डाल सकते हैं.
  2. Cloud Console के इंस्टेंस के लिए, पोल-इंस्टेंस नाम का नया उपयोगकर्ता खाता बनाएं.

डेटाबेस सेटिंग कॉन्फ़िगर करना

  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's कंसोल में, पर क्लिक करें. प्रोजेक्ट आईडी के बगल में मौजूद सामान्य टैब में, Google क्लाउड पर क्लिक करें.
  2. नेविगेशन मेन्यू ☰ &g; एपीआई और सेवाएं &gt पर क्लिक करें; क्रेडेंशियल.
  3. क्रेडेंशियल बनाएं &सेवा खाता पर क्लिक करें.
  4. सेवा खाते की जानकारी में, सेवा खाते के नाम के तौर पर &कोटेशन;अपॉइंटमेंट का शेड्यूलर&कोटेशन डालें. इसके बाद, बनाएं पर क्लिक करें.

  1. जहां सेवा खाते को प्रोजेक्ट का ऐक्सेस दें लिखा हो वहां छोड़ने के लिए, जारी रखें पर क्लिक करें.
  2. जहां उपयोगकर्ताओं को इस सेवा खाते का ऐक्सेस दें (ज़रूरी नहीं), कुंजी बनाएं > JSON > बनाएं पर क्लिक करें.

आपके कंप्यूटर पर JSON फ़ाइल डाउनलोड होगी, जिसे आपको नीचे दिए गए सेट अप सेक्शन में रखना होगा.

  1. चैट फ़ोल्डर में, अपनी क्रेडेंशियल JSON फ़ाइल से AppointmentScheduler.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 (Macintosh पर Command+S) दबाएं.

ऐप्लिकेशन के सभी स्टैटिक फ़ाइल को settings.py में STATIC_ROOT के बताए गए फ़ोल्डर में ले जाने के लिए, यह निर्देश चलाएं:

python3 manage.py collectstatic

उस ऐप्लिकेशन की निर्देशिका में नीचे दिया गया निर्देश चलाकर ऐप्लिकेशन अपलोड करें जहां app.yaml फ़ाइल मौजूद है:

gcloud app deploy

अपडेट पूरा होने की सूचना देने वाले मैसेज का इंतज़ार करें.

अपने वेब ब्राउज़र में, https://<your_project_id>.appspot.com डालें.

इस समय, आपका अनुरोध ऐप्लिकेशन इंजन के स्टैंडर्ड एनवायरमेंट में चल रहे वेब सर्वर से होगा.

app deploy निर्देश, app.yaml में बताए गए तरीके से ऐप्लिकेशन को डिप्लॉय करता है और नए वर्शन को डिफ़ॉल्ट वर्शन के तौर पर सेट करता है. इस वजह से, यह सभी नए ट्रैफ़िक को दिखाता है.

https://<your_project_id>.appspot.com पर नेविगेट करें और यह डालें:

  1. उपयोगकर्ता: &कोटेशन;वाहन पंजीकरण के लिए कल दोपहर 3 बजे का अपॉइंटमेंट सेट करें.&कोटेशन;
  2. चैटबॉट इस तरह से जवाब देता है:

  1. Calendar, जवाब बुक करता है.

अगर आप दूसरे Dialogflow कोडलैब (कोड बनाना सीखना) पूरा करने के बारे में सोच रहे हैं, तो इस हिस्से को अभी के लिए छोड़कर, बाद में वापस आएं.

Dialogflow एजेंट को मिटाएं

  1. अपने मौजूदा एजेंट के बगल में पर क्लिक करें.
  1. सामान्य टैब में, नीचे तक स्क्रोल करें और इस एजेंट को मिटाएं पर क्लिक करें.
  2. इसके बाद, आपको एक विंडो दिखेगी. इस विंडो में मिटाएं पर क्लिक करें और मिटाएं पर क्लिक करें.

आपने Dialogflow में एक चैटबॉट बनाया है और उसे Calendar के साथ इंटिग्रेट किया है. अब आप एक चैटबॉट डेवलपर हैं!

ज़्यादा जानें

ज़्यादा जानने के लिए नीचे दिए गए लेख देखें: