प्रकार

टाइप की मदद से, उपयोगकर्ताओं के इनपुट से स्ट्रक्चर्ड डेटा निकालने के लिए, Assistant एनएलयू (प्राकृतिक भाषा की समझ) इंजन को कॉन्फ़िगर किया जा सकता है. इन स्थितियों में टाइप इस्तेमाल किए जा सकते हैं:

  • इंटेंट में, स्लॉट बनाने के लिए टाइप के साथ ट्रेनिंग वाले वाक्यांशों की व्याख्या की जा सकती है. जब उपयोगकर्ता किसी स्लॉट से मेल खाने वाला कुछ कहते हैं, तो एनएलयू इंजन उसे टाइप किए गए पैरामीटर के तौर पर एक्सट्रैक्ट करता है, ताकि आप उसे किसी सीन में प्रोसेस कर सकें.

  • किसी सीन के स्लॉट भरने के चरण में, आपके पास ऐसे कई स्लॉट तय करने का विकल्प होता है जिन्हें उपयोगकर्ता को ट्रांज़िशन करने या सीन से बाहर निकलने से पहले देना होता है.

  • किसी सीन की conditions स्टेज में, आपके पास लॉजिक को इस आधार पर तय करने का विकल्प होता है कि पैरामीटर में कोई ऐसी वैल्यू है या नहीं जो किसी टाइप में दी गई हो.

कस्टम टाइप

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

  • शब्दों और समानार्थी शब्दों की मदद से, कई वैल्यू को एक कुंजी पर मैप किया जा सकता है. इसे एंट्री कहा जाता है. आपके टाइप में एक या कई एंट्री हो सकती हैं. यह विकल्प चुनने पर, एनएलयू की इन सेटिंग को भी चालू किया जा सकता है:
    • फ़िज़ी मैचिंग की सुविधा चालू करें - इस सुविधा से, एक से ज़्यादा शब्दों वाली एंट्री का मिलान किया जा सकता है, भले ही शब्दों को किसी दूसरे क्रम में बोला गया हो.
    • ऐसी वैल्यू स्वीकार करें जिनके बारे में जानकारी नहीं है - जब सभी संभावित वैल्यू तय नहीं की जा सकतीं, तो भाषा प्रोसेसर, आस-पास के इनपुट और इंटेंट ट्रेनिंग डेटा के आधार पर अनजान शब्दों या वाक्यांशों को स्वीकार कर सकता है, जैसे कि किराने के सामान की सूची में जोड़े जा सकने वाले आइटम.
  • रेगुलर एक्सप्रेशन, टाइप को Google के RE2 स्टैंडर्ड के आधार पर रेगुलर एक्सप्रेशन पैटर्न का इस्तेमाल करके, वैल्यू को मैच करने की अनुमति देता है.
  • फ़्री फ़ॉर्म टेक्स्ट की मदद से, उपयोगकर्ता की दी गई जानकारी से मैच कर सकता है. इस टाइप के इंटेंट की जानकारी देने से, सभी इनपुट को एक पैरामीटर के तौर पर इस्तेमाल किया जा सकता है. इस पैरामीटर को अपने एनएलयू से जोड़ा जा सकता है.

सिस्टम के टाइप

सिस्टम टाइप की मदद से, सिस्टम से मिले ट्रेनिंग डेटा और वैल्यू का इस्तेमाल करके, उपयोगकर्ता के इनपुट से लोकप्रिय डेटा को एनोटेट किया जा सकता है और निकाला जा सकता है. नीचे दिए गए सिस्टम टाइप इस्तेमाल किए जा सकते हैं:

Type ब्यौरा
actions.type.DateTime इसमें उपयोगकर्ता की डिवाइस सेटिंग के आधार पर तारीख, समय, और टाइमज़ोन शामिल होता है. यह सुविधा, स्लॉट भरने और ट्रेनिंग देने वाले वाक्यांश के बारे में जानकारी देने के लिए उपलब्ध है.
actions.type.Date इसमें सिर्फ़ तारीख शामिल है. यह सुविधा सिर्फ़ स्लॉट भरने के लिए उपलब्ध है.
actions.type.Time इसमें सिर्फ़ समय होता है. यह सुविधा सिर्फ़ स्लॉट भरने के लिए उपलब्ध है.
actions.type.Number Number टाइप, ऑर्डिनल और कार्डिनल नंबर से मेल खाता है.

