Action Builder का इस्तेमाल करके, Google Assistant के लिए Actions बनाना (दूसरा लेवल)

1. खास जानकारी

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

इस कोडलैब में Google Assistant के साथ डेवलप होने वाले इंटरमीडिएट-लेवल के सिद्धांतों के बारे में बताया गया है. साथ ही, यह पहले लेवल के कोडलैब में बनाई गई कार्रवाई को बनाता है. हमारा सुझाव है कि आप इसे शुरू करने से पहले, लेवल 1 के कोडलैब (कोड बनाना सीखना) को पूरा करें.

इस कोडलैब में आपकी बनाई गई कार्रवाई, उपयोगकर्ताओं को उनके हिसाब से पौराणिक कथा, ग्रिफ़िनबर्ग में की खोज के बारे में बताती है.

आप क्या बनाएंगे #39;

इस कोडलैब में आप एक बेहतरीन 'बातचीत की कार्रवाई' बनाते हैं. इसके लिए, नीचे दिए गए फ़ंक्शन इस्तेमाल करते हैं:

  • उपयोगकर्ता से डेटा इकट्ठा करता है और वैल्यू के आधार पर, बातचीत की सूचनाओं में बदलाव करता है
  • बातचीत को आगे बढ़ाने के लिए, फ़ॉलो-अप सवालों के जवाब देता है
  • गेम लूप बनाता है, ताकि उपयोगकर्ता किस्मत हासिल करने के बाद, फिर से ऐक्शन से इंटरैक्ट कर सके

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

dd6f5c61296b8b50.png

ईबीए043f546aa8c51.png

आप इन चीज़ों के बारे में जानेंगे

  • उपयोगकर्ता से डेटा इकट्ठा करने के लिए, स्लॉट इस्तेमाल करने का तरीका
  • किसी सीन में लॉजिक जोड़ने के लिए, conditions का इस्तेमाल कैसे करें
  • गेम लूप जोड़ने का तरीका
  • सहायक पाथ जोड़ने का तरीका

आपको इनकी ज़रूरत होगी

इस कोडलैब के लिए ज़रूरी शर्तों में ये शामिल हैं:

इस कोडलैब के पूरा होने के कोड को समझने के लिए, JavaScript (ES6) के बारे में जानें. हालांकि, यह ज़रूरी नहीं है.

2. बातचीत वाला इंटरफ़ेस बनाना जारी रखें

पहले कोडलैब में, आपने Start के एक आसान सीन के साथ, बातचीत की एक आसान कार्रवाई बनाई.

इस कोडलैब में आप अपनी कार्रवाई के लिए बातचीत की अवधि बढ़ा सकते हैं. नीचे दिए गए सेक्शन में, आप अपनी कार्रवाई को नीचे दिए गए काम करने के लिए कॉन्फ़िगर करते हैं:

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

Fortune सीन बनाएं

इस सेक्शन में, आप Fortune सीन बनाते हैं और यह तय करते हैं कि बातचीत के दौरान उपयोगकर्ता का ट्रांज़िशन कैसे होता है.

Fortune नाम का नया सीन बनाने के लिए, यह तरीका अपनाएं:

  1. अपना कोडलैब लेवल 1 ऐक्शन प्रोजेक्ट खोलें.
  2. नेविगेशन बार में डेवलप करें पर क्लिक करें.
  3. सीज़न के नीचे, शुरू करें सीन पर क्लिक करें.
  4. विकल्प खोलने के लिए, हां इंटेंट (हां से मेल खाने पर बॉक्स) पर क्लिक करें.
  5. प्रॉम्प्ट को हटाने के लिए अनुरोध भेजें को हटाएं.
  6. ट्रांज़िशन सेक्शन में, ड्रॉप-डाउन मेन्यू पर क्लिक करके टेक्स्ट बॉक्स में क्लिक करें और Fortune टाइप करें.
  7. जोड़ें पर क्लिक करें. इससे Fortune नाम का एक नया सीन बन जाएगा. ऐसा करने से, Start सीन से Fortune सीन में ट्रांज़िशन तब भी होगा, जब उपयोगकर्ता अपनी किस्मत सुनना चाहता है.

56682a0c7459b98c.png

