बिल्ट-इन इंटेंट (Dialogflow)

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

  • "गेम खेलें" बिल्ट-इन इंटेंट: "Ok Google. कोई मेमोरी गेम खेलो"
  • " राशिफल बताओ" बिल्ट-इन इंटेंट: "Ok Google. मेरा राशिफल बताओ"

ऐक्शन डिस्कवरी के दौरान, Assistant इनका इस्तेमाल कर सकती है आपकी सेट की गई कार्रवाई का मेटाडेटा. इसमें आपके चुने हुए बिल्ट-इन इंटेंट भी शामिल हैं, का सुझाव दें. बातचीत वाली राउंड-ट्रिप को कम करने के लिए, Assistant, उपयोगकर्ता की क्वेरी से मिले पैरामीटर को स्कैन करने की कोशिश भी करती है और उन्हें अपनी कार्रवाई में भेजें.

Assistant के साथ काम करने वाले बिल्ट-इन इंटेंट की पूरी सूची देखने के लिए, साथ ही, उसके पैरामीटर और उपयोगकर्ता की क्वेरी के उदाहरण शामिल हैं. ज़्यादा जानकारी के लिए, पहले से मौजूद इंटेंट का रेफ़रंस.

बिल्ट-इन इंटेंट इंटिग्रेट करें

आप अपना Action कैसे बना रहे हैं, इसके आधार पर ऐसे कई तरीके हैं पहले से मौजूद इंटेंट इंटिग्रेट करें.

Dialogflow

अगर Action बनाने के लिए Dialogflow का इस्तेमाल किया जा रहा है, तो पहले से मौजूद इंटेंट को अटैच किया जा सकता है Dialogflow कंसोल से बनाया गया.

Dialogflow के साथ बिल्ट-इन इंटेंट अटैच करने के लिए, यह तरीका अपनाएं:

  1. Dialogflow कंसोल खोलें, अपना एजेंट चुनें, फिर यहां नेविगेट करें इंटेंट स्क्रीन.
  2. वह इंटेंट बनाएं या चुनें जिसे आपका एजेंट मिलने पर ट्रिगर करे खास बिल्ट-इन इंटेंट के लिए. इवेंट सेक्शन खोलें और जोड़ें पर क्लिक करें इवेंट.

    पहली इमेज. Dialogflow कंसोल में Dialogflow इवेंट जोड़ा जा रहा है.
  3. इवेंट फ़ील्ड में, अपने एजेंट (उदाहरण के लिए, actions_intent_PLAY_GAME).

    दूसरी इमेज. Dialogflow कंसोल में, अपने एजेंट में बिल्ट-इन इंटेंट अटैच करना.
  4. सेव करें पर क्लिक करें.

Actions SDK टूल

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

Actions SDK टूल के साथ बिल्ट-इन इंटेंट अटैच करने के लिए, यह तरीका अपनाएं:

  1. अपनी कार्रवाई की परिभाषा में नाम फ़ील्ड में बिल्ट-इन इंटेंट बताएं.
  2. gactions टूल का इस्तेमाल करके अपने ऐक्शन पैकेज को अपने ऐक्शन प्रोजेक्ट में अपलोड करें, जैसे कि कार्रवाइयां SDK टूल की खास जानकारी में बताया गया है.

उदाहरण के लिए, नीचे दिया गया स्निपेट दिखाता है कि CHECK_AIR_QUALITY को कैसे जोड़ा जा सकता है बिल्ट-इन इंटेंट:

{
   "actions":[
      {
         "description":"Default Welcome Intent",
         "name":"MAIN",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.MAIN"
         }
      },
      {
         "description":"Check Air Quality",
         "name":"CHECK_AIR_QUALITY",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.CHECK_AIR_QUALITY"
         }
      }
   ],
   "conversations":{
      "conversation_1":{
         "name":"conversation_1",
         "url":"https://example.com/fulfillment",
         "fulfillmentApiVersion":2
      }
   }
}

पहले से मौजूद इंटेंट पैरामीटर मैनेज करना

जब आपकी सेट की गई कार्रवाई को बिल्ट-इन इंटेंट के ज़रिए शुरू किया जाता है, तो आपका ग्राहक अतिरिक्त पैरामीटर मिलते हैं. इंटेंट स्कीमा, पैरामीटर और उनके टाइप, जैसे कि बुनियादी टाइप या schema.org इकाइयां. 'बातचीत की सुविधा वाली कार्रवाई' बिल्ट-इन इंटेंट का स्कीमा देखने के लिए, देखें पहले से मौजूद इंटेंट का रेफ़रंस.

बिल्ट-इन इंटेंट के लिए पैरामीटर ज़रूरी नहीं हैं. Assistant, ऐसे पैरामीटर जिनमें उन मानों को उपयोगकर्ता के शुरू करने से निकाला जा सकता है शामिल हैं.

उदाहरण के लिए, actions.intent.CHECK_AIR_QUALITY बिल्ट-इन का स्कीमा इंटेंट, चार वैकल्पिक पैरामीटर के बारे में बताता है:

