मूड

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

  • उपयोगकर्ता के इंटेंट से, Assistant आपके ब्रैंड और सेवाओं से जुड़े उपयोगकर्ता के अनुरोधों को बेहतर तरीके से समझ पाती है. आपके पास किसी इंटेंट में कस्टम ट्रेनिंग वाले वाक्यांश तय करने का विकल्प होता है, जो इंटेंट की भाषा का मॉडल जनरेट करता है. भाषा का यह मॉडल, Assistant के एनएलयू को बेहतर बनाता है, जिससे वह ज़्यादा चीज़ें समझ पाता है.

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

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

उपयोगकर्ता के इंटेंट

कार्रवाइयाँ बनाने पर, उपयोगकर्ता के लिए ऐसे इंटेंट बनाए जाते हैं जिनमें ट्रेनिंग वाले वाक्यांश शामिल होते हैं. इससे Assistant को बेहतर तरीके से समझने में मदद मिलती है. जब Assistant, उपयोगकर्ताओं को आपकी कार्रवाइयों के लिए अनुरोध भेजती है, तब वह अपनी एनएलयू को बेहतर बनाने के लिए, ट्रेनिंग वाले वाक्यांशों का इस्तेमाल करती है.

जब ऐसा होता है, तब Assistant ब्रोकर, उपयोगकर्ता और आपकी कार्रवाइयों के बीच कम्यूनिकेशन करते हैं. साथ ही, उपयोगकर्ता के इनपुट को उस इंटेंट से मैप करते हैं जिसका भाषा मॉडल मैच करता है. इसके बाद, Assistant आपकी कार्रवाइयों को मेल खाने वाले इंटेंट के बारे में सूचना देती है, ताकि आप उसे किसी सीन में प्रोसेस कर सकें.

उपयोगकर्ता के इंटेंट बनाते समय, आपको इन एलिमेंट के बारे में बताना होता है:

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

  • ट्रेनिंग वाक्यांश से पता चलता है कि उपयोगकर्ता इंटेंट से मैच करने के लिए क्या कह सकता है. Assistant एनएलयू (प्राकृतिक भाषा की समझ) इंजन, ट्रेनिंग वाले इन वाक्यांशों को अपने-आप इस तरह बड़ा करता है कि इसमें इससे मिलते-जुलते दूसरे वाक्यांश शामिल किए जा सकें. अच्छी क्वालिटी के उदाहरणों का एक बड़ा सेट देने से इंटेंट की क्वालिटी और मैच करने की संभावना बढ़ जाती है.

  • पैरामीटर में टाइप किया गया ऐसा डेटा होता है जिसे उपयोगकर्ता के इनपुट से एक्सट्रैक्ट करना होता है. पैरामीटर बनाने के लिए, आपको ट्रेनिंग वाले वाक्यांशों को टाइप के साथ एनोटेट करना होता है, ताकि एनएलयू इंजन को यह सूचना दी जा सके कि आपको उपयोगकर्ता के इनपुट के हिस्से को निकालना है. पैरामीटर के लिए सिस्टम टाइप का इस्तेमाल किया जा सकता है या अपने कस्टम टाइप बनाए जा सकते हैं.

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

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

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

ऐक्शन कंसोल में कस्टम इंटेंट बनाने पर, Actions Builder सिस्टम इंटेंट के सुझाव देता है. ये सिस्टम इंटेंट के मुताबिक हो सकते हैं. सिस्टम इंटेंट के बारे में ज़्यादा जानकारी के लिए, नीचे दिया गया सेक्शन देखें.

सिस्टम इंटेंट

Assistant, सिस्टम इवेंट के आधार पर सिस्टम इंटेंट से मेल खाती है. इन इवेंट में सिस्टम के हिसाब से बना भाषा का मॉडल हो सकता है, जैसे कि उपयोगकर्ता मीडिया प्लेयर को रोकने के लिए "रोकें" कहते हैं. ऐसा भी हो सकता है कि उनमें भाषा का कोई मॉडल न हो, जैसे कि उपयोगकर्ता कोई भी इनपुट न दें. ये इंटेंट Assistant उपलब्ध कराती है, इसलिए आपको इस बात की चिंता नहीं करनी चाहिए कि उनका मिलान कैसे किया जाता है. आपको सिर्फ़ इंटेंट को मैच करने के तरीक़े से मैनेज करना होगा.

सिस्टम इंटेंट, आम तौर पर इस्तेमाल की जाने वाली कार्रवाइयों के लिए उपयोगकर्ता इंटेंट बनाने की ज़रूरत को भी बदल देता है, जैसे कि YES और NO. सिस्टम इंटेंट को सभी स्थान-भाषाओं के लिए ट्रेनिंग दी जाती है. इससे, अपने उपयोगकर्ताओं को कई भाषाओं में एक जैसा अनुभव देने में आसानी होती है. सिस्टम इंटेंट को भी ग्लोबल इंटेंट के तौर पर सेट किया जा सकता है.