Fortune सीन के लिए बातचीत के लॉजिक के बारे में बताएं

इस कोडलैब में, आप उपयोगकर्ता से पूछने के लिए अपना Fortune सीन कॉन्फ़िगर करते हैं, &और आप अपने मिशन, ड्रैगन, अनुवादक या कंपासबोकोट में मदद करने के लिए क्या चुनते हैं; आगे बढ़ने से पहले, आप उपयोगकर्ता से ज़रूरी जानकारी इकट्ठा करने के लिए स्लॉट फ़िलिंग नाम की सुविधा का इस्तेमाल कर सकते हैं.

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

आप उपयोगकर्ता से क्या जानकारी पाना चाहते हैं, यह बताने के लिए सीन के #39; स्लॉट स्लॉट के अंदर टाइप का इस्तेमाल कर सकते हैं. जब NLU इंजन को उपयोगकर्ता के इनपुट में किसी स्लॉट मैच का पता चलता है, तो वह स्लॉट को टाइप किए गए पैरामीटर के तौर पर निकालता है, ताकि आप किसी सीन में इसके साथ लॉजिक लगा सकें.

available_options का टाइप बनाएं

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

available_options टाइप बनाने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में, टाइप पर क्लिक करें.
  2. + (प्लस का निशान) पर क्लिक करें, available_options लिखें, और Enter दबाएं.
  3. विकल्प खोलने के लिए available_options पर क्लिक करें.

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

उपयोगकर्ता के पास जो तीन विकल्प हैं उन्हें जोड़ने के लिए, यह तरीका अपनाएं:

  1. स्क्रोल करके एंट्री जोड़ें सेक्शन पर जाएं.
  2. नई एंट्री फ़ील्ड में, dragon टाइप करें और Enter दबाएं. यह कार्रवाई dragon कुंजी बनाती है.
  3. मान जोड़ें फ़ील्ड में hydra लिखें और Enter को मान के रूप में जोड़ने के लिए Enter दबाएं. इसके बाद, lizard वैल्यू के लिए यह तरीका दोहराएं.
  4. बाकी की कुंजियां और उनसे जुड़ी वैल्यू जोड़ें:
  • translator | translator, communicator, machine, decoder, और translate
  • compass | compass, direction, guide

8333b1b67445f21.png

  1. सेव करें पर क्लिक करें.

आपकी कार्रवाई अब यह समझ लेती है कि available_options ड्रैगन, अनुवादक और कंपास है. साथ ही, वह कुछ मिलते-जुलते समान शब्दों को भी पहचान सकता है.

स्लॉट भरने की सुविधा को कॉन्फ़िगर करें

इसके बाद, आपको Fortune सीन में स्लॉट भरने की सुविधा को कॉन्फ़िगर करना होगा. स्लॉट भरने के लॉजिक को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में, सीज़न के नीचे, फ़ॉर्चून पर क्लिक करें.
  2. Fortune स्लॉट में, स्लॉट फ़िलिंग के लिए + (प्लस का निशान) पर क्लिक करें.
  3. स्लॉट का नाम डालें फ़ील्ड में, स्लॉट के नाम के रूप में chosenOptions जोड़ें.
  4. प्रकार चुनें ड्रॉप-डाउन सूची में, स्लॉट प्रकार के रूप में available_options चुनें.
  5. यह स्लॉट ज़रूरी है चेकबॉक्स चुनें.

a461b906476e244.png

  1. 'Google के अनुरोध' भेजें चुनें और यहां दिए गए मैसेज और सुझाव वाले चिप जोड़ें:
candidates:
  - first_simple:
      variants:
        - speech: >-
            What do you choose to help you on your quest, a dragon, a
            translator, or a compass?
    suggestions:
      - title: 'Dragon'
      - title: 'Translator'
      - title: 'Compass'
  1. सेव करें पर क्लिक करें.

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

ध्यान दें कि जब आपने स्लॉट का नाम chosenOptions रखा है, तो पसंद के मुताबिक स्लॉट की वैल्यू फ़ील्ड के नाम को भी इसी नाम से अपडेट किया जाता है ($session.params.chosenOptions). आप इस पैरामीटर को ऐक्सेस कर सकते हैं. इसके लिए, Actions Builder में और क्लाइंट लाइब्रेरी में जाकर उसे पूरा करें.