पैरामीटर का नाम टाइप
attributes स्ट्रिंग की वैल्यू.
location schema.org/Place ऑब्जेक्ट.
temporalCoverage schema.org/Duration ऑब्जेक्ट.
timeIndicator एक EnumeratedDuration (Google के लिए खास एक्सटेंशन).

यह कोड स्निपेट, बातचीत के लिए वेबहुक (JSON) का उदाहरण दिखाता है जब कोई उपयोगकर्ता आपकी सेट की गई कार्रवाई को शुरू करता है, तो अनुरोध करता है कि "एयर क्वालिटी कैसी है क्या कल नई दिल्ली?:

"inputs":[
      {
         "intent":"actions.intent.CHECK_AIR_QUALITY",
         "rawInputs":[
            {
               "inputType":"VOICE",
               "query":"what is the air quality in san francisco tomorrow"
            }
         ],
         "arguments":[
            {
               "name":"location",
               "structuredValue":{
                  "geo":{
                     "longitude":-122.41941550000001,
                     "latitude":37.7749295
                  },
                  "@context":"https://schema.org",
                  "@type":"Place",
                  "name":"san francisco"
               }
            },
            {
               "name":"temporalCoverage",
               "rawText":"2018-04-25",
               "textValue":"2018-04-25"
            }
         ]
      }
   ]

इस उदाहरण में, पैरामीटर नीचे दी गई वैल्यू लेते हैं:

  • location पैरामीटर में schema.org/Place शामिल है "नई दिल्ली" के लिए वैल्यू.
  • temporalCoverage पैरामीटर में schema.org/Duration शामिल है शुरू करने के समय के संबंध में आने वाले कल की तारीख के लिए मान.
  • attributes और timeIndicator पैरामीटर के लिए कोई वैल्यू नहीं है क्योंकि उपयोगकर्ता के बोले जाने वाले वाक्यांश में ऐसी जानकारी शामिल नहीं थी.

अगर आप Node.js के लिए Actions on Google क्लाइंट लाइब्रेरी का इस्तेमाल करते हैं, तो पैरामीटर की वैल्यू फिर से पाएं, जैसा कि नीचे दिए गए स्निपेट में दिखाया गया है:

app.intent('actions.intent.CHECK_AIR_QUALITY', (conv) => {
  const attributes = conv.arguments.get('attributes');
  const location = conv.arguments.get('location');
  const temporal_coverage = conv.arguments.get('temporalCoverage');
  Const time_indicator = conv.arguments.get('timeIndicator')

  // Your Action logic. If you need to use any of the parameter values,
  // you should check first that it is defined. Arguments.get returns
  // undefined if it can't find a value for a parameter.

});

पहले से मौजूद इंटेंट के साथ इंटिग्रेशन की जांच करना

अपने इंटिग्रेशन की जांच करने के लिए, यह तरीका अपनाएं:

  1. टेस्ट के लिए सेट की गई कार्रवाई वाला ऐक्शन सिम्युलेटर खोलें या Assistant को चालू करें.
  2. उस बिल्ट-इन इंटेंट से जुड़ी कोई क्वेरी बोलें या टाइप करें. उदाहरण के लिए, “मैं एक गेम खेलना चाहता हूं.”
  3. ऐप्लिकेशन चुनने के लिए दिखाए गए डायलॉग बॉक्स में, अपनी सेट की गई कार्रवाई खोजें.
  4. अपने ऐप्लिकेशन पर इंटेंट भेजने के लिए अपना ऐप्लिकेशन चुनें.
तीसरी इमेज. कार्रवाई चुनने वाला डायलॉग,
पहले से मौजूद इंटेंट वाले फ़्रेज़ से मिला है.
चौथी इमेज. बिल्ट-इन इंटेंट के साथ अटैच की गई कार्रवाई शुरू करना.

बिल्ट-इन इंटेंट का इस्तेमाल करने के सबसे सही तरीके

पहले से मौजूद इंटेंट का इस्तेमाल करते समय, आपको इन सबसे सही तरीकों को अपनाना चाहिए:

  • पहले से मौजूद इंटेंट को खास कार्रवाइयों के लिए मैप करना: जब कोई खास बिल्ट-इन इंटेंट हो कार्रवाई को ट्रिगर करता है, तो उपयोगकर्ता को खास इंटेंट पर भेजें और आपकी सेट की गई कार्रवाई में आपको कम से कम रुकावट मिलेगी. इसके लिए उदाहरण के लिए, अगर आपकी सेट की गई कार्रवाई, PLAY_GAME बिल्ट-इन इंटेंट के साथ काम करती है और इस इंटेंट को पाने के बाद, आपको तुरंत उपयोगकर्ता को गेम फ़ीचर पर भेजना चाहिए कार्रवाई की गई है. अगर उपयोगकर्ता गेम खेलना चाहता है, तो दोबारा न पूछें.
  • पहले से मौजूद इंटेंट पैरामीटर को मैनेज करना: पक्का करें कि पहले से मौजूद इंटेंट का इस्तेमाल किया जा रहा हो पैरामीटर वैल्यू जिन्हें Assistant आपके वाहन को पूरा करने के लिए भेजती है. इन वैल्यू के लिए, व्यक्ति को दोबारा अनुरोध करने से बचें.