फ़ुलफ़िलमेंट डिप्लॉय करें (Dialogflow)

वेबहुक फ़ुलफ़िलमेंट बनाने के बाद, उसे प्रोडक्शन में डिप्लॉय करें और अपनी सेट की गई कार्रवाई से कनेक्ट करें. प्रोडक्शन होस्टिंग के लिए, Firebase के लिए Cloud Functions पर डिप्लॉय करने के लिए, एनवायरमेंट को सेट अप करने का तरीका यहां बताया गया है. हालांकि, आपके पास ऐसा कोई भी वेब होस्टिंग प्लैटफ़ॉर्म चुनने का विकल्प है जो एचटीटीपीएस अनुरोधों और रिस्पॉन्स के साथ काम करता हो. ऐसा करके, फ़ुलफ़िलमेंट को होस्ट किया जा सकता है.

अगर आपने पहले ही अपने वेबहुक को किसी वेब होस्टिंग प्लैटफ़ॉर्म पर डिप्लॉय कर दिया है, तो वेबहुक को अपनी सेट की गई कार्रवाई से कनेक्ट करें पर जाएं. ध्यान दें कि नीचे दी गई प्रोसेस के आखिरी चरण इस आधार पर अलग-अलग होते हैं कि आपने Dialogflow या ऐक्शन SDK टूल का इस्तेमाल किया है या नहीं.

Firebase के लिए Cloud Functions पर डिप्लॉय करें

  1. Node.js को डाउनलोड और इंस्टॉल करें.
  2. Firebase सीएलआई को सेट अप और शुरू करें. अगर यह निर्देश EACCES की गड़बड़ी की वजह से काम नहीं करता, तो आपको एनपीएम से जुड़ी अनुमतियां बदलनी पड़ सकती हैं.

    npm install -g firebase-tools
    
  3. अपने Google खाते से Firebase टूल की पुष्टि करें:

    firebase login
    
  4. अपनी ऐक्शन प्रोजेक्ट डायरेक्ट्री पर जाएं और Firebase शुरू करें. आपसे Firebase सीएलआई की उन सुविधाओं को चुनने के लिए कहा जाएगा जिन्हें आपको अपने Actions प्रोजेक्ट के लिए सेट अप करना है. Functions और ऐसी अन्य सुविधाएं चुनें जिनका आपको इस्तेमाल करना चाहिए, जैसे कि Firestore. इसके बाद, पुष्टि करने और जारी रखने के लिए, Enter दबाएं:

    cd <cloud_function_dir>
    firebase init
    
  5. प्रोजेक्ट की सूची में नेविगेट करने के लिए, ऐरो बटन का इस्तेमाल करके Firebase टूल को अपने Actions प्रोजेक्ट से जोड़ें:

    निर्देश का इस्तेमाल करके, इस चरण को पूरा करना होगा.
  6. प्रोजेक्ट चुनने के बाद, Firebase टूल फ़ंक्शन सेटअप शुरू कर देता है. इससे यह पता चलता है कि आपको किस भाषा का इस्तेमाल करना है. ऐरो कुंजियों का उपयोग करके चुनें और जारी रखने के लिए Enter दबाएं.

    === Functions Setup
    A functions directory will be created in your project with a Node.js package pre-configured. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? (Use arrow keys) > JavaScript TypeScript
  7. चुनें कि क्या आपको संभावित गड़बड़ियों का पता लगाने के लिए ESLint का इस्तेमाल करना है और स्टाइल टाइपिंग Y या N को लागू करना है:

    ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
  8. प्रॉम्प्ट में Y टाइप करके, प्रोजेक्ट डिपेंडेंसी पाएं:

    ? Do you want to install dependencies with npm now? (Y/n)

    सेटअप पूरा होने के बाद, आपको इनके जैसा आउटपुट दिखेगा:

    ✔  Firebase initialization complete!
  9. actions-on-google डिपेंडेंसी इंस्टॉल करें:

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. फ़ुलफ़िलमेंट डिपेंडेंसी पाएं और फ़ुलफ़िलमेंट फ़ंक्शन डिप्लॉय करें:

    npm install
    firebase deploy --only functions
    

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

    ✔  Deploy complete!
    Project Console: https://console.firebase.google.com/project/exampleproject-123/overview Function URL (cloudFunctionName): https://us-central1-exampleproject-123.cloudfunctions.net/cloudFunctionName

वेबहुक को अपनी सेट की गई कार्रवाई से कनेक्ट करें

अगर Dialogflow का इस्तेमाल किया जा रहा है: Dialogflow कंसोल में, Fulfillment पर जाएं, तो वेबहुक बटन को चालू करें पर टॉगल करें. इसके बाद, यूआरएल फ़ील्ड में मौजूद यूआरएल को अपने फ़ंक्शन यूआरएल से बदलें.

अगर कार्रवाई SDK टूल का इस्तेमाल किया जा रहा है: कार्रवाई के पैकेज में, ग्राहक को आइटम भेजने का एलान करने के लिए, conversations ऑब्जेक्ट के अंदर एक ऑब्जेक्ट बनाएं:

{
  "actions": [
    {
      "description": "Default Welcome Intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "myFulfillmentFunction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to myFulfillmentFunction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "myFulfillmentFunction": {
      "name": "myFulfillmentFunction",
      "url": "https://us-central1-myprojectname-ab123.cloudfunctions.net/cloudFunctionName"
    }
  },
  "locale": "en"
}