scene.slots.status == "FINAL" शर्त कॉन्फ़िगर करें

जब आप कोई स्लॉट जोड़ते हैं, तो स्थिति scene.slots.status == "FINAL" को शर्त के साथ अपने-आप जोड़ दिया जाता है.

शर्त scene.slots.status == "FINAL" में स्लॉट भरने के लिए उसकी जांच की जाती है. सभी स्लॉट भरने के बाद, स्थिति वेबहुक को ट्रिगर कर सकती है, नए सीन पर ट्रांज़िशन कर सकती है या प्रॉम्प्ट सूची में अनुरोध जोड़ सकती है.

इस सेक्शन में, आप स्लॉट भर जाने के बाद प्रॉम्प्ट की सूची में अनुरोध जोड़ने के लिए, scene.slots.status == "FINAL" को कॉन्फ़िगर करते हैं.

इस अनुरोध को FINAL शर्त में जोड़ने के लिए, यह तरीका अपनाएं:

  1. विकल्प विंडो खोलने के लिए scene.slots.status == "FINAL" पर क्लिक करें.
  2. ईमेल भेजें चुनें और यहां बताया गया तरीका जोड़ें:
candidates:
  - first_simple:
      variants:
        - speech: You picked $session.params.chosenOptions.
  1. सेव करें पर क्लिक करें.

सिम्युलेटर में अपनी कार्रवाई जांचना

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

अपनी कार्रवाई की जांच करने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में, जांच करें पर क्लिक करें.
  2. Input फ़ील्ड में Talk to my test app क्लिक करें या लिखें और Enter दबाएं.
  3. इनपुट फ़ील्ड में Yes टाइप करें और Enter दबाएं. इसके अलावा, आप हां के सुझाव वाले चिप पर भी क्लिक कर सकते हैं.

a899d45c542668f6.png

  1. dragon पर क्लिक करें, टाइप करें या बोलें. आपको &कोटेशन मिला. अनुरोध मिला है

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

शर्तों का इस्तेमाल करके, अनुरोधों को पसंद के मुताबिक बनाना

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

dragon के भाग्य को पसंद के मुताबिक बनाएं

शर्त को अपडेट करने और उपयोगकर्ता के चुनने पर संकेत को पसंद के मुताबिक बनाने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में डेवलप करें पर क्लिक करें.
  2. नेविगेशन बार में, किस्मत वाले सीन पर क्लिक करें.
  3. विकल्प विंडो खोलने के लिए scene.slots.status == "FINAL" पर क्लिक करें.
  4. शर्त के स्टेटमेंट को इसमें अपडेट करें: scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
  5. ईमेल भेजें चुनें.
  6. कोड एडिटर में, ऐसे संकेत के साथ प्रॉम्प्ट को अपडेट करें:
candidates:
  - first_simple:
      variants:
        - speech: >-
            The people of Gryffinberg will be awestruck by the beauty and power
            of the ancient dragon. Much to your dismay, the townspeople fall
            into dispute over who will receive the honor of riding the dragon
            first. You return home from your quest without everlasting glory or
            a dragon.
  1. सेव करें पर क्लिक करें.

d31767232ad908bd.png

अब, जब कोई उपयोगकर्ता "dragon&quat; या ऐसी ही कोई चीज़ बोलता है, तो आपकी कार्रवाई उस चुनाव के आधार पर एक भाग्य प्रदान करती है. इसके बाद, बाकी बचे दो विकल्पों को जोड़ें.

translator के भाग्य को पसंद के मुताबिक बनाएं

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

  1. शर्त के बगल में मौजूद + (प्लस का निशान) पर क्लिक करें.
  2. scene.slots.status == "FINAL" && session.params.chosenOptions == "translator" को else if फ़ील्ड में जोड़ें.
  3. मैसेज भेजें चुनें.
  4. अपने कोड एडिटर में यह सूचना जोड़ें:
