Vision API को Dialogflow के साथ इंटिग्रेट करें

इस कोडलैब में आप #39; विज़न एपीआई को Dialogflow के साथ इंटिग्रेट करेंगे. इससे, आप Google के दिए गए इमेज इनपुट को बेहतर और डाइनैमिक मशीन लर्निंग के आधार पर जवाब दे पाएंगे. आप एक चैटबॉट ऐप्लिकेशन बना सकते हैं जो इमेज को इनपुट के तौर पर लेता है, विज़न एपीआई में इसे प्रोसेस करता है, और उपयोगकर्ता को लैंडमार्क की पहचान करता है. उदाहरण के लिए, अगर उपयोगकर्ता ताजमहल की इमेज अपलोड करता है, तो चैटबॉट जवाब में ताज महल दिखाएगा.

यह #39 उपयोगी है, क्योंकि आप इमेज में दिए गए आइटम का विश्लेषण करके, मिली जानकारी पर कार्रवाई कर सकते हैं. आप रिफ़ंड प्रोसेस करने वाला सिस्टम भी बना सकते हैं. इससे, रसीदों को अपलोड करने, रसीद में खरीदारी की तारीख निकालने, और तारीख सही होने पर रिफ़ंड प्रोसेस करने में उपयोगकर्ताओं की मदद की जा सकती है.

नीचे दिए गए सैंपल डायलॉग पर एक नज़र डालें:

उपयोगकर्ता: नमस्ते

चैटबॉट: नमस्ते! लैंडमार्क को एक्सप्लोर करने के लिए आप कोई तस्वीर अपलोड कर सकते हैं

उपयोगकर्ता: ताज महल की इमेज अपलोड करें.

चैटबॉट: फ़ाइल प्रोसेस हो रही है. यहां कुछ नतीजे दिए गए हैं: ताज महल, ताज महल गार्डन, ताज महल.

ज़रूरी बातें

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

  1. Dialogflow के साथ अपॉइंटमेंट शेड्यूल करने की सुविधा बनाएं
  2. Actions on Google पर डायलॉग बॉक्स चैटबॉट को इंटिग्रेट करना
  3. Dialogflow में इकाइयों को समझना
  4. Dialogflow ऐप्लिकेशन के लिए एक फ़्रंटएंड Django क्लाइंट बनाएं

आपको Dialogflow के बेसिक कॉन्सेप्ट और कंस्ट्रक्शन को समझने की ज़रूरत है. इसे आप Dialogflow की मदद से चैटबॉट बनाएं पाथ में जाकर, नीचे दिए गए वीडियो में देख सकते हैं:

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

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

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

  • Dialogflow एजेंट बनाएं
  • फ़ाइल अपलोड करने के लिए, Django फ़्रंटएंड लागू करें
  • अपलोड की गई इमेज के लिए विज़न एपीआई शुरू करने के लिए, Dialogflow के साथ काम करने की सुविधा लागू करें

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

  • Python की बुनियादी जानकारी
  • Dialogflow के बारे में बुनियादी जानकारी
  • विज़न एपीआई की बुनियादी जानकारी

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

अनुरोध की प्रक्रिया नीचे दी गई इमेज में दिखाए गए तरीके से काम करेगी:

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

यहां देखा जा सकता है कि कुल वास्तुकला कैसी दिखेगी.

