बातचीत वाली कार्रवाइयों को 13 जून, 2023 को बंद कर दिया जाएगा. ज़्यादा जानकारी के लिए, बातचीत की कार्रवाइयों का बंद होना देखें.

प्रकार

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

  • इंटेंट में, आप स्लॉट बनाने के लिए ट्रेनिंग टाइप के बारे में बता सकते हैं. जब उपयोगकर्ता किसी ऐसी चीज़ के बारे में बताते हैं जो किसी स्लॉट से मेल खाती है, तो एनएलयू इंजन इसे एक टाइप किए गए पैरामीटर के रूप में बाहर निकाल लेता है, ताकि आप इसे सीन में प्रोसेस कर सकें.

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

  • किसी सीन के शर्तें स्टेज में, आप यह आधार तय कर सकते हैं कि पैरामीटर में कोई खास वैल्यू है या नहीं.

कस्टम प्रकार

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

  • शब्दों और समानार्थी शब्दों की मदद से, एक ही कुंजी पर कई वैल्यू मैप की जा सकती हैं, इन्हें एंट्री कहा जाता है. आपके प्रकार में एक या एक से ज़्यादा एंट्री हो सकती हैं. यह विकल्प चुनने पर, इन एनएलयू सेटिंग को भी चालू किया जा सकता है:
    • धुंधला मिलान चालू करें - यह सुविधा, एक से ज़्यादा शब्दों वाली एंट्री को मैच करने देती है. भले ही, शब्द किसी दूसरे क्रम में बोले गए हों.
    • अज्ञात वैल्यू स्वीकार करें - जब सभी संभावित वैल्यू के बारे में जानकारी नहीं दी जा सकती, तो भाषा प्रोसेसर, आस-पास के इनपुट और इंटेंट ट्रेनिंग डेटा के आधार पर अनजान शब्दों या वाक्यांशों को स्वीकार कर सकता है, जैसे कि किराने की सूची में जोड़े गए आइटम.
  • रेगुलर एक्सप्रेशन, इस तरह की वैल्यू से 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 तारीख की वैल्यू दिए जाने तक, उपयोगकर्ता से अनुरोध करती है. इकट्ठा किए जाने पर, आपको पूरा पैरामीटर 00:00 पर सेट किए गए और पूरे DateTime वाला होता है.
  • अगर स्लॉट का प्रकार 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 पैरामीटर का इस्तेमाल करने से स्थिति के लिए गलत नतीजा मिलता है. उदाहरण के लिए:

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

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

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

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