candidates:
  - first_simple:
      variants:
        - speech: >-
            With the help of the translator, the rival factions in Gryffinberg
            are finally able to communicate with each other and resolve their
            disputes. You will complete your quest to restore peace in the town.
            The translator will be used on many subsequent journeys across the
            earth. After its work is done, it retires honorably to a premier
            location in the Gryffinberg History Museum.
  1. सेव करें पर क्लिक करें.

c1af65e70dbf3dfe.png

compass के भाग्य को पसंद के मुताबिक बनाएं

शर्त जोड़ने और उपयोगकर्ता के चुनने पर संकेत को पसंद के मुताबिक बनाने के लिए, कोटेशन का यह तरीका अपनाएं:

  1. शर्त के बगल में मौजूद + (प्लस का निशान) पर क्लिक करें.
  2. scene.slots.status == "FINAL" && session.params.chosenOptions == "compass" को और टेक्स्ट बॉक्स में जोड़ें.
  3. मैसेज भेजें चुनें.
  4. कोड एडिटर में यह सूचना जोड़ें:
candidates:
  - first_simple:
      variants:
        - speech: >-
            The compass will help you find the mystical and ancient Library of
            Gryffinberg. Among its infinite stacks of dusty books, you find one
            entitled "Wisdom of the Ages". By the time you've read the
            50,000-page tome, the townspeople have forgotten their problems. You
            will write a second edition of "Wisdom of the Ages", but have
            limited commercial success.
  1. सेव करें पर क्लिक करें.

सिम्युलेटर में अपनी कार्रवाई जांचना

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

अपनी कार्रवाई की जांच करने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में, जांच करें पर क्लिक करें.
  2. इनपुट फ़ील्ड में Talk to my test app टाइप करें और Enter दबाएं.
  3. इनपुट फ़ील्ड में Yes टाइप करें और Enter दबाएं. इसके अलावा, आप हां के सुझाव वाले चिप पर क्लिक करें.
  4. Translator पर क्लिक करें, टाइप करें या बोलें.

29e17f950bd0dd71.png

आपको &कोटेशन, कोटेशन के विकल्प का सही विकल्प मिलेगा.

3. गेम लूप जोड़ें

इस सेक्शन में, अपनी कार्रवाई को कॉन्फ़िगर किया जाता है, ताकि उपयोगकर्ता कोई दूसरा विकल्प चुन सके और चुनने के बाद अलग किस्मत की बात सुनें. यह बदलाव, "क्या आप फिर से ब्राउज़ करना चाहते हैं; मैसेज के आखिर में है. इस लूप को बनाने के लिए, आप पहले बनाए गए yes और no इंटेंट का फिर से इस्तेमाल कर सकते हैं. साथ ही, उन्हें Again नाम के एक नए सीन में जोड़ सकते हैं.

Again सीन बनाएं

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

Again सीन बनाने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में डेवलप करें पर क्लिक करें.
  2. सीज़न के नीचे दिए गए + (प्लस का निशान) पर क्लिक करें.
  3. Again लिखें और Enter दबाएं.
  4. नेविगेशन बार में Again सीन पर क्लिक करें.
  5. Enter पर के आगे मौजूद + (प्लस का निशान) पर क्लिक करें.
  6. 'Google के अनुरोध' भेजें चुनें. इसके बाद, नीचे दिए गए निर्देशों और चिप को जोड़ें:
candidates:
  - first_simple:
      variants:
        - speech: >-
            That is what I see for you. Would you like to choose a different option and
            explore another future?
    suggestions:
      - title: 'Yes'
      - title: 'No'
  1. सेव करें पर क्लिक करें.

Fortune से Again सीन में ट्रांज़िशन जोड़ें

जब उपयोगकर्ता अपना भाग्य पूरा कर लेता है, तब बातचीत को नए Again सीन पर ले जाने की ज़रूरत होती है.

