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