ऑर्डर स्वीकार करना

अपने इंटेंट और सीन सेट अप करने के बाद, आपको Action Builder के अनुरोध और रिस्पॉन्स फ़ॉर्मैट में हुए बदलावों के हिसाब से, फ़ुलफ़िलमेंट कोड अपडेट करना होगा. आपके पास Actions Builder की अतिरिक्त सुविधाओं को इस्तेमाल करने का मौका भी है. इस पेज पर, ऑर्डर पूरा करने के लिए कोड को अपडेट करते समय, आम तौर पर अपनाए जाने वाले तरीके और ज़रूरी बातों के बारे में बताया गया है.

ग्राहक को आइटम भेजने के लिए आपने जो तरीका अपनाया है उसके बारे में सोचें

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

  • बातचीत लागू करने की प्रक्रिया में बदलाव करना

    • Dialogflow, इंटेंट के हिसाब से और कॉन्टेक्स्ट के हिसाब से बातचीत के फ़्लो का इस्तेमाल करता है, जहां अलग-अलग इंटेंट का मिलान, ट्रेनिंग वाले वाक्यांशों और पिछले इंटेंट के इनपुट/आउटपुट कॉन्टेक्स्ट के आधार पर किया जाता है.
    • Actions Builder में बातचीत वाले फ़्लो को कंटेनर के तौर पर सीन का इस्तेमाल किया जाता है. किसी सीन में, Dialogflow के कॉन्टेक्स्ट की तरह खास इंटेंट मैच किए जा सकते हैं. ट्रांज़िशन की मदद से यह तय होता है कि किस सीन पर जाना है. यह इस बात पर निर्भर करता है कि किस इंटेंट का मिलान किया गया है.
  • फिर से इस्तेमाल किए जा सकने वाले वेबहुक फ़ंक्शन

    • Dialogflow में, वेबहुक हैंडलर अलग-अलग इंटेंट से जुड़े होते हैं. अगर अतिरिक्त लॉजिक की ज़रूरत हो, तो नए फ़ंक्शन को मैनेज करने के लिए, आपको अलग से इंटेंट बनाना होगा.
    • Actions Builder में, वेबहुक हैंडलर के कस्टम हैंडलर नाम होते हैं. इस सुविधा की मदद से अपने प्रोजेक्ट में एक से ज़्यादा सीन से किसी फ़ंक्शन को कॉल किया जा सकता है.
  • वेबहुक शुरू करने के ज़्यादा तरीके

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

ऑर्डर पूरा करने का कोड अपडेट करें

हर कार्रवाई का फ़ुलफ़िलमेंट कोड, कार्रवाई की जटिलता और मकसद के आधार पर अलग-अलग होगा. हालांकि, अपने कोड को अपडेट करते समय कुछ सामान्य कार्रवाइयां करनी होंगी:

  1. क्लाइंट लाइब्रेरी का सबसे नया वर्शन डाउनलोड और इंस्टॉल करें.

    npm install @assistant/conversation
    
  2. अपने कोड में require स्टेटमेंट अपडेट करें. उदाहरण के लिए:

    const {
      SimpleResponse,
      BasicCard,
      Image,
    } = require('actions-on-google');
    

    ऊपर दिया गया कोड इससे अपडेट किया गया है:

    const {
      conversation,
      Simple,
      Card,
      Image,
    } = require('@assistant/conversation');
    
  3. नए तरीकों का इस्तेमाल करने के लिए, अपने कोड की रीफ़ैक्टर करें.

    • इंटेंट हैंडलर: app.intentapp.handle
    • जवाब/संकेत: conv.askconv.add
    • प्लैटफ़ॉर्म/डिवाइस की क्षमताएं: conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')conv.device.capabilities.includes('RICH_RESPONSE')
    • डेटा स्टोरेज: conv.dataconv.session.params
    • जवाब के टाइप:

      • SimpleResponseSimple
      • BasicCardCard
      • SuggestionsSuggestion
    • इंटेंट पैरामीटर: conv.parameters[KEY]conv.intent.parameters[KEY].resolved

    • कॉन्टेक्स्ट/सीन ट्रांज़िशन: conv.contexts.set(content_name, 5);conv.scene.next.name = 'context_name'

    • बातचीत खत्म करें: conv.close(response)conv.add.response; conv.scene.next.name = 'actions.page.END_CONVERSATION'

  4. बिल्डर के नए रिस्पॉन्स प्रिमिटिव का इस्तेमाल करने के लिए, रिस्पॉन्स कोड अपडेट करें. उदाहरण के लिए:

    conv.ask(new Suggestions (['a', 'b']));
    

    ऊपर दिया गया कोड इससे अपडेट किया गया है:

    for (suggestion of ['a', 'b']) {
      conv.add.(new Suggestion({title: suggestion}))
    }
    