विज़न एपीआई पहले से तैयार एमएल मॉडल है, जो इमेज से अहम जानकारी लेता है. इससे आपको कई अहम जानकारी मिल सकती है, जैसे कि इमेज लेबल करना, चेहरे और लैंडमार्क की पहचान करना, ऑप्टिकल कैरेक्टर रिकग्निशन, और अश्लील कॉन्टेंट को टैग करना. ज़्यादा जानने के लिए, विज़न एआई (AI) देखें.

  1. Dialogflow पर जाएं.
  2. साइन इन करें. (अगर आप पहली बार #&939 उपयोगकर्ता हैं, तो साइन अप करने के लिए अपने ईमेल का इस्तेमाल करें.)
  3. नियम और शर्तें स्वीकार करें और फिर आप कंसोल में रहेंगे.
  4. पर क्लिक करें, नीचे तक स्क्रोल करें, और नया एजेंट बनाएं पर क्लिक करें.

5. Vision name के तौर पर &Vision</i>में डालें.

  1. बनाएं पर क्लिक करें.

Dialogflow, एजेंट के हिस्से के तौर पर ये दो डिफ़ॉल्ट इंटेंट बनाता है:

  1. स्वागत करने का डिफ़ॉल्ट इंटेंट आपके उपयोगकर्ताओं का स्वागत करता है.
  2. डिफ़ॉल्ट फ़ॉलबैक इंटेंट, उन सभी सवालों को पकड़ लेता है जिन्हें आपका बॉट नहीं समझता.

इस समय, आपके पास एक ऐसा फ़ंक्शन वाला बॉट है जो उपयोगकर्ताओं का स्वागत करता है. हालांकि, आपको इसे अपडेट करना होगा, ताकि उपयोगकर्ता जान सकें कि वे लैंडमार्क को एक्सप्लोर करने के लिए, इमेज अपलोड कर सकते हैं.

उपयोगकर्ता को इमेज अपलोड करने की सूचना देने के लिए, डिफ़ॉल्ट वेलकम इंटेंट अपडेट करें

  1. आपका स्वागत है पर क्लिक करें.
  2. जवाब > डिफ़ॉल्ट > Text या SSML Response पर जाएं और &कोटेशन करें! लैंडमार्क की खोज करने के लिए आप एक तस्वीर अपलोड कर सकते हैं.&कोटेशन;

इकाई बनाएं

  1. इकाइयां पर क्लिक करें.

  1. इकाई बनाएं पर क्लिक करें, इसे &kot;filename&&tt; नाम दें, और सेव करें पर क्लिक करें.

नया इंटेंट बनाएं

  1. इंटेंट >इंटेंट बनाएं पर क्लिक करें.
  2. इंटेंट नाम के तौर पर &अपलोड करें;अपलोड की गई इमेज एक्सप्लोर करें.
  3. ट्रेनिंग वाक्यांशों पर क्लिक करें; ट्रेनिंग वाक्यांश जोड़ें पर क्लिक करें और &कोटेशन;फ़ाइल demo.jpg&कोट करें.

  1. जवाब &g; जवाब जोड़ें &gt डिफ़ॉल्ट > टेक्स्ट या SSML जवाब पर क्लिक करें. &कोटेशन फ़ाइल का मूल्यांकन करें; दर्ज करें और जवाब जोड़ें पर क्लिक करें.
  1. पूरा करें पर क्लिक करें; ग्राहक को सामान भेजने की सुविधा चालू करें और इस इंटेंट के लिए वेबहुक कॉल चालू करें को चालू करें.

  1. पूरा करें पर क्लिक करें.
  2. इनलाइन एडिटर चालू करें.

  1. index.js को नीचे दिए गए कोड के साथ अपडेट करें. साथ ही, YOUR-BUCKET-NAME को अपने Cloud Storage बकेट के नाम से अपडेट करें.
'use strict';

const functions = require('firebase-functions');
const {google} = require('googleapis');
const {WebhookClient} = require('dialogflow-fulfillment');
const vision = require('@google-cloud/vision');
  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
const bucketName = 'YOUR-BUCKET-NAME';
const timeZone = 'America/Los_Angeles';
const timeZoneOffset = '-07:00';

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });
  console.log("Parameters", agent.parameters);

  function applyML(agent){
    const filename = agent.parameters.filename;
    console.log("filename is: ", filename);

    // call vision API to detect text
    return callVisionApi(agent, bucketName, filename).then(result => {
                      console.log(`result is ${result}`);
                      agent.add(`file is being processed, here are the results:  ${result}`);
            //agent.add(`file is being processed ${result}`);
        }).catch((error)=> {
            agent.add(`error occurred at apply ml function`  + error);
        });
  }

  let intentMap = new Map();
  intentMap.set('Explore uploaded image', applyML);
  agent.handleRequest(intentMap);
});


async function callVisionApi(agent, bucketName, fileName){
    // [START vision_text_detection_gcs]
  // Imports the Google Cloud client libraries
  // Creates a client
  
  const client = new vision.ImageAnnotatorClient();
    try {
        // Performs text detection on the gcs file
        const [result] = await client.landmarkDetection(`gs://${bucketName}/${fileName}`);
        const detections = result.landmarkAnnotations;
        var detected = [];
        detections.forEach(text => {
            console.log(text.description);
            detected.push(text.description);
        });
        return detected;
    }
    catch(error) {
        console.log('fetch failed', error);
        return [];
    }
}
  1. इसका कॉन्टेंट बदलने के लिए, इन्हें package.json में चिपकाएं.
{
  "name": "dialogflowFirebaseFulfillment",
  "description": "Dialogflow fulfillment for the bike shop sample",
  "version": "0.0.1",
  "private": true,
  "license": "Apache Version 2.0",
  "author": "Google Inc.",
  "engines": {
    "node": "6"
  },
  "scripts": {
    "lint": "semistandard --fix \"**/*.js\"",
    "start": "firebase deploy --only functions",
    "deploy": "firebase deploy --only functions"
  },
  "dependencies": {
    "firebase-functions": "2.0.2",
    "firebase-admin": "^5.13.1",
    "actions-on-google": "2.2.0", 
    "googleapis": "^27.0.0",
    "dialogflow-fulfillment": "^0.6.1",
    "@google-cloud/bigquery": "^1.3.0",
    "@google-cloud/storage": "^2.0.0",
    "@google-cloud/vision": "^0.25.0"
  }
}
  1. सेव करें पर क्लिक करें.
  1. इस रिपॉज़िटरी को अपनी स्थानीय मशीन में क्लोन करें:
https://github.com/priyankavergadia/visionapi-dialogflow.git
  1. उस डायरेक्ट्री में बदलें जिसमें कोड है. वैकल्पिक रूप से, आप नमूना को एक ज़िप के रूप में डाउनलोड करके उसे एक्सट्रैक्ट कर सकते हैं.
cd visionapi-dialogflow

डिप्लॉय किए जाने पर आपका ऐप्लिकेशन, 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] आपके Cloud SQL इंस्टेंस के नाम को दिखाता है. अगले चरण के लिए, connectionName के लिए दिखाई गई वैल्यू को नोट करें. यह [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME] फ़ॉर्मैट में दिखता है.
gcloud sql instances describe [YOUR_INSTANCE_NAME]

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

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

पिछले सेक्शन से connectionName का इस्तेमाल करके, Cloud SQL प्रॉक्सी शुरू करें.

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

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

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

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

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

  1. बदलाव करने के लिए mysite/settings-changeme.py खोलें.
  2. फ़ाइल का नाम बदलकर setting.py करें.
  3. दो जगहों पर, [YOUR-USERNAME] और [YOUR-PASSWORD] को उस डेटाबेस के उपयोगकर्ता नाम और पासवर्ड से बदल दें जिसे आपने पिछले सेक्शन में बनाया था. इससे, App Engine डिप्लॉयमेंट और लोकल टेस्टिंग के लिए, डेटाबेस से कनेक्शन सेट अप करने में मदद मिलती है.
  4. लाइन ‘HOST': ‘cloudsql/ [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]&#39 में; [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME] को पिछले सेक्शन में मिले इंस्टेंस नाम से बदलें.
  5. यह निर्देश देकर, आउटपुट के connectionName वैल्यू को अगले चरण के लिए कॉपी करें.
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 Project > Project ID पर जाएं. इसके बाद, Cloud Console खोलने के लिए Google Cloud पर क्लिक करें.
  2. नेविगेशन मेन्यू ☰ > आईएएम &एएमपी; एडमिन &

  1. आपके कंप्यूटर पर JSON फ़ाइल डाउनलोड होगी, जिसे आपको नीचे दिए गए सेट अप सेक्शन में रखना होगा.
  1. चैट फ़ोल्डर में, key-sample.json को अपनी क्रेडेंशियल JSON फ़ाइल से बदलें और इसे key.json नाम दें.
  2. चैट फ़ोल्डर के views.py में, GOOGLE_PROJECT_ID = "<YOUR_PROJECT_ID>" को अपने प्रोजेक्ट आईडी में बदलें.

फ़्रंटएंड स्टैटिक ऑब्जेक्ट के लिए Cloud Storage बकेट बनाना

  1. Cloud Console में, नेविगेशन मेन्यू ☰ &gt पर जाएं; स्टोरेज.

  1. बकेट बनाएं पर क्लिक करें.
  2. दुनिया भर में यूनीक नाम दें.

  1. चुनें कि आप अपना डेटा कहां सेव करना चाहते हैं. इलाका चुनें और अपनी ज़रूरतों के हिसाब से सबसे सही जगह चुनें.
  2. डिफ़ॉल्ट स्टोरेज क्लास के तौर पर Standard चुनें.

  1. बकेट लेवल पर अनुमतियों को एक जैसा सेट करें (सिर्फ़ बकेट नीति) फिरजारी रखें बकेट बनाने के लिए क्लिक करें.

  1. बकेट बनने के बाद, नेविगेशन मेन्यू ☰ > मेमोरी > ब्राउज़र चुनें और अपनी बनाई गई बकेट ढूंढें.

  1. संबंधित बकेट के आगे पर क्लिक करें और बकेट की अनुमतियों में बदलाव करें पर क्लिक करें.

  1. सदस्यों को जोड़ें पर क्लिक करें,फिर नए सदस्य पर क्लिक करके, सभी उपयोगकर्ताओं के लिए कोटेशन डालें. इसके बाद, कोई भूमिका चुनें &g; स्टोरेज ऑब्जेक्ट व्यूअर पर क्लिक करें. इससे सभी उपयोगकर्ताओं को स्टैटिक फ़्रंटएंड फ़ाइलों का ऐक्सेस मिलता है. यह फ़ाइल के लिए सही सुरक्षा सेटिंग नहीं है. हालांकि, यह कोडलैब के खास मकसद के लिए काम करती है.