सिस्टम इंटेंट का वर्शन तैयार किया गया है. आप सिस्टम इंटेंट के किसी खास वर्शन का इस्तेमाल तब तक कर सकते हैं, जब तक कि वह वर्शन Assistant पर काम करता है. अगर कोई कार्रवाई, सिस्टम इंटेंट के ऐसे वर्शन का इस्तेमाल करती है जो काम नहीं करता, तो सिस्टम इंटेंट अपने-आप काम करने वाले वर्शन में अपडेट हो जाता है.

इंटेंट की सूची

प्रयोजन ब्यौरा
actions.intent.MAIN हर Actions प्रोजेक्ट में, डिफ़ॉल्ट रूप से यह मुख्य बातचीत शामिल होनी चाहिए, जो आपके डिसप्ले नेम से जुड़ी होती है. कार्रवाई शुरू करने के लिए, उपयोगकर्ता "Ok Google, <display name> से बात करो" जैसे वाक्यांश बोलें.

actions.intent.NO_MATCH_1

actions.intent.NO_MATCH_2

actions.intent.NO_MATCH_FINAL

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

actions.intent.NO_INPUT_1

actions.intent.NO_INPUT_2

actions.intent.NO_INPUT_FINAL

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

actions.intent.CANCEL इस इंटेंट का मिलान तब किया जाता है, जब उपयोगकर्ता किसी बातचीत के दौरान आपकी कार्रवाइयों से बाहर निकलना चाहता है. जैसे, कोई उपयोगकर्ता कहता है, "मुझे बाहर निकलना है."
actions.intent.MEDIA_STATUS_FINISHED जब कोई व्यक्ति मीडिया चलाना पूरा कर लेता है या मीडिया के अगले हिस्से पर चला जाता है, तब इस इंटेंट को मैच करके आपकी सेट की गई कार्रवाई को भेजा जाता है.
actions.intent.MEDIA_STATUS_PAUSED जब कोई व्यक्ति मीडिया के जवाब में मीडिया को रोकता है, तब यह इंटेंट मैच होता है और आपकी सेट की गई कार्रवाई को भेजा जाता है.
actions.intent.MEDIA_STATUS_STOPPED जब कोई व्यक्ति, मीडिया रिस्पॉन्स से मीडिया चलाना बंद करता है या उसे बंद करता है, तब यह इंटेंट मैच होता है और आपकी सेट की गई कार्रवाई को भेजा जाता है.
actions.intent.MEDIA_STATUS_FAILED जब मीडिया रिस्पॉन्स प्लेयर काम नहीं कर पाता, तब यह इंटेंट मैच हो जाता है और आपकी सेट की गई कार्रवाई को भेज दिया जाता है.
actions.intent.YES

इस इंटेंट को तब मैच किया जाता है, जब कोई उपयोगकर्ता आपकी सेट की गई कार्रवाई का सकारात्मक जवाब देता है.

actions.intent.NO

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

actions.intent.REPEAT

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

actions.intent.PLAY_GAME इस इंटेंट का मिलान तब किया जाता है, जब कोई उपयोगकर्ता कोई गेम खेलने के लिए कहता है. इस इंटेंट की मदद से Actions on Google से, किसी और तरीके से शुरू करने के लिए ऑप्ट-इन किया जा सकता है. यह सुविधा, आपके डिसप्ले नाम का इस्तेमाल किए बिना ही शुरू की जाती है.

अन्य भाषाओं के लिए सहायता जोड़ें

YES, NO, और NO_MATCH जैसे कुछ सिस्टम इंटेंट सिर्फ़ अंग्रेज़ी में काम करते हैं.अन्य भाषाओं के लिए सहायता जोड़ने के लिए, आपको ऐसे उपयोगकर्ता इंटेंट बनाने होंगे जो उन सिस्टम इंटेंट से मेल खाते हों. आपके नए इंटेंट को आपके कोड में ठीक उसी तरह हैंडल किया जाना चाहिए जिस तरह से सिस्टम इंटेंट लागू किए गए हैं.

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

उपयोगकर्ता के लिए इंटेंट बनाने के बारे में ज़्यादा जानें.

अपने उपयोगकर्ता की इंटेंट स्थानीय भाषा में लिखने के बारे में ज़्यादा जानें.

मैच न करने वाले नतीजे

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

अगर Assistant को उपयोगकर्ता के इनपुट से मेल खाने वाली कोई सही कार्रवाई नहीं मिलती, तो उपयोगकर्ता आपकी सेट की गई कार्रवाई के हिसाब से उसे जारी रखता है.

Assistant, मैच नहीं करने वाली किसी मान्य स्थिति का जवाब देने के लिए, आपकी सेट की गई कार्रवाई में रुकावट डाल सकती है. इसलिए, उपयोगकर्ता की क्वेरी को पूरा करने के लिए, NO_MATCH सिस्टम इंटेंट का इस्तेमाल न करें. आपको उपयोगकर्ता को जवाब देने के लिए, सिर्फ़ NO_MATCH इंटेंट का इस्तेमाल करना चाहिए.