Fortune सीन से Again सीन में ट्रांज़िशन जोड़ने के लिए, यह तरीका अपनाएं:

  1. किस्मत वाले सीन पर क्लिक करें.
  2. विकल्प विंडो खोलने के लिए, पहली शर्त (scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon") पर क्लिक करें.
  3. स्क्रोल करें और ट्रांज़िशन में जाकर, Again चुनें.
  4. सेव करें पर क्लिक करें.
  5. विकल्प विंडो खोलने के लिए दूसरी शर्त पर क्लिक करें.
  6. स्क्रोल करें और ट्रांज़िशन में जाकर, Again चुनें.
  7. सेव करें पर क्लिक करें.
  8. विकल्प विंडो खोलने के लिए तीसरी शर्त पर क्लिक करें.
  9. स्क्रोल करें और ट्रांज़िशन में जाकर, Again चुनें.
  10. सेव करें पर क्लिक करें.

सिम्युलेटर में अपनी कार्रवाई जांचना

ऐसी स्थिति में, आपकी कार्रवाई को उपयोगकर्ता को उनका भविष्य मिलने के बाद यह सूचना देनी चाहिए: &कोटेशन;मैं आपके लिए यही देखता हूं. क्या आप कोई दूसरा विकल्प चुनना चाहते हैं और आने वाले समय में किसी दूसरे कोटेशन को एक्सप्लोर करना चाहते हैं;

अपनी कार्रवाई की जांच करने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में, जांच करें पर क्लिक करें.
  2. इनपुट फ़ील्ड में Talk to my test app टाइप करें और Enter दबाएं.
  3. इनपुट फ़ील्ड में Yes टाइप करें और Enter दबाएं. इसके अलावा, आप हां के सुझाव वाले चिप पर क्लिक करें.
  4. dragon पर क्लिक करें, टाइप करें या बोलें.

b299e9fed9aedb69.png

आपको ड्रैगन विकल्प और Again संकेत के लिए भाग्य मिलेगा.

इंटेंट जोड़ें और Again सीन पर ट्रांज़िशन करें

इस सेक्शन में, आप Again सीन में yes और no इंटेंट जोड़ते हैं, ताकि आपकी कार्रवाई यह समझ सके कि उपयोगकर्ता नया विकल्प चुनना चाहता है या नहीं. आप yes और no इंटेंट के लिए, सही ट्रांज़िशन भी जोड़ते हैं. yes इंटेंट, Fortune सीन में बदल जाता है, जबकि no इंटेंट सिस्टम सिस्टम End conversation में बदल जाता है.

Again सीन में इंटेंट और ट्रांज़िशन जोड़ने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में डेवलप करें पर क्लिक करें.
  2. Again सीन पर क्लिक करें.
  3. उपयोगकर्ता इंटेंट हैंडलिंग के बगल में मौजूद + (प्लस का निशान) पर क्लिक करें.
  4. इंटेंट ड्रॉप-डाउन मेन्यू से हां चुनें.
  5. ट्रांज़िशन ड्रॉप-डाउन मेन्यू में, Fortune चुनें.
  6. सेव करें पर क्लिक करें.

c2efba35ea881b0d.png

  1. उपयोगकर्ता इंटेंट हैंडलिंग के बगल में मौजूद + (प्लस का निशान) पर क्लिक करें.
  2. इंटेंट ड्रॉप-डाउन मेन्यू से नहीं चुनें.
  3. ट्रांज़िशन ड्रॉप-डाउन मेन्यू में से, बातचीत खत्म करें को चुनें.
  4. ईमेल भेजें चुनें और कोड एडिटर में यह सूचना जोड़ें:
candidates:
  - first_simple:
      variants:
        - speech: >-
            It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
  1. सेव करें पर क्लिक करें.

सिम्युलेटर में अपनी कार्रवाई जांचना

आपकी कार्रवाई को अब यह समझना चाहिए कि क्या उपयोगकर्ता नया विकल्प चुनना या बातचीत खत्म करना चाहता है.

yes इंटेंट की जांच करने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में, जांच करें पर क्लिक करें.
  2. इनपुट फ़ील्ड में Talk to my test app टाइप करें और Enter दबाएं.
  3. इनपुट फ़ील्ड में Yes टाइप करें और Enter दबाएं. इसके अलावा, आप हां के सुझाव वाले चिप पर क्लिक करें.
  4. किसी एक विकल्प पर क्लिक करें, टाइप करें या बोलें.
  5. इनपुट फ़ील्ड में Yes टाइप करें और Enter दबाएं.

5D0690332efe2e29.png

आपको एक अनुरोध मिलेगा, &कोटेशन; आप अपने मिशन, ड्रैगन, अनुवादक या कंपासबोकट में मदद करने के लिए क्या चुनते हैं;

no इंटेंट की जांच करने के लिए, यह तरीका अपनाएं:

  1. किसी एक विकल्प पर क्लिक करें, टाइप करें या बोलें.
  2. इनपुट फ़ील्ड में No लिखें और Enter दबाएं.

आपको End conversation सूचना मिलेगी: &kot;;हमें खुशी है कि आप अपनी पसंद से संतुष्ट हैं. आपकी तलाश के लिए शुभकामनाएं. अलविदा.

4. सहायक पाथ जोड़ें

आपने #39; मुख्य ऐक्शन बनाया है, ताकि ज़्यादातर उपयोगकर्ता आपकी कार्रवाई का इस्तेमाल करें. हालांकि, उपयोगकर्ता Fortune सीन के प्रॉम्प्ट का जवाब दे सकता है और &;अपने मिशन में आपकी मदद करने के लिए, आप किसी ड्रैगन, अनुवादक, या कंपासबार को कोट में किस तरह का विकल्प चुनना चाहते हैं: दिए गए विकल्पों में से कोई एक विकल्प न चुनें.

इस सेक्शन में, आप अपनी कार्रवाई को समझने के लिए कॉन्फ़िगर करते हैं. इससे आप यह समझ सकते हैं कि कोई उपयोगकर्ता & & " दिया गया & & quot; इस लॉजिक को कॉन्फ़िगर करने के लिए, आपको एक नया type बनाना होगा जिसमें ये अन्य विकल्प शामिल हों. साथ ही, एक नया इंटेंट, other_option हो, जो किसी उपयोगकर्ता के इनमें से किसी एक विकल्प से मेल खाने पर दिखे. आपको इंटेंट पैरामीटर की पहचान करने और उन्हें इकट्ठा करने के लिए, other_option इंटेंट के अंदर ट्रेनिंग के वाक्यांशों की जानकारी भी देनी होगी.

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

unavailable_options का टाइप बनाएं

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

unavailable_options टाइप बनाने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में डेवलप करें पर क्लिक करें.
  2. टाइप में + (प्लस का निशान) पर क्लिक करें.
  3. unavailable_options लिखें और Enter दबाएं.
  4. विकल्प खोलने के लिए unavailable_options पर क्लिक करें.
  5. एंट्री जोड़ें सेक्शन में, ये एंट्री और इससे जुड़ी वैल्यू डालें:

horse

horse, stallion, steed

magic

magic, enchanted, spells

money

money, cash, gold

phone

phone, cell, apps

आपकी की-वैल्यू टेबल कुछ इस तरह दिखनी चाहिए:

c9e119e0f5fb2a47.png

  1. सेव करें पर क्लिक करें.

other_option इंटेंट बनाएं

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

other_option इंटेंट बनाने और कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. कस्टम इंटेंट में + (प्लस का निशान) पर क्लिक करें.
  2. other_option लिखें और Enter दबाएं.
  3. विंडो खोलने के लिए other_option पर क्लिक करें.
  4. नीचे दिए गए ट्रेनिंग वाक्यांश जोड़ें और हर एक के बाद Enter दबाएं:
  • I want to use spells
  • I really really want to use a phone
  • magic!
  • cash
  • I want to ride a horse
  1. इंटेंट पैरामीटर जोड़ें सेक्शन में, पैरामीटर के नाम को chosenUnavailableOption में अपडेट करें.
  2. सेव करें पर क्लिक करें.

जब आप ट्रेनिंग के लिए वाक्यांश डालते हैं, तो ऐक्शन बिल्डर, spells, phone, magic, cash, और horse को unavailable_options टाइप से पहचान लेता है. साथ ही, उन शब्दों को अपने-आप हाइलाइट (एनोटेशन) करता है. ऐक्शन बिल्डर, इंटेंट पैरामीटर जोड़ें सेक्शन में इंटेंट पैरामीटर अपने-आप जोड़ देता है, जैसा कि इस इमेज में दिखाया गया है.

इंटेंट पैरामीटर की मदद से, आपको विकल्प का नाम निकालना और उसे प्रॉम्प्ट में इस्तेमाल करना आसान हो जाता है.

df61d4489f0910.png

Fortune सीन में other_option इंटेंट जोड़ें

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

Fortune सीन में other_option इंटेंट जोड़ने के लिए, यह तरीका अपनाएं:

  1. किस्मत वाले सीन पर क्लिक करें.
  2. उपयोगकर्ता इंटेंट हैंडलिंग के बगल में मौजूद + (प्लस का निशान) पर क्लिक करें.
  3. इंटेंट ड्रॉप-डाउन मेन्यू से other_option चुनें.
  4. ईमेल भेजें चुनें और यहां बताया गया तरीका जोड़ें:
candidates:
  - first_simple:
      variants:
        - speech: >-
            I have seen the future and a $intent.params.chosenUnavailableOption.original
            will not aid you on your journey. 

एक्सप्रेशन $intent.params.chosenUnavailableOption का मतलब इंटेंट पैरामीटर ऑब्जेक्ट है और $intent.params.chosenUnavailableOption.original से उस ऑब्जेक्ट और #39; के मान का पता चलता है. original property का मतलब ऐसे रॉ इनपुट से है जिसे उपयोगकर्ता बताता है.

  1. सेव करें पर क्लिक करें.

4bab1efbe21056aa.png

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

सिम्युलेटर में अपनी कार्रवाई जांचना

आपकी कार्रवाई को अब ठीक से जवाब देना चाहिए, जब कोई उपयोगकर्ता unavailable_options टाइप में दिए गए विकल्पों में से किसी एक को चुनता है और बताता है कि उपयोगकर्ता ने कौनसी मदद चुनी है. इसके बाद, आपकी कार्रवाई को उपयोगकर्ता को मूल विकल्पों (ड्रैगन, अनुवादक या कंपास) में से किसी एक को चुनने का संकेत देना चाहिए.

सिम्युलेटर में अपनी कार्रवाई को आज़माने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में, जांच करें पर क्लिक करें.
  2. इनपुट फ़ील्ड में Talk to my test app टाइप करें और Enter दबाएं.
  3. इनपुट फ़ील्ड में Yes टाइप करें और Enter दबाएं. इसके अलावा, आप हां के सुझाव वाले चिप पर क्लिक करें.
  4. इनपुट फ़ील्ड में magic टाइप करें और Enter दबाएं.

3a42c33eca435f32.png

आपने देखा हो कि दिए गए टेक्स्ट को इस्तेमाल करने से पहले, हो सकता है कि यह सही ( &_) ' & &साइज' में न हो. आप इन समस्याओं को इन सेक्शन में हल कर रहे हैं.

unavailable_options हैंडलर जोड़ें

unavailable_options टाइप के हिसाब से सही विकल्प से पहले &? सबसे पहले, आपको अपनी कार्रवाई को कॉन्फ़िगर करना होगा, ताकि कंसोल में हैंडलर को कॉल किया जा सके.

unavailable_options हैंडलर जोड़ने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में डेवलप करें पर क्लिक करें.
  2. Fortune सीन पर क्लिक करें.
  3. विंडो खोलने के लिए, उपयोगकर्ता इंटेंट हैंडलिंग में जाकर, other_option से मेल खाने पर पर क्लिक करें.
  4. मैसेज भेजें चेकबॉक्स को मिटाएं.
  5. अपने वेबहुक को कॉल करें चेकबॉक्स को चुनें.
  6. इवेंट हैंडलर के लिए टेक्स्ट बॉक्स में unavailable_options डालें.

52a0fba115f1b377.png

  1. सेव करें पर क्लिक करें.

ऑर्डर को पूरा करने के लिए अपडेट करें और उसे डिप्लॉय करें

अब जब आपने अपनी कार्रवाई #unavailable_options इवेंट हैंडलर को कॉल करने के लिए कर ली है, तो आप अपनी फ़ुलफ़िलर में हैंडलर अपडेट करके उसे डिप्लॉय कर सकते हैं.

ग्राहक को सामान भेजने की स्थिति अपडेट करने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में वेबहुक पर क्लिक करें.
  2. greeting हैंडलर के तहत यह कोड जोड़ें:
app.handle('unavailable_options', conv => {
  const option = conv.intent.params.chosenUnavailableOption.original;
  const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
  let message = 'I have seen the future and ';
  if(optionsNeedA.has(optionKey)){
    message = message + 'a ';
  }
  message = message + `${option} will not aid you on your journey. `;
  conv.add(message);
});
  1. const app = conversation(); के तहत यह कोड जोड़ें:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
  1. ग्राहक को बचाएं पर क्लिक करें.
  2. ग्राहक को डिलीवर करें पर क्लिक करें. डिप्लॉयमेंट पूरा हो जाने पर एडिटर के ऊपर एक मैसेज दिखता है, जिसमें लिखा है आपका क्लाउड फ़ंक्शन डिप्लॉयमेंट अप-टू-डेट है.

कोड को समझना

unavailable_options हैंडलर ये काम करता है:

  • conv ऑब्जेक्ट से option डेटा मिलता है और original प्रॉपर्टी को option असाइन करता है, जो कि उपयोगकर्ता का रॉ इनपुट है
  • resolved प्रॉपर्टी को optionKey असाइन करता है, जो unavailable_options टाइप की कुंजी है
  • देखें कि क्या optionKey उन विकल्पों में से एक है जिन्हें & & & "; की ज़रूरत है.
  • conv.add(message) से मैसेज जोड़ता है

सिम्युलेटर में अपनी कार्रवाई जांचना

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

अपनी कार्रवाई की जांच करने के लिए, यह तरीका अपनाएं:

  1. नेविगेशन बार में, जांच करें पर क्लिक करें.
  2. Input फ़ील्ड में Talk to my test app क्लिक करें या लिखें और Enter दबाएं.
  3. इनपुट फ़ील्ड में Yes टाइप करें और Enter दबाएं. इसके अलावा, आप हां के सुझाव वाले चिप पर क्लिक करें.
  4. इनपुट फ़ील्ड में magic टाइप करें और Enter दबाएं.
  5. इनपुट फ़ील्ड में horse टाइप करें और Enter दबाएं.

54ee24c5c3c56e.png

आपकी कार्रवाई में & वो & &कोटेशन के पहले विकल्प को जोड़ा जाना चाहिए. ऐसा करते समय &&ot;a&kot; विकल्प के बिना प्रॉम्प्ट बनाते समय.

अपने प्रोजेक्ट में जगह खाली करें [सुझाया गया]

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

  1. क्लाउड प्रोजेक्ट और संसाधनों को मिटाने के लिए, शट डाउन करें (मिटाएं) सेक्शन में दिए गए चरणों को पूरा करें.
  1. ज़रूरी नहीं: अपने प्रोजेक्ट को तुरंत कंसोल से हटाने के लिए, प्रोजेक्ट मिटाएं देखें. अगर आप यह चरण पूरा नहीं करते हैं, तो आपका प्रोजेक्ट करीब 30 दिनों के बाद अपने-आप हट जाएगा.

5. बधाई हो!

अब आपने Google Assistant के लिए, कार्रवाइयाँ बनाने के लिए मौजूद ज़रूरी कौशल के बारे में जान लिया है.

आपने क्या कवर किया

  • Node.js के लिए लाइब्रेरी का डेटा भेजने वाली लाइब्रेरी का इस्तेमाल करके, बातचीत वाली कार्रवाइयां बनाने का तरीका
  • उपयोगकर्ता से डेटा इकट्ठा करने के लिए स्लॉट का इस्तेमाल कैसे करें
  • सीन में तर्क जोड़ने के लिए, शर्तों का इस्तेमाल कैसे करें
  • गेम लूप जोड़ने का तरीका
  • सहायक पाथ जोड़ने का तरीका

ज़्यादा जानें

Google Assistant के लिए कार्रवाइयां बनाने के बारे में ज़्यादा जानने के लिए, इन संसाधनों को एक्सप्लोर करें:

हमारे नए एलानों के बारे में जानने के लिए, Twitter पर @ActionsGoogle पर जाएं और #AoGDevs को ट्वीट करें कि आप अपना क्या शेयर करना चाहते हैं!

सुझाव सर्वे

जाने से पहले, कृपया अपने अनुभव के बारे में एक छोटा सा सर्वे भरें.