उपयोगकर्ता की अपलोड की गई इमेज के लिए Cloud Storage बकेट बनाना

उपयोगकर्ता की इमेज अपलोड करने के लिए, एक अलग बकेट बनाने के लिए इन निर्देशों का पालन करें. &सभी कोटेशन को सभी उपयोगकर्ताओं के लिए फिर से सेट करें; लेकिन भूमिकाओं के तौर पर स्टोरेज ऑब्जेक्ट क्रिएटर और स्टोरेज ऑब्जेक्ट व्यूअर चुनें.

settings.py में Cloud Storage बकेट कॉन्फ़िगर करें

  1. mysite/setting.py खोलें.
  2. GCS_BUCKET वैरिएबल का पता लगाएं और ‘<YOUR-GCS-BUCKET-NAME>' को अपनी Cloud Storage स्टैटिक बकेट से बदलें.
  3. GS_MEDIA_BUCKET_NAME वैरिएबल ढूंढें और ‘<YOUR-GCS-BUCKET-NAME-MEDIA>' इमेज के लिए अपने Cloud Storage बकेट नाम से बदलें.
  4. GS_STATIC_BUCKET_NAME वैरिएबल का पता लगाएं और ‘<YOUR-GCS-BUCKET-NAME-STATIC>' को स्थिर फ़ाइलों के लिए अपने Cloud Storage बकेट नाम से बदलें.
  5. फ़ाइल सेव करें.
GCS_BUCKET = '<YOUR-GCS-BUCKET-NAME>'
GS_MEDIA_BUCKET_NAME = '<YOUR-GCS-BUCKET-NAME-MEDIA>'
GS_STATIC_BUCKET_NAME = '<YOUR-GCS-BUCKET-NAME-STATIC>'

Home.html में Cloud Storage बकेट कॉन्फ़िगर करें

  • चैट फ़ोल्डर खोलें, फिर templates खोलें और home-changeme.html का नाम बदलकर home.html करें.
  • <YOUR-GCS-BUCKET-NAME-MEDIA> खोजें और उसे अपने बकेट नाम से बदलें, जहां आप उपयोगकर्ता की अपलोड की गई फ़ाइल को सेव करना चाहते हैं. यह आपको उपयोगकर्ता की अपलोड की गई फ़ाइल को फ़्रंटएंड में सेव करने और स्टैटिक एसेट को Cloud Storage बकेट में रखने से रोकता है. विज़न एपीआई फ़ाइल को पिक अप करने और अनुमान लगाने के लिए, Cloud Storage बकेट को कॉल करता है.

अपने स्थानीय कंप्यूटर पर 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+C (Macintosh पर Command+C) दबाएं.

Django Admin console का इस्तेमाल करना

  1. सुपर उपयोगकर्ता बनाएं.
python3 manage.py createsuperuser
  1. स्थानीय वेब सर्वर शुरू करें.
python3 manage.py runserver
  1. अपने वेब ब्राउज़र में http://localhost:8000/admin/ पर जाएं. एडमिन साइट पर लॉग इन करने के लिए, वह उपयोगकर्ता नाम और पासवर्ड डालें जो आपने createsuperuser चलाते समय बनाया था.

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

python3 manage.py collectstatic

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

gcloud app deploy

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

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

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

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

जब आप प्रोडक्शन में अपना कॉन्टेंट दिखाने के लिए तैयार हों, तब mysite/settings.py में DEBUG वैरिएबल को False में बदलें.

आप सिम्युलेटर में अपने चैटबॉट की जांच कर सकते हैं. इसके अलावा, आप उस वेब या Google Home इंटिग्रेशन का इस्तेमाल कर सकते हैं जिसे आपने पहले बनाया था.

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

इस इमेज को डाउनलोड करें, इसे demo.jpg नाम दें, और इसका इस्तेमाल करें.

  1. चैटबॉट: &कोटेशन की फ़ाइल प्रोसेस की जा रही है. यहां नतीजे देखें: गोल्डन गेट ब्रिज, गोल्डन गेट नैशनल रीक्रिएशन एरिया,गोल्डन गेट ब्रिज, गोल्डन गेट ब्रिज, गोल्डन गेट ब्रिज.

कुल मिलाकर, यह कुछ ऐसा दिखना चाहिए:

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

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

  1. अपने मौजूदा एजेंट के बगल में पर क्लिक करें.

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

आपने Dialogflow में एक चैटबॉट बनाया है और उसे Vision API के साथ एकीकृत किया है. अब आप एक चैटबॉट डेवलपर हैं!

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

ज़्यादा जानने के लिए, Dialogflow GitHub पेज पर कोड के नमूने देखें.