तरीकों की पूरी सूची के लिए, नीचे खरीदारी के लिए कोड का अनुवाद करने वाला मैप देखें.

अनुरोध और रिस्पॉन्स पेलोड की तुलना करने के लिए, इन पेजों का इस्तेमाल करें:

वेबहुक सेट अप करना

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

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

  • कॉल करने के लिए इस्तेमाल किए जाने वाले इंटेंट के मिलान के बाद
  • किसी सीन के अंदर आने के दौरान
  • किसी सीन की स्थिति के स्टेज में स्थिति के सही होने के बाद
  • किसी सीन के स्लॉट फ़ाइल करने का स्टेज के दौरान
  • किसी सीन के इनपुट स्टेज में इंटेंट मैच होने के बाद

Dialogflow से Actions Builder पर माइग्रेट करते समय, आपको बातचीत के फ़्लो में होने वाले बदलावों को ध्यान में रखना होगा. ऐसा इसलिए, क्योंकि वेबहुक कॉल करने के दौरान और कहां बदलाव किया जा सकता है.

वेबहुक कॉल चालू करने के लिए, यह तरीका अपनाएं:

  1. वह सीन चुनें जहां से आपको वेबहुक पर कॉल करना है.
  2. वह राज्य चुनें जिसके लिए आपको वेबहुक चालू करना है. इनमें से एक या एक से ज़्यादा स्थितियों के लिए, वेबहुक को चालू किया जा सकता है:

    • प्रवेश करने पर
    • शर्त
    • स्लॉट भरना
    • उपयोगकर्ता के इंटेंट हैंडलिंग
    • सिस्टम इंटेंट हैंडलिंग
  3. अपने वेबहुक को कॉल करें विकल्प को चुनें.

  4. वह वेबहुक हैंडलर डालें जिसे आपने फ़ुलफ़िलमेंट कोड में तय किया है.

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

  6. अपने वेबहुक कॉल और फ़ुलफ़िलमेंट में किए गए बदलावों को आज़माने के लिए, जांच करें पर जाएं.

फ़ुलफ़िलमेंट कोड के अनुवाद का मैप

नीचे दी गई टेबल से पता चलता है कि Dialogflow का फ़ुलफ़िलमेंट कोड सिंटैक्स, Actions Builder कोड में कैसे बदल जाता है. तरीकों की पूरी सूची के लिए, Actions Builder और SDK टूल रेफ़रंस दस्तावेज़ देखें.

Dialogflow ऐक्शन बिल्डर
conv.data conv.session.params
conv.ask conv.add
conv.close conv.scene.next.name = 'actions.scene.END_CONVERSATION'
conv.user.storage conv.user.params
conv.input.raw conv.intent.query
conv.parameters conv.intent.params[key].resolved
conv.arguments.get('MEDIA_STATUS')
mediaStatus.status==='FINISHED'
conv.intent.params['MEDIA_STATUS']
mediaStatus.resolved==='FINISHED'
इवेंट सिस्टम इंटेंट हैंडलिंग:
MEDIA_STATUS_FINISHED
MEDIA_STATUS_FAILED
conv.device.capabilities.has("actions.capability.SCREEN_OUTPUT") conv.device.capabilities.includes("RICH_RESPONSE")
app.intent app.handler
app.middleware app.middleware
आसान जवाब prompt -firstSimple
बेहतर जवाब prompt -content -card: object -image: object -table: object -media: object -suggestions -link

दूसरे टूल के बारे में जानकारी नीचे दी गई है: