कार्रवाइयां परिभाषित करें (Dialogflow)

कार्रवाइयां, आपके ऐप्लिकेशन के ऐसे एंट्री पॉइंट होती हैं जो आपके ऐप्लिकेशन के लिए, बुलाए जाने और डिस्कवरी मॉडल की जानकारी देती हैं. JSON फ़ाइल में कार्रवाइयों के बारे में, ऐक्शन पैकेज के नाम से जाना जाता है. इन कार्रवाइयों को बाद में अपने डेवलपर प्रोजेक्ट में अपलोड किया जाता है. कार्रवाई पैकेज एक JSON फ़ाइल होती है, जो आपके Actions प्रोजेक्ट में कार्रवाइयों के बारे में बताती है.

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

  • डिफ़ॉल्ट ऐक्शन: हर ऐक्शन प्रोजेक्ट में वेलकम इंटेंट का इस्तेमाल किया जाना चाहिए, ताकि उपयोगकर्ता बातचीत शुरू कर सकें. वेलकम इंटेंट तब ट्रिगर होता है, जब उपयोगकर्ता किसी कार्रवाई का नाम बोलकर जानते हैं. उदाहरण के लिए, "Ok Google, ExampleAction से बात करो". इस वेलकम इंटेंट की पहचान, actions.intent.MAIN इंटेंट नाम से की जाती है.
  • डीप-लिंक करने के लिए अन्य कार्रवाइयां: अपने ऐक्शन पैकेज में, ऐसे इंटेंट के साथ और भी कार्रवाइयां बनाई जा सकती हैं जिन्हें आपने खुद तय किया हो. इसकी मदद से, उपयोगकर्ता कार्रवाई का नाम और इंटेंट बोलकर, कोई खास सुविधा इस्तेमाल कर सकते हैं (उदाहरण के लिए: "Ok Google, कुछ जूते खोजने के लिए ExampleAction से बात करें").

शुरू करने वाले ये मॉडल कैसे काम करते हैं, इस बारे में ज़्यादा जानकारी के लिए इंटेंट और शुरू करने की प्रक्रिया देखें.

डिफ़ॉल्ट कार्रवाई तय करें

हर Action पैकेज में एक ऐसा इंटेंट होना चाहिए जो actions.intent.MAIN इंटेंट को मैनेज करता हो. यह इंटेंट तब ट्रिगर होता है, जब उपयोगकर्ता आपकी कार्रवाई को नाम से बुलाते हैं (उदाहरण के लिए, "Ok Google, ExampleAction से बात करो").

action.json नाम की बॉयलरप्लेट कार्रवाई पैकेज फ़ाइल जनरेट करने के लिए, यह तरीका अपनाएं:

  1. gactions सीएलआई डाउनलोड करें.
  2. अपने ऐक्शन प्रोजेक्ट की सोर्स फ़ाइलों के लिए एक लोकल डायरेक्ट्री बनाएं.
  3. टर्मिनल में ये निर्देश दें:

    $ cd PROJECT_DIRECTORY
    $ gactions init

कार्रवाई पैकेज फ़ाइल जनरेट होने के बाद, प्लेसहोल्डर कॉन्टेंट को अपनी वैल्यू से बदलें. यहां ExampleAction में हुए बदलावों के साथ action.json का एक उदाहरण दिया गया है:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}

अन्य कार्रवाइयों के बारे में बताएं

आपके पास ऐसी अतिरिक्त कार्रवाइयां देने का विकल्प होता है जो एंट्री पॉइंट के तौर पर काम करती हैं. इससे उपयोगकर्ताओं को यह समझने में मदद मिलती है कि वे क्या करना चाहते हैं. उदाहरण के लिए, "Ok Google, मेरे लिए कुछ जूते ढूंढने के लिए ExampleAction से बात करो.").

अन्य कार्रवाइयों के बारे में बताने के लिए:

  1. actions कलेक्शन में, हर एंट्री पॉइंट के लिए कोई कार्रवाई तय करें.

    उदाहरण के लिए, यह कोड एक और "खरीदें" कार्रवाई दिखाता है, जो यह जानकारी देती है:
    • com.example.ExampleAction.BUY के इंटेंट का नाम
    • इस इंटेंट के ट्रिगर होने पर, उपयोगकर्ता के इनपुट से पार्स करने के लिए parameters. यह तब काम आता है, जब आपको कार्रवाई वाले वाक्यांश से कोई खास डेटा चाहिए. ऐसा तब होता है, जब उपयोगकर्ता कार्रवाई को शुरू करते हैं.
    • queryPatterns, जो यह तय करता है कि इंटेंट को ट्रिगर करने के लिए, उपयोगकर्ताओं को क्या कहना है. क्वेरी पैटर्न में Schema.org के टाइप शामिल हो सकते हैं, जो पार्स करने के लिए पैरामीटर तय करते हैं.
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
          
  2. इस इंटेंट के फ़ुलफ़िलमेंट के बारे में बताने के लिए, conversationName तय करें, जो conversations ऑब्जेक्ट में मौजूद किसी आइटम से मेल खाता हो.

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        

यहां पूरी कार्रवाई के पैकेज का उदाहरण दिया गया है:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    },
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}