बातचीत के मॉडल बनाएं

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

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

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

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

मान्य उपयोगकर्ता अनुरोधों को तय करें

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

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

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

पहली इमेज. उपयोगकर्ता के इंटेंट का उदाहरण

उपयोगकर्ता का इंटेंट बनाने के लिए:

  1. डेवलप करें टैब में, उपयोगकर्ता इंटेंट > ⊕ (नया इंटेंट) पर क्लिक करें. कोई नाम तय करें और इंटेंट बनाने के लिए Enter दबाएं.
  2. बाएं मेन्यू में, नए बनाए गए इंटेंट पर क्लिक करें. इसके बाद, इंटेंट एडिटर दिखेगा.
  3. इंटेंट में ट्रेनिंग वाले वाक्यांश जोड़ें. Assistant एनएलयू को ट्रेन करने के लिए, आपको ट्रेनिंग वाले ज़्यादा से ज़्यादा वाक्यांश जोड़ने चाहिए.
  4. ज़रूरी नहीं: ट्रेनिंग वाले वाक्यांशों की व्याख्या करें, ताकि Assistant एनएलयू को एक खास टाइप से मेल खाने वाले उपयोगकर्ता के इनपुट से टाइप किए गए पैरामीटर को पार्स और एक्सट्रैक्ट करने के निर्देश दिए जा सकें:
    1. नया पैरामीटर जोड़ें फ़ील्ड में पैरामीटर का नाम डालें.
    2. ड्रॉप-डाउन मेन्यू से कोई सिस्टम टाइप चुनें या कोई कस्टम टाइप बनाएं.
    3. तय करें कि पैरामीटर कोई सूची है या नहीं. इसकी मदद से पैरामीटर एक ही टाइप की कई वैल्यू इकट्ठा कर सकता है.
    4. ट्रेनिंग वाक्यांश जोड़ें सेक्शन में, उस टेक्स्ट को हाइलाइट करें जिस पर आपको टाइप लागू करना है. यह Assistant एनएलयू को निर्देश देता है कि वह हाइलाइट किए गए टेक्स्ट को पैरामीटर मानेगा. अगर उपयोगकर्ता ऐसा कुछ कहते हैं जो टाइप से मेल खाता है, तो एनएलयू उस वैल्यू को पैरामीटर के तौर पर निकाल देता है.

सिस्टम इंटेंट बनाएं

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

  1. डेवलप करें टैब में, सिस्टम इंटेंट पर क्लिक करें. सिस्टम इंटेंट का सेट उपलब्ध है, जैसे कि NO_MATCH, NO_INPUT, और CANCEL.
  2. हर सिस्टम इंटेंट के अपने-अपने हैंडलर होते हैं, जिन्हें हर तरह के सिस्टम इंटेंट के हिसाब से पसंद के मुताबिक बनाया जा सकता है. उदाहरण के लिए, सिस्टम इंटेंट आपको वेबहुक इवेंट ट्रिगर करने और इवेंट होने पर स्टैटिक प्रॉम्प्ट भेजने देता है.

कस्टम टाइप बनाएं

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

दूसरी इमेज. कस्टम टाइप का उदाहरण

कस्टम टाइप बनाने के लिए:

  1. डेवलप करें टैब में, टाइप > ⊕ (नया टाइप) पर क्लिक करें.
  2. इस टाइप के लिए कौनसी वैल्यू उपलब्ध हैं? सेक्शन में, टाइप वैल्यू देने का तरीका चुनें:

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

ऐक्शन लॉजिक और जवाब तैयार करें

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

तीसरी इमेज. पसंद के मुताबिक सीन का उदाहरण

कोई सीन बनाएं

इन सेक्शन में सीन बनाने और हर सीन के लाइफ़साइकल स्टेज के लिए फ़ंक्शन तय करने का तरीका बताया गया है.

सीन बनाने के लिए:

  1. डेवलप करें टैब में, स्क्रीन > ⊕ (नया सीन) पर क्लिक करें. इसके बाद, कोई नाम तय करें और सीन बनाने के लिए Enter दबाएं.
  2. बाएं मेन्यू में नए बनाए गए सीन पर क्लिक करें. आपको सीन एडिटर दिखेगा.

एक बार किया जाने वाला सेटअप तय करें

जब कोई सीन पहली बार चालू होता है, तो एंटर चरण में एक बार किए जाने वाले टास्क किए जा सकते हैं. 'ऑन एंटर' चरण सिर्फ़ एक बार चलाया जाता है. यह इकलौता ऐसा चरण है जो किसी सीन के एक्ज़ीक्यूट होने के लूप के अंदर नहीं चलता.

  1. किसी सीन में, इसके फ़ंक्शन की जानकारी देने के लिए, एंटर करने पर स्टेज पर क्लिक करें. इस चरण में ये फ़ंक्शन तय किए जा सकते हैं:

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

शर्तें देखना

शर्तों से सीन के एक्ज़ीक्यूशन फ़्लो को कंट्रोल करने के लिए, स्लॉट भरने, सेशन स्टोरेज, उपयोगकर्ता स्टोरेज, और होम स्टोरेज पैरामीटर की जांच करने की सुविधा मिलती है.

  1. सीन में, स्थिति स्टेज के लिए + आइकॉन पर क्लिक करें. स्थिति एडिटर दाईं ओर दिखेगा. इस चरण में यह फ़ंक्शन तय किया जा सकता है:

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

स्लॉट भरने के बारे में बताना

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

सीन एडिटर में, स्लॉट फ़िल स्टेज के लिए, + आइकॉन पर क्लिक करें. स्लॉट का एडिटर दाईं ओर दिखता है. किसी स्लॉट की ये प्रॉपर्टी तय की जा सकती हैं:

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

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

स्लॉट कॉन्फ़िगर करने के लिए, अपने फ़ुलफ़िलमेंट (जिसे सेशन पैरामीटर कहा जाता है) या इनलाइन JSON एडिटर में, JSON ऑब्जेक्ट में प्रॉपर्टी दें. हर स्लॉट टाइप के लिए उपलब्ध प्रॉपर्टी को Actions Builder JSON रेफ़रंस में देखा जा सकता है. उदाहरण के लिए, actions.type.DeliveryAddressValue स्लॉट का टाइप, DeliveryAddressValue स्लॉट के रेफ़रंस कॉन्टेंट से जुड़ा होता है.

छठी इमेज. सीन के स्लॉट को भरने की सेटिंग का उदाहरण

स्लॉट वैल्यू को मैप करना

कई मामलों में, पिछले इंटेंट मैच में ऐसे पैरामीटर शामिल हो सकते हैं जो किसी सीन के स्लॉट की वैल्यू को कुछ हद तक या पूरी तरह से भर देते हैं. ऐसे मामलों में, इंटेंट पैरामीटर से भरे गए सभी स्लॉट सीन के स्लॉट को भरने पर मैप करते हैं, अगर स्लॉट का नाम इंटेंट पैरामीटर के नाम से मेल खाता है.

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

प्रोसेस इनपुट

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

  1. किसी सीन में, उपयोगकर्ता इंटेंट हैंडलिंग या सिस्टम इंटेंट हैंडलिंग स्टेज के लिए, + आइकॉन पर क्लिक करें. इंटेंट हैंडलर का एडिटर, दाईं ओर दिखता है. आप इंटेंट हैंडलर की इस सुविधा के बारे में तय कर सकते हैं:

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