DateTime, Date, और Time का इस्तेमाल

ये टाइप इस आधार पर अलग-अलग काम करते हैं कि आपने टाइप का इस्तेमाल कहां किया है और टाइप से मेल खाने वाले उपयोगकर्ता के इनपुट क्या हैं.

इंटेंट के साथ इस्तेमाल करना

इंटेंट में ट्रेनिंग वाले वाक्यांशों की जानकारी देने से, सिर्फ़ DateTime टाइप का इस्तेमाल किया जा सकता है. उपयोगकर्ता इनपुट का पूरी DateTime वैल्यू से मेल खाना ज़रूरी नहीं है. उदाहरण के लिए, अगर कोई उपयोगकर्ता सिर्फ़ साल की जानकारी देता है, तो सेशन पैरामीटर इस तरह से दिख सकता है:

"date_time": {
  "year": 2019
}

स्लॉट भरने के साथ इस्तेमाल करना

स्लॉट भरने की सुविधा में DateTime, Date, और Time इस्तेमाल किए जा सकते हैं.

  • अगर स्लॉट का टाइप DateTime है, तो Assistant उपयोगकर्ता को तब तक के लिए प्रॉम्प्ट भेजती है, जब तक कि पूरी वैल्यू नहीं दी जाती.
  • अगर स्लॉट टाइप Date है, तो Assistant उपयोगकर्ता को तारीख की वैल्यू दिए जाने तक सूचना देती है. इकट्ठा किए जाने पर, आपको पूरा DateTime पैरामीटर मिलता है, जिसका समय 00:00 पर सेट होता है.
  • अगर स्लॉट टाइप Time है, तो Assistant उपयोगकर्ता को समय की वैल्यू दिखने तक के लिए निर्देश देती है. इकट्ठा किए जाने पर, आपको मिला पैरामीटर एक पूरा DateTime ऑब्जेक्ट होता है. इसमें मौजूदा तारीख पर सेट की गई तारीख होती है.

उदाहरण के लिए, मान लीजिए कि लॉस एंजेलिस में किसी उपयोगकर्ता ने कहा, "Ok Google, 15 जनवरी, 2024 की रात 8 बजे के लिए रिमाइंडर बनाओ." जब स्लॉट भरने की प्रक्रिया के हिस्से के रूप में DateTime को निकाला जाता है, तो पूरा पैरामीटर ऐसा दिख सकता है:

"date_time": {
  "day": 15,
  "hours": 20,
  "minutes": 0,
  "month": 1,
  "nanos": 0,
  "seconds": 0,
  "time_zone": {
    "id": "America/Los_Angeles"
  },
  "year": 2024
}

शर्तों के साथ इस्तेमाल करना

शर्तों में सिर्फ़ संख्याओं और स्ट्रिंग का इस्तेमाल करने की अनुमति है. इसलिए, टॉप लेवल DateTime पैरामीटर का इस्तेमाल करने पर, शर्त के लिए False नतीजा मिलता है. उदाहरण के लिए:

  • $session.params.my_dateTime.day > 5 एक मान्य शर्त है, क्योंकि day वैल्यू एक संख्या है और काम करती है.
  • $session.params.my_dateTime > "01-01-2010" एक अमान्य स्थिति है, क्योंकि टॉप लेवल 'DateTime' ऑब्जेक्ट कोई संख्या या स्ट्रिंग नहीं है.

रनटाइम के टाइप में बदलाव

रनटाइम टाइप ओवरराइड की मदद से, आप डाइनैमिक तौर पर टाइप बना सकते हैं या उनमें बदलाव कर सकते हैं. इस सुविधा की मदद से, रनटाइम के दौरान किसी टाइप के स्पेसिफ़िकेशन में कुछ जोड़ा या बदला जा सकता है. उदाहरण के लिए, बैकएंड डेटा सोर्स की जांच करके, हर दिन के मेन्यू आइटम को उस टाइप में लोड किया जा सकता है जो आपको ऑर्डर पूरा करने के लिए दिया गया है.

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