1. शुरू करने से पहले
इस कोडलैब में, आपको Dialogflow CX की मदद से, खुदरा कारोबार के लिए चैटबॉट बनाने का तरीका बताया जाएगा. Dialogflow CX, बातचीत वाले यूज़र इंटरफ़ेस (यूआई) बनाने के लिए, बातचीत वाला एआई प्लैटफ़ॉर्म (सीएआईपी) है. Dialogflow CX, वर्चुअल एजेंट लागू कर सकता है. जैसे: चैटबॉट, वॉइस बॉट, फ़ोन गेटवे. साथ ही, यह 50 से ज़्यादा भाषाओं में कई चैनलों के साथ काम कर सकता है.
इस कोडलैब में, आपको खुदरा कारोबार के लिए वेबसाइट चैटबॉट बनाने का तरीका बताया जाएगा. हम जिस काल्पनिक कारोबार के लिए चैटबॉट बना रहे हैं उसका नाम है: G-Records. G-Records, कैलिफ़ोर्निया में मौजूद एक रॉक रिकॉर्ड लेबल है. इस लेबल के साथ चार रॉक बैंड जुड़े हैं: ऐलिस गूगलर, जी'ज़ एन' रोज़ेज़, द गू फ़ाइटर्स, और द गूगल डॉल्स. G-Records, रॉक संगीत के सभी प्रशंसकों को बैंड का मर्चंडाइज़ बेच रहा है.
इस कोडलैब के आखिर में, चैटबॉट का इस्तेमाल करके शर्ट या संगीत का ऑर्डर दिया जा सकता है. इसके अलावा, अपने ऑर्डर के बारे में भी पूछा जा सकता है.

आपको क्या सीखने को मिलेगा
इस लैब को पूरा करने के बाद, आपको Dialogflow ES की तुलना में Dialogflow CX के फ़ायदों के बारे में पता चलेगा! इसमें ये कॉन्सेप्ट शामिल हैं:
- Google Cloud में Dialogflow CX वर्चुअल एजेंट बनाने का तरीका
- फ़्लो बनाने का तरीका जानें
- इकाइयां बनाने का तरीका जानें
- इंटेंट बनाने का तरीका जानें
- स्टेट हैंडलर की मदद से पेज और ट्रांज़िशन पेज बनाने का तरीका जानें
- इंटेंट रूट की मदद से पेजों को ट्रांज़िशन करने का तरीका जानें
- पैरामीटर और शर्त के हिसाब से राउटिंग का इस्तेमाल करके पेजों के बीच ट्रांज़िशन करने का तरीका जानें
- सिस्टम फ़ंक्शन की मदद से, शर्त के हिसाब से जवाब देने का तरीका जानें
- फ़ॉलबैक मैसेज बनाने का तरीका जानें
- सिम्युलेटर इस्तेमाल करने का तरीका जानें
- टेस्ट केस और टेस्ट कवरेज बनाने का तरीका जानें
Dialogflow CX एजेंट का फ़ाइनल डिज़ाइन ऐसा दिखेगा:

आपको किन चीज़ों की ज़रूरत होगी
- Dialogflow CX एजेंट बनाने के लिए, आपको Google Identity / Gmail पते की ज़रूरत होगी.
- Google Cloud का ऐक्सेस.
2. एनवायरमेंट सेटअप करना
Google Cloud प्रोजेक्ट बनाना
Dialogflow CX, Google Cloud में काम करता है. इसलिए, आपको Google Cloud प्रोजेक्ट बनाना होगा. प्रोजेक्ट, आपके सभी Google Cloud संसाधनों को व्यवस्थित करता है. इसमें सहयोगियों का एक सेट, चालू किए गए एपीआई (और अन्य संसाधन), मॉनिटरिंग टूल, बिलिंग की जानकारी, और पुष्टि करने और ऐक्सेस कंट्रोल करने की सुविधा शामिल होती है.
नया प्रोजेक्ट बनाते समय, आपको प्रोजेक्ट का नाम डालना होगा. इसके बाद, आपको इसे किसी मौजूदा बिलिंग खाते और संगठन से लिंक करना होगा.
बिलिंग खाते का इस्तेमाल यह तय करने के लिए किया जाता है कि संसाधनों के किसी सेट के लिए कौन पेमेंट करेगा. इसे एक या उससे ज़्यादा प्रोजेक्ट से लिंक किया जा सकता है. प्रोजेक्ट के इस्तेमाल का शुल्क, लिंक किए गए बिलिंग खाते से लिया जाता है. ज़्यादातर मामलों में, प्रोजेक्ट बनाते समय बिलिंग को कॉन्फ़िगर किया जाता है. ज़्यादा जानकारी के लिए, बिलिंग से जुड़ा दस्तावेज़ देखें. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो.

Dialogflow API चालू करना
Dialogflow का इस्तेमाल करने के लिए, आपको अपने प्रोजेक्ट के लिए Dialogflow API चालू करना होगा.
- वह प्रोजेक्ट चुनें जिसके लिए आपको एपीआई चालू करना है. इसके बाद, जारी रखें पर क्लिक करें.
- एपीआई और सेवाओं के मेन्यू को छोटा करें और क्रेडेंशियल बनाएं पर क्लिक करें
- ऐप्लिकेशन का डेटा पर क्लिक करें
- नहीं, मैं इनका इस्तेमाल नहीं कर रहा/रही हूं चुनें, क्योंकि फ़िलहाल Kubernetes Engine, App Engine या Cloud Functions का इस्तेमाल नहीं किया जा रहा है.
- हो गया पर क्लिक करें

नया Dialogflow CX एजेंट बनाना
नया Dialogflow CX एजेंट बनाने के लिए, सबसे पहले Dialogflow CX Console खोलें:
- पहले से बनाया गया Google Cloud प्रोजेक्ट चुनें.
- एजेंट बनाएं पर क्लिक करें.
एजेंट की बुनियादी सेटिंग के लिए यह फ़ॉर्म भरें:
- कोई भी डिसप्ले नेम चुना जा सकता है.
- जगह के तौर पर यह चुनें: us-central1
- अपनी पसंद का समय क्षेत्र चुनें.
- डिफ़ॉल्ट भाषा के तौर पर en - English को चुनें
बनाएं पर क्लिक करें.

ठीक है, अब हम तैयार हैं. अब हम अपने वर्चुअल एजेंट को मॉडल करना शुरू कर सकते हैं.
3. फ़्लो
जटिल डायलॉग में, अक्सर बातचीत के कई विषय शामिल होते हैं. G-Records के लिए, बैंड का सामान बेचने के लिए बनाए जा रहे चैटबॉट के मामले में, हमारे पास प्रॉडक्ट कैटलॉग, पेमेंट, ऑर्डर की स्थिति, और ग्राहक सेवा से जुड़े सवालों के बारे में बातचीत होगी. हम बातचीत के इन विषयों को फ़्लो में बांट सकते हैं.

फ़्लो की मदद से टीमें, बातचीत के अलग-अलग पाथ पर काम कर सकती हैं. फ़्लो को आसान बनाना एक अच्छा तरीका है, ताकि यह स्क्रीन पर आसानी से फ़िट हो जाए और ज़्यादा मॉड्यूलर हो.
फ़्लो, Dialogflow CX के लिए एक नई सुविधा है. Dialogflow Essentials में मेगा एजेंट का कॉन्सेप्ट है, जो किसी न किसी तरह से फ़्लो से मिलते-जुलते हैं. हालांकि, आपको फ़्लो का इस्तेमाल ज़्यादा बार करना होगा.
इस लैब में बाद में, हम स्टेट हैंडलर का इस्तेमाल करेंगे. ये हैंडलर, फ़्लो को खत्म कर सकते हैं, ताकि यह अगले या पिछले फ़्लो पर वापस जा सके. इसके अलावा, पूरे एजेंट सेशन को खत्म किया जा सकता है.
आइए, कुछ फ़्लो बनाएं.
फ़्लो बनाना
- Dialogflow CX में, + आइकॉन > फ़्लो बनाएं पर क्लिक करें.
- नाम डालें:
Catalogऔर Enter दबाएं.

आपका पहला फ़्लो कैटलॉग बना दिया गया है. अब अन्य फ़्लो बनाएं:
Order ProcessMy OrderCustomer Care

इस लैब में बाद में, हम पेज के स्टेटस हैंडलर सेट करेंगे. इससे यह पक्का किया जा सकेगा कि विज़ुअलाइज़ेशन आखिर में इस तरह दिखे:

सिम्युलेटर
Dialogflow CX Console की दाईं ओर, वर्चुअल एजेंट को टेस्ट किया जा सकता है. इसके लिए, बिल्ट-इन सिम्युलेटर का इस्तेमाल करें. बातचीत की शुरुआत से या किसी खास फ़्लो से बातचीत की जांच की जा सकती है.
- अपनी स्क्रीन पर सबसे ऊपर दाईं ओर मौजूद, टेस्ट एजेंट बटन पर क्लिक करें.
- 'एजेंट से बात करें' फ़ील्ड में लिखें:
Helloवर्चुअल एजेंट, डिफ़ॉल्ट वेलकम मैसेज के साथ जवाब देगा: नमस्ते! मैं आपकी क्या मदद कर सकता हूं?

आइए, वेलकम मैसेज के इस डिफ़ॉल्ट टेक्स्ट में बदलाव करें.
डिफ़ॉल्ट रूप से शुरू होने वाला फ़्लो
आइए, सबसे पहले एक इंटेंट रूट बनाएं. यह वर्चुअल एजेंट को नमस्ते कहने पर ट्रिगर होगा.
- बाईं ओर मौजूद बनाएं > फ़्लो साइडबार में, डिफ़ॉल्ट स्टार्ट फ़्लो पर क्लिक करें. इसके बाद, स्टार्ट ट्री नोड चुनें.
इससे शुरू करें पेज खुलेगा. इसने बनाएं > पेज साइडबार सेक्शन में, स्टार्ट पेज को अपने-आप चुन लिया.
- शुरू करें > रूट में जाकर, डिफ़ॉल्ट वेलकम इंटेंट पर क्लिक करें.
इंटेंट, असली उपयोगकर्ता के बातचीत के एक टर्न के मकसद को कैटगरी में बांटता है. Dialogflow CX में, इंटेंट को स्टेट हैंडलर का हिस्सा बनाया जा सकता है, ताकि अगले ऐक्टिव पेज या फ़ुलफ़िलमेंट को रूट किया जा सके
- एजेंट ने कहा वाली सभी एंट्री हटाएं और यह नया टेक्स्ट जोड़ें:
Welcome, I am the virtual agent of G-Records, a fictional rock label. You can order artists merchandise, ask questions about your order or shipping, and I can tell you more which artists are currently signed with us. How can I help?
बातचीत को आसान बनाने के लिए, हमें स्मार्ट जवाब के कुछ बटन / सुझाव चिप की भी ज़रूरत होगी.
- डायलॉग का विकल्प जोड़ें > कस्टम पेलोड पर क्लिक करें और नीचे दिए गए कोड स्निपेट का इस्तेमाल करें.
- नीचे दिए गए कोड स्निपेट को कस्टम पेलोड के तौर पर इस्तेमाल करें. इसके बाद, सेव करें पर क्लिक करें.
कस्टम पेलोड के बारे में ज़्यादा जानने के लिए, दस्तावेज़ पढ़ें.
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Which artists?"
},
{
"text": "Which products?"
},
{
"text": "About my order..."
}
]
}
]
]
}

- सिम्युलेटर में जाकर, वेलकम इंटेंट को टेस्ट करें.
आपको शायद यह लग रहा होगा कि आपको कोई रिच कॉन्टेंट क्यों नहीं दिख रहा है. ऐसा इसलिए है, क्योंकि सुझाव वाले चिप जैसे रिच कॉन्टेंट के लिए इंटिग्रेशन ज़रूरी होता है. इन चरणों को पूरा करने के लिए, बिलिंग खाते की ज़रूरत होती है. हालांकि, अगर आपके पास बिलिंग खाता नहीं है, तो इन चरणों को छोड़ा जा सकता है.
- बाईं ओर मौजूद साइडबार में, मैनेज करें > इंटिग्रेशन पर क्लिक करें.
- Dialogflow Messenger चुनें और कनेक्ट करें पर क्लिक करें.
- पॉप-अप में, चालू करें पर क्लिक करें.

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

- इसे अभी आज़माएं लिंक पर क्लिक करें.
- चैट विंडो खोलने के लिए, सबसे नीचे दाईं ओर मौजूद चैटबॉट आइकॉन पर क्लिक करें. बातचीत शुरू करने के लिए,
Helloलिखें.

फ़िलहाल, सुझाव वाले चिप पर क्लिक करने पर, वर्चुअल एजेंट को यह समझ नहीं आएगा कि आपका क्या मतलब है. ऐसा इसलिए है, क्योंकि हमारा वर्चुअल एजेंट अब तक एक से दूसरी स्थिति में स्विच नहीं कर रहा है. Dialogflow CX में, पेजों की मदद से ऐसा किया जा सकता है. चलिए, लैब को जारी रखते हैं. हम सबसे पहले कुछ इकाई और इंटेंट बनाएंगे.
4. इकाई के टाइप
इकाई के टाइप का इस्तेमाल यह कंट्रोल करने के लिए किया जाता है कि असली उपयोगकर्ता के इनपुट से डेटा कैसे निकाला जाए. Dialogflow CX के इकाई टाइप, Dialogflow ES के इकाई टाइप से काफ़ी मिलते-जुलते हैं. Dialogflow, पहले से तय की गई सिस्टम एंटिटी उपलब्ध कराता है. ये एंटिटी, कई सामान्य तरह के डेटा से मेल खा सकती हैं. उदाहरण के लिए, तारीखों, समय, रंगों, ईमेल पतों वगैरह का मिलान करने के लिए सिस्टम एंटिटी होती हैं. कस्टम डेटा को मैच करने के लिए, अपनी कस्टम इकाइयां भी बनाई जा सकती हैं.
आइए, फ़्लो में पेजों को डिज़ाइन करने से पहले, सभी कस्टम एंटिटी तैयार करें. हम इन इकाइयों को बनाएंगे:

इकाइयां बनाना
आइए, कलाकार इकाई बनाएं.
- मैनेज करें > इकाई के टाइप पर क्लिक करें
- + बनाएं पर क्लिक करें
- डिसप्ले नेम:
Artist - इकाइयां:
The Google Dolls(समानार्थी शब्द के साथ:Google Dolls)The Goo Fighters(समानार्थी शब्द के साथ:Goo Fighters)G's N' Roses(समानार्थी शब्द के साथ:Gs and Roses)Alice Googler- ऐडवांस विकल्प पर क्लिक करें और फ़ज़ी मैचिंग को चुनें. (अगर आपने बैंड का नाम गलत लिखा है, तो भी यह सही इकाई से मैच हो सकता है.)
- बेहतर विकल्पों में जाकर, लॉग में बदलाव करें को भी चुनें. (अगर आपने बैंड का नाम गलत लिखा है, तो यह लॉग में नाम को सही कर देगा.)
- सेव करें पर क्लिक करें
हमें Merch आइटम के लिए भी एक इकाई की ज़रूरत होगी:
- मैनेज करें > इकाई के टाइप पर क्लिक करें
- + बनाएं पर क्लिक करें
- डिसप्ले नेम:
Merch - इकाइयां:
T-shirtLongsleeve(समानार्थी शब्द के साथ:Longsleeve shirt)Tour MovieDigital Album(समानार्थी शब्द:MP3 Album,MP3)CD(समानार्थी शब्दDisc,Physical CDके साथ)
- सेव करें पर क्लिक करें
हमें एल्बम के लिए भी एक इकाई की ज़रूरत होगी:
- मैनेज करें > इकाई के टाइप पर क्लिक करें
- + बनाएं पर क्लिक करें
- डिसप्ले नेम:
Album - इकाइयां:
LiveGreatest Hits(समानार्थी शब्द के साथ:Hits)
- सेव करें पर क्लिक करें
हमें कपड़ों के साइज़ के लिए भी एक इकाई की ज़रूरत होगी:
- मैनेज करें > इकाई के टाइप पर क्लिक करें
- + बनाएं पर क्लिक करें
- डिसप्ले नेम:
ShirtSize - इकाइयां:
XS(समानार्थी शब्द के साथ:Extra Small)S(समानार्थी शब्द के साथ:Small)M(समानार्थी शब्द के साथ:Medium)L(समानार्थी शब्द के साथ:Large)XL(समानार्थी शब्द के साथ:Extra Large)2XL(समानार्थी शब्द के साथ:Extra Extra Large)3XL
- सेव करें पर क्लिक करें
साथ ही, ऑर्डर नंबर के लिए एक इकाई, जिसमें आम तौर पर चार अल्फ़ान्यूमेरिक और तीन नंबर होते हैं. (जैसे, ABCD123)
- मैनेज करें > इकाई के टाइप पर क्लिक करें
- + बनाएं पर क्लिक करें
- डिसप्ले नेम:
OrderNumber - रेगुलर एक्सप्रेशन वाली इकाइयां
- इकाई: [A-Z]{4}[0-9]{3}
- सेव करें पर क्लिक करें
आपका इकाई कॉन्फ़िगरेशन, कुछ ऐसा दिखना चाहिए:
@कलाकार: 
@Merch: 
@Album: 
@ShirtSize: 
@OrderNumber: 
कस्टम एंटिटी तैयार होने के बाद, हम इंटेंट तैयार कर सकते हैं. चलिए, लैब जारी रखें.
5. मूड
इंटेंट से, असली उपयोगकर्ता के बातचीत के एक टर्न के मकसद का पता चलता है. Dialogflow CX में, इन्हें काफ़ी आसान बना दिया गया है. अब ये बातचीत को कंट्रोल करने के लिए बिल्डिंग ब्लॉक नहीं हैं. Dialogflow CX, उपयोगकर्ताओं के कहे गए शब्दों से मैच करने के लिए सिर्फ़ इंटेंट का इस्तेमाल करता है. Dialogflow ES में, आपको हर चीज़ को किसी इंटेंट से जोड़ना होता था. जैसे, पैरामीटर, इवेंट, फ़ुलफ़िलमेंट वगैरह. Dialogflow CX में इंटेंट में सिर्फ़ ट्रेनिंग फ़्रेज़ होते हैं. इसलिए, इनका दोबारा इस्तेमाल किया जा सकता है. अब यह बातचीत को कंट्रोल नहीं करता. इसलिए, इंटेंट बनाने की प्रोसेस सीधी होगी:
इरादों में मौजूद ट्रेनिंग फ़्रेज़, इकाइयों का इस्तेमाल करके ‘वैरिएबल' इनपुट निकाल सकते हैं. इसलिए, अपने इकाई टाइप पहले से बना लेना एक अच्छा तरीका है. हमने लैब के चरणों के पिछले पेज पर ऐसा ही किया था.
इंटेंट बनाना
आइए, फ़्लो में पेजों को डिज़ाइन करने से पहले, सभी इंटेंट तैयार करें.
- मैनेज करें > इंटेंट पर क्लिक करें.
- + बनाएं पर क्लिक करें
यह जानकारी इस्तेमाल करें:
- डिसप्ले नेम
redirect.artists.overview - ब्यौरा
Artists overview: The bands supported by the label

नीचे की ओर स्क्रोल करें और ये ट्रेनिंग फ़्रेज़ बनाएं:
Which bands are signed?Which bandsWhich artistsWhich artists are part of the record labelWho is part of the labelFrom which bands can I buy merchandiseBand merchandiseWhich music do you have?I would like to know who are signed to the labelWho are supported by the labelFrom who can I buy shirtsWhat music can I orderCan I get an overview of all the artists

- सेव करें पर क्लिक करें.
- अब हम आगे बढ़ते हैं और अन्य सभी इंटेंट बनाते हैं. ज़्यादा ट्रेनिंग फ़्रेज़ बनाने के लिए, अपनी कल्पना का इस्तेमाल करें. सबसे सही तरीका यह है कि हर इंटेंट के लिए कम से कम 10 ट्रेनिंग फ़्रेज़ हों, ताकि यह पता चल सके कि कोई उपयोगकर्ता उस इंटेंट को किन-किन तरीकों से ट्रिगर कर सकता है. इस लैब के लिए, कम संख्या में भी डेटा उपलब्ध कराया जा सकता है.
इन बातों का ध्यान रखें:
- ध्यान दें कि ट्रेनिंग फ़्रेज़ डालते ही, Dialogflow CX आपकी इकाइयों को अपने-आप एनोटेट कर देगा. अगर ऐसा नहीं होता है, तो आपको अपनी इकाई को अपडेट करना पड़ सकता है. इसके लिए, आपको कोई समानार्थी शब्द जोड़ना होगा या ट्रेनिंग फ़्रेज़ को खुद मैन्युअल तरीके से एनोटेट करना होगा.
- छोटे ट्रेनिंग फ़्रेज़: Dialogflow का NLU सिस्टम, छोटे ट्रेनिंग फ़्रेज़ के साथ भी काम कर सकता है. हमने यहां कुछ उदाहरण दिए हैं.
- ज़रूरत से ज़्यादा ट्रेनिंग: किसी इंटेंट के लिए बहुत ज़्यादा ट्रेनिंग फ़्रेज़ इस्तेमाल करने से, ज़रूरत से ज़्यादा ट्रेनिंग हो सकती है और इससे बेहतर नतीजे नहीं मिलते. सबसे सही तरीका यह है कि बार-बार और धीरे-धीरे टेस्टिंग की जाए. साथ ही, अगर कोई इंटेंट मैच नहीं होता है, तो ट्रेनिंग के लिए वाक्यांश जोड़े जाएं.
डिसप्ले नेम | ट्रेनिंग के लिए वाक्यांश |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
अब हमारे रीयूज़ किए जा सकने वाले एलिमेंट (फ़्लो, इकाइयां, और इंटेंट) तैयार हैं. इसलिए, हम पेज और स्टेट हैंडलर बनाकर इन्हें एक साथ रख सकते हैं.
6. पेज और स्टेट हैंडलर
Dialogflow CX बातचीत (एक सेशन) को फ़ाइनाइट स्टेट मशीन के तौर पर दिखाया जा सकता है. उदाहरण के लिए, वेंडिंग मशीन को फ़ाइनिट स्टेट मशीन के तौर पर मॉडल किया जा सकता है. इसकी ये स्थितियां होती हैं: सिक्कों का इंतज़ार करना, कैंडी चुनना, कैंडी देना. इनपुट के सेट के आधार पर, यह इन स्थितियों के बीच स्विच करता है. उदाहरण के लिए, सिक्का डालने पर वेंडिंग मशीन की स्थिति, 'सिक्कों का इंतज़ार किया जा रहा है' से बदलकर 'कैंडी चुनें' हो जाती है. पेज की मदद से, हम Dialogflow CX वर्चुअल एजेंट के लिए इन स्थितियों को मॉडल कर सकते हैं.
जब कोई असली उपयोगकर्ता, बातचीत में Dialogflow CX के साथ इंटरैक्ट करता है, तो बातचीत एक पेज से दूसरे पेज पर चली जाती है. इसलिए, किसी भी समय सिर्फ़ एक पेज, मौजूदा पेज होता है. मौजूदा पेज को सक्रिय माना जाता है. साथ ही, उस पेज से जुड़े फ़्लो को भी सक्रिय माना जाता है.
हर फ़्लो के लिए, कई पेज तय किए जाते हैं. इन पेजों पर, फ़्लो के लिए डिज़ाइन किए गए विषय या विषयों के बारे में पूरी बातचीत की जा सकती है. हर फ़्लो का एक खास शुरुआती पेज होता है. जब कोई फ़्लो पहली बार चालू होता है, तो स्टार्ट पेज, मौजूदा पेज बन जाता है. बातचीत के हर चरण में, मौजूदा पेज वही रहेगा या किसी दूसरे पेज पर रीडायरेक्ट हो जाएगा. इस कॉन्सेप्ट की मदद से, ज़्यादा पेजों और बातचीत के कई चरणों वाले बड़े एजेंट बनाए जा सकेंगे.
पेजों में फ़ुलफ़िलमेंट (स्टैटिक एंट्री डायलॉग और/या वेबहुक), पैरामीटर, और स्टेट हैंडलर शामिल होते हैं. बातचीत को कंट्रोल करने के लिए, स्टेट हैंडलर का इस्तेमाल किया जाता है. इससे, आपको अलग-अलग ट्रांज़िशन रूट बनाने की सुविधा मिलती है. इनकी मदद से, किसी दूसरे Dialogflow CX पेज पर ट्रांज़िशन किया जा सकता है. साथ ही, इसे शर्त के साथ भी बनाया जा सकता है, ताकि बातचीत को अलग-अलग हिस्सों में बांटा जा सके.
किसी बातचीत की स्थिति को कंट्रोल किया जाता है. इसके लिए, तीन अलग-अलग तरह के रास्तों का इस्तेमाल करके, पेजों के बीच ट्रांज़िशन को मैनेज किया जाता है:
- इंटेंट रूट: जब किसी इंटेंट को मैच किया जाना चाहिए. उदाहरण के लिए, असली उपयोगकर्ता के कहे गए शब्दों के आधार पर पेज बदलना. (विज़ुअल डायग्राम में नीली लाइनें.)
- शर्त के हिसाब से रूट: जब किसी शर्त की जांच की जानी चाहिए.उदाहरण के लिए, सेशन में सेव किए गए कुछ पैरामीटर के आधार पर पेज बदलना. (विज़ुअल डायग्राम में नारंगी रंग की लाइनें.)
- इवेंट हैंडलर: जब किसी फ़ॉलबैक इवेंट को हैंडल किया जाना चाहिए. उदाहरण के लिए, कोई इनपुट न मिलने या कोई मैच न मिलने पर, इवेंट हैंडलर का इस्तेमाल किया जाता है. इससे, उपयोगकर्ता को किसी इंटेंट या शर्त के बारे में साफ़ तौर पर पता चलता है. (विज़ुअल डायग्राम में हरी लाइनें.)
बातचीत के दौरान बोले गए शब्दों (यानी कि उपयोगकर्ता को दिया गया कॉन्टेंट या जवाब) को फ़ुलफ़िलमेंट तय करता है. यह स्टैटिक या डाइनैमिक हो सकता है:
- स्टैटिक फ़ुलफ़िलमेंट: जब स्टैटिक फ़ुलफ़िलमेंट का जवाब दिया जाता है
- डाइनैमिक फ़ुलफ़िलमेंट: जब डाइनैमिक जवाबों के लिए फ़ुलफ़िलमेंट वेबहुक को कॉल किया जाता है
हमारा खुदरा बॉट, कुछ इंटेंट रूट बनाएगा और कुछ स्टैटिक एंट्री फ़ुलफ़िलमेंट जवाब देगा. ये जवाब, पेज के चालू होते ही उपयोगकर्ता को दिखाए जाएंगे. बाद में, हम शर्तों के हिसाब से रूट वाले पैरामीटर बनाएंगे, ताकि आपको मर्चंडाइज़ का ऑर्डर देने के लिए ज़रूरी जानकारी मिल सके.
पेज के इंटेंट रूट
डिफ़ॉल्ट स्टार्ट फ़्लो में पेज बनाना
यहां डिफ़ॉल्ट रूप से शुरू होने वाले फ़्लो का फ़्लो चार्ट दिया गया है:

आइए, इस पर एक साथ क्लिक करें:
- बनाएं > डिफ़ॉल्ट स्टार्ट फ़्लो पर क्लिक करें
- स्टार्ट पेज पर क्लिक करें
- रास्ते के बगल में मौजूद, + आइकॉन पर क्लिक करें
- redirect.artists.overview जोड़ें
- नीचे की ओर स्क्रोल करके ट्रांज़िशन पर जाएं. इसके बाद, कैटलॉग फ़्लो पर जाएं.
- सेव करें पर क्लिक करें
- ऊपर दिया गया तरीका, इस टेबल की
redirect.product.overviewऔर अन्य 11 पंक्तियों के लिए दोहराएं:
पेज (इन फ़्लो) | रूट > इंटेंट | रास्ते > इस पर ट्रांज़िशन करें |
शुरू करें |
| - |
शुरू करें |
| फ़्लो: कैटलॉग |
शुरू करें |
| फ़्लो: कैटलॉग |
शुरू करें |
| फ़्लो: कैटलॉग |
शुरू करें |
| फ़्लो: कैटलॉग |
शुरू करें |
| फ़्लो: कैटलॉग |
शुरू करें |
| फ़्लो: कैटलॉग |
शुरू करें |
| फ़्लो: ग्राहक सेवा |
शुरू करें |
| फ़्लो: ग्राहक सेवा |
शुरू करें |
| फ़्लो: ग्राहक सेवा |
शुरू करें |
| फ़्लो: मेरा ऑर्डर |
शुरू करें |
| फ़्लो: मेरा ऑर्डर |
शुरू करें |
| फ़्लो: मेरा ऑर्डर |
शुरू करें |
| पेज: सेशन खत्म करें |

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

कैटलॉग फ़्लो में पेज बनाना
चैट की यह ट्रांसक्रिप्ट, कैटलॉग फ़्लो से जुड़ी है:
> "Hi"
"Welcome, I am the virtual agent of G-Records, a fictional rock label.
You can order artists merchandise, ask questions about your order or shipping,
and I can tell you more which artists are currently signed with us. How can I help?"
> "Which bands are signed with this record label?"
"The following bands are signed with G-Records:
Alice Googler, G's N' Roses, The Goo Fighters and The Google Dolls.
From which of these artists would you like to order merchandise?"
> "Alice Googler"
"You want to rock with Alice Googler merchandise. Awesome!
We sell shirts, music or the tour movie.
Which merchandise item do you want?"
"(Suggestion chips: [Shirts] [Music] [Tour Movie])"
> "I would like to buy a Shirt"
"Do you want a longsleeve or a t-shirt?"
"(Suggestion chips: [T-shirt, Longsleeve, Price?])"
> "What's the price difference?"
"A t-shirt costs $25 and a longsleeve costs $30.
Do you want a longsleeve or a t-shirt?"
> "A t-shirt",
"What shirt size do you want?"
"(Suggestion chips: [XS, S, M, L, XL, 2XL, 3XL])"
> "M"
"A T-shirt of Alice Googler size: M costs $25. Shall I continue to order?"
संगीत या टूर मूवी चुनने पर, डायलॉग अलग होगा: संगीत के लिए डायलॉग ऐसा दिखेगा:
> "Music"
"We have a Greatest Hits Album or the Live Album. Which one do you want?"
"(Suggestion chips: [Greatest Hits, Live, Price?])"
> "The Live Album"
"Do you want this album on CD or MP3?"
"(Suggestion chips: [CD, MP3])"
> "What's the price difference?"
"A CD costs $15. The digital album on MP3 costs $10.
Do you want this album on CD or MP3?"
> "Digital Album",
"The Digital Album: Alice Googler - Live costs $10. Shall I continue to order?"
टूर मूवी के लिए डायलॉग कुछ ऐसा दिखेगा:
> "Tour Movie"
"The Tour Movie of G's N' Roses costs $25. Shall I continue to order?
कैटलॉग फ़्लो में मौजूद सभी पेजों का फ़्लो चार्ट यहां दिया गया है:

इस फ़्लो की जटिलता पर ध्यान दें:
- मैं कौनसे कलाकार का सवाल स्किप करके, सीधे "कौनसे मर्चेंडाइज़ आइटम उपलब्ध हैं" पूछ सकता/सकती हूं.
- डिफ़ॉल्ट स्टार्ट फ़्लो में, मैं यह पूछ सकता/सकती हूं: "मुझे The Google Dolls की टी-शर्ट खरीदनी है" या "मुझे कुछ खरीदना है". इसका मतलब है कि वर्चुअल एजेंट, इन ज़रूरी पैरामीटर के स्लॉट भरने के लिए, फ़ॉलो अप सवाल पूछेगा. इससे सीधे प्रॉडक्ट पेज पर जाया जा सकता है.
- कीमत वाला डायलॉग, कीमत वाले पेज से आता है. इसका फिर से इस्तेमाल किया जाएगा.
- हालांकि, टूर मूवी के लिए डायलॉग सबसे आसान लग रहा है, लेकिन हम इसके साथ कुछ खास करेंगे. हम बातचीत के इस हिस्से का फिर से इस्तेमाल करेंगे, ताकि अगर उपयोगकर्ताओं को एक ही बार में सारी जानकारी मिल जाए, तो वे सीधे तौर पर किसी दूसरे प्रॉडक्ट के लिए भी इसे डाल सकें:
> "I want The Goo Fighters longsleeve size S."
"The longsleeve of The Goo Fighters size S costs $30. Shall I continue to order?"
सबसे पहले, पेजों को कनेक्ट करने से शुरू करते हैं.
- बनाएं > कैटलॉग पर क्लिक करें
- स्टार्ट पेज पर क्लिक करें
- रास्ते के बगल में मौजूद, + आइकॉन पर क्लिक करें
- redirect.artists.overview जोड़ें
- नीचे की ओर स्क्रोल करके ट्रांज़िशन पर जाएं. इसके बाद, पेज को चुनें और + नया पेज चुनें
- पेज का नाम इस्तेमाल करें:
Artist Overviewऔर सेव करें पर क्लिक करें
अब बाकी प्रोसेस पूरी करें:
- ऊपर दिए गए चरणों को, यहां दिए गए पेजों, इंटेंट, और फ़ुलफ़िलमेंट के लिए दोहराया जा सकता है. इस टेबल को टेक ओवर करें. पेज, वह पेज है जिसे आपको फ़्लो में चुनना है. रास्ते > इस पर ट्रांज़िशन करें वह नया फ़्लो या पेज है जिसे आपको बनाना है और उस पर ट्रांज़िशन करना है.
पेज (इन फ़्लो) | रूट > इंटेंट | रास्ते > इस पर ट्रांज़िशन करें |
कैटलॉग देखना शुरू किया |
| कलाकार की खास जानकारी |
कैटलॉग देखना शुरू किया |
| प्रॉडक्ट |
कैटलॉग देखना शुरू किया |
| प्रॉडक्ट की खास जानकारी |
कैटलॉग देखना शुरू किया |
| प्रॉडक्ट की खास जानकारी |
कैटलॉग देखना शुरू किया |
| शर्ट |
कैटलॉग देखना शुरू किया |
| संगीत |
कैटलॉग देखना शुरू किया |
| सेशन खत्म करें |
कैटलॉग देखना शुरू किया |
| फ़्लो खत्म करें |
कलाकार की खास जानकारी |
| प्रॉडक्ट की खास जानकारी |
अब आगे बढ़ते हैं और स्टैटिक फ़ुलफ़िलमेंट की सुविधा जोड़ते हैं.
- कैटलॉग फ़्लो में, कलाकार की खास जानकारी पेज पर क्लिक करें.
- प्रतियोगिता में हिस्सा लेने की ज़रूरी शर्तें सेक्शन में जाकर, ज़रूरी शर्तों में बदलाव करें पर क्लिक करें.
- यहां दिए गए स्टैटिक फ़ुलफ़िलमेंट (एजेंट कहता है) का इस्तेमाल करें:
The following bands are signed with G-Records: Alice Googler, G's N' Roses, The Goo Fighters and The Google Dolls.
- सेव करें पर क्लिक करें
- कैटलॉग फ़्लो में, प्रॉडक्ट की खास जानकारी पेज पर क्लिक करें.
- प्रतियोगिता में हिस्सा लेने की ज़रूरी शर्तें सेक्शन में जाकर, ज़रूरी शर्तों में बदलाव करें पर क्लिक करें.
- यहां दिए गए स्टैटिक फ़ुलफ़िलमेंट (एजेंट कहता है) का इस्तेमाल करें:
We sell shirts, music or the tour movie.
- सेव करें बटन दबाएं.
पेज पैरामीटर
पैरामीटर का इस्तेमाल, उन वैल्यू को कैप्चर और रेफ़रंस करने के लिए किया जाता है जिन्हें सेशन के दौरान, उपयोगकर्ता ने सबमिट किया है. हर पैरामीटर का एक नाम और एक इकाई टाइप होता है. @Artist और @Merch ऐसे पैरामीटर हैं जिन्हें हमें बेची जाने वाली चीज़ों का ऑर्डर पूरा करने के लिए इकट्ठा करना होता है. टी-शर्ट या लंबी बाहों वाली टी-शर्ट के लिए, आपको @ShirtSize भी इकट्ठा करना होगा. अगर आपको संगीत का ऑर्डर देना है, तो आपको @Carrier और @Album नाम की भी ज़रूरत होगी.
उन पैरामीटर को ज़रूरी है के तौर पर मार्क करना होगा. जब इसकी ज़रूरत हो, तब आपको अपने असली उपयोगकर्ता को याद रखने के लिए कस्टम प्रॉम्प्ट देने होंगे, ताकि सही जवाब दिए जा सकें. इससे इन पैरामीटर को इकट्ठा किया जा सकता है. Dialogflow CX में कुछ ऐसे तरीके हैं जिनसे आपको इस काम में मदद मिल सकती है.
उदाहरण के लिए, पैरामीटर सेक्शन में कस्टम स्टैटिक फ़ुलफ़िलमेंट मैसेज दिए जा सकते हैं. अगर पैरामीटर ज़रूरी है, तो पैरामीटर की ये वैल्यू दिखाई जाएंगी. जवाब वाले इन मैसेज को जवाब की कतार में जोड़ दिया जाएगा. किसी एजेंट के टर्न के दौरान, एक से ज़्यादा फ़ुलफ़िलमेंट को कॉल किया जा सकता है. ऐसा करना कभी-कभी ज़रूरी होता है. इनमें से हर फ़ुलफ़िलमेंट, जवाब का मैसेज जनरेट कर सकता है. Dialogflow, इन जवाबों को जवाब की सूची में सेव करता है. पेज के लाइफ़ साइकल और रिस्पॉन्स क्यू में इन फ़ुलफ़िलमेंट को जोड़ने के क्रम के बारे में ज़्यादा जानने के लिए, Dialogflow CX के पेज से जुड़े दस्तावेज़ पढ़ें.
कलाकार की खास जानकारी देने वाले पेज पर पैरामीटर बनाना
आइए, कुछ पेज पैरामीटर तय करें:
- कैटलॉग फ़्लो में, कलाकार की खास जानकारी पेज पर क्लिक करें.
- पैरामीटर ब्लॉक में, + पर क्लिक करें. artist पैरामीटर जोड़ें:
- डिसप्ले नेम:
artist - इकाई का टाइप:
@Artist - ज़रूरी है: जांच करें
- लॉग में बदलाव करके जानकारी छिपाना: जांच करें
- अब हम कस्टम पैरामीटर के लिए, फ़ुलफ़िलमेंट मैसेज जोड़ेंगे. अगर वर्चुअल एजेंट ने अब तक artist पैरामीटर इकट्ठा नहीं किया है, तो उपयोगकर्ता को एजेंट का यह जवाब, जवाब की सूची में दिखेगा:
From which of these artists would you like to order merchandise?
- डायलॉग का दूसरा विकल्प जोड़ें, जिसमें सुझाव वाले चिप शामिल हों. डायलॉग का विकल्प जोड़ें पर क्लिक करें और इस कोड का इस्तेमाल करें (JSON में):
{
"richContent": [
[
{
"options": [
{
"text": "The Google Dolls"
},
{
"text": "The Goo Fighters"
},
{
"text": "Alice Googler"
},
{
"text": "G's N' Roses"
}
],
"type": "chips"
}
]
]
}
आपके पास, फ़ुलफ़िलमेंट के अलग-अलग फ़ॉलबैक प्रॉम्प्ट को मैनेज करने का विकल्प होता है. ऐसा इस आधार पर किया जा सकता है कि आपके उपयोगकर्ता ने इन सवालों के जवाब देने की कितनी बार कोशिश की है. इसके लिए, पैरामीटर इवेंट हैंडलर का इस्तेमाल किया जाता है. यहां कई बिल्ट-इन इवेंट हैंडलर दिए गए हैं. जैसे, अमान्य पैरामीटर, बहुत लंबे जवाब, कोई इनपुट नहीं, पहली बार में कोई इनपुट नहीं मिला, दूसरी बार में कोई इनपुट नहीं मिला या कोई मैच नहीं मिला. 'कोई इनपुट नहीं दिया गया' और 'कोई मैच नहीं मिला' में यह अंतर है कि 'कोई इनपुट नहीं दिया गया' का मतलब है कि उपयोगकर्ता ने कभी कोई जवाब नहीं दिया. वहीं, 'कोई मैच नहीं मिला' का मतलब है कि उपयोगकर्ता ने जवाब दिया, लेकिन Dialogflow CX इस जवाब को किसी पेज से मैच नहीं कर सका.
- नीचे की ओर स्क्रोल करके, Reprompt event handlers सेक्शन पर जाएं.
- इवेंट हैंडलर जोड़ें पर क्लिक करें और इवेंट चुनें:
No-match default - इवेंट के लिए, यहां दिया गया स्टैटिक टेक्स्ट फ़ुलफ़िलमेंट इस्तेमाल करें:
I missed that. Please, specify the artist. You can choose between: Alice Googler, G's N' Roses, The Google Dolls or The Goo Fighters. Which artist do you want to buy merchandise from?
- सेव करें पर क्लिक करें
- इवेंट हैंडलर जोड़ें पर क्लिक करें और इवेंट चुनें:
No-input default - इवेंट के लिए, यहां दिया गया स्टैटिक टेक्स्ट फ़ुलफ़िलमेंट इस्तेमाल करें:
I am sorry, I could understand the artist's name. You can choose between Alice Googler, G's N' Roses, The Google Dolls or The Goo Fighters. Which artist do you want to buy merchandise from?
- सेव करें पर क्लिक करें
पेज की शर्त के आधार पर तय किए गए रूट
पेज के लिए शर्त के हिसाब से तय किए गए रास्तों के साथ पैरामीटर का इस्तेमाल करने पर, आपको कई फ़ायदे मिलते हैं. जब कोई शर्त पूरी होती है, तब उससे जुड़े पेज के रूट को कॉल किया जाएगा. कोई शर्त, किसी पैरामीटर की वैल्यू तय की गई वैल्यू के बराबर है, किसी पैरामीटर की वैल्यू मौजूद होनी चाहिए, कोई फ़ॉर्म पूरा किया गया है वगैरह हो सकती है. Dialogflow CX के दस्तावेज़ में, पैरामीटर और शर्तों के बारे में ज़्यादा जानकारी देखी जा सकती है.
हमारे खुदरा वर्चुअल एजेंट के लिए, हमें पैरामीटर का क्रम इकट्ठा करना होगा. इसलिए, हमें यह जांच करने के लिए एक शर्त बनानी होगी कि क्या ‘फ़ॉर्म' भर दिया गया है. फ़ॉर्म, पैरामीटर की एक सूची होती है. पेज के लिए, इन पैरामीटर को असली उपयोगकर्ता से इकट्ठा किया जाना चाहिए. वर्चुअल एजेंट, असली उपयोगकर्ता के साथ कई बार बातचीत करता है. ऐसा तब तक होता है, जब तक वह फ़ॉर्म के सभी ज़रूरी पैरामीटर इकट्ठा नहीं कर लेता. इन्हें पेज पैरामीटर भी कहा जाता है.
Dialogflow CX, फ़ॉर्म भरते समय उपयोगकर्ता की ओर से दी गई पैरामीटर वैल्यू को अपने-आप सेट कर देता है. यह देखने के लिए कि मौजूदा पेज का पूरा फ़ॉर्म भरा गया है या नहीं, इस शर्त का इस्तेमाल करें: $page.params.status = "FINAL"
कलाकार की खास जानकारी देने वाले पेज पर, शर्त के हिसाब से रूट बनाना
आइए, एक ऐसा कंडीशनल रूट बनाते हैं जो कलाकार की जानकारी मिलने के बाद अगले पेज पर चला जाएगा:
- कलाकार की खास जानकारी पेज पर, रास्ते सेक्शन में मौजूद + आइकॉन पर क्लिक करें.
- नीचे की ओर स्क्रोल करके, स्थिति सेक्शन पर जाएं.
- कम से कम एक चुनें (या)
- इसके बाद, हम एक ऐसा एक्सप्रेशन लिखेंगे जो
- पैरामीटर:
$page.params.status - ऑपरेटर:
= - मान:
"FINAL"
- अब हम रास्ते पर एक खास स्टैटिक फ़ुलफ़िलमेंट मैसेज बनाएंगे. इससे पुष्टि होगी कि असली उपयोगकर्ता ने कौनसी कार्रवाई चुनी है. नीचे की ओर स्क्रोल करके, ऑर्डर पूरा करना ब्लॉक पर जाएं और ऑर्डर पूरा करने से जुड़े ये मैसेज लिखें:
$session.params.artist, great choice! Rock on!You want to rock with $session.params.artist merchandise. Awesome!
- जब यह शर्त पूरी हो जाती है, तब आपको प्रॉडक्ट की खास जानकारी पेज पर रीडायरेक्ट कर दिया जाएगा. नीचे की ओर स्क्रोल करके, ट्रांज़िशन सेक्शन पर जाएं और इस पेज का इस्तेमाल करें:
Product Overview - सेव करें बटन दबाएं.

'प्रॉडक्ट की खास जानकारी' पेज पर रूट बनाना
अब जब हमें यह पता चल गया है कि पैरामीटर और शर्त के हिसाब से राउट कैसे बनाए जाते हैं, तो आइए इन पेजों के लिए और पैरामीटर बनाएं:
प्रॉडक्ट की खास जानकारी
- प्रॉडक्ट की खास जानकारी पेज पर
artistपैरामीटर बनाएं:
- डिसप्ले नेम:
artist - इकाई का टाइप:
@Artist - ज़रूरी है: जांच करें
- लॉग में बदलाव करके जानकारी छिपाना: जांच करें
- प्रॉम्प्ट के हिसाब से शुरुआती जवाब:
From which of these artists would you like to order merchandise?
{
"richContent": [
[
{
"options": [
{
"text": "The Google Dolls"
},
{
"text": "The Goo Fighters"
},
{
"text": "Alice Googler"
},
{
"text": "G's N' Roses"
}
],
"type": "chips"
}
]
]
}
- इवेंट हैंडलर >
No-match default:To buy merchandise you can choose between the following artists: Alice Googler, G's N' Roses, The Google Dolls or The Goo Fighters. Which artist do you want to buy merchandise from? - कस्टम पेलोड:
{
"richContent": [
[
{
"options": [
{
"text": "The Google Dolls"
},
{
"text": "The Goo Fighters"
},
{
"text": "Alice Googler"
},
{
"text": "G's N' Roses"
}
],
"type": "chips"
}
]
]
}
- इवेंट हैंडलर >
No-input default:To buy merchandise you can choose between the following artists: Alice Googler, G's N' Roses, The Google Dolls or The Goo Fighters. Which artist were you trying to mention? - कस्टम पेलोड:
{
"richContent": [
[
{
"options": [
{
"text": "The Google Dolls"
},
{
"text": "The Goo Fighters"
},
{
"text": "Alice Googler"
},
{
"text": "G's N' Roses"
}
],
"type": "chips"
}
]
]
}
merchपैरामीटर बनाएं:
- डिसप्ले नेम:
merch - इकाई का टाइप:
@Merch - ज़रूरी है: जांच करें
- लॉग में बदलाव करके जानकारी छिपाना: जांच करें
- फ़ुलफ़िलमेंट:
Which merchandise item do you want? - डायलॉग का विकल्प जोड़ें > कस्टम पेलोड पर क्लिक करें:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Shirts"
},
{
"text": "Music"
},
{
"text": "Tour movie"
}
]
}
]
]
}
- इवेंट हैंडलर >
No-match default - इवेंट हैंडलर फ़ुलफ़िलमेंट:
We sell Shirts, Music or the Tour movie. Which of these items do you want? - कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Shirts"
},
{
"text": "Music"
},
{
"text": "Tour movie"
}
]
}
]
]
}
- इवेंट हैंडलर >
No-input default - इवेंट हैंडलर फ़ुलफ़िलमेंट:
I couldn't understand which merchandise item you wanted to buy. You can choose between: Shirts, Music or the Tour movie. Which item do you want? - कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Shirts"
},
{
"text": "Music"
},
{
"text": "Tour movie"
}
]
}
]
]
}
- एक ऐसा रूट बनाएं जो
artistऔरmerchआइटम दिए जाने पर, प्रॉडक्ट पेज पर ट्रांज़िशन करे.
- शर्त:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$session.params.artist != null - एक्सप्रेशन:
$session.params.merch != null - फ़ुलफ़िलमेंट:
Alright! $session.params.merch of $session.params.artist, let's go! - ट्रांज़िशन: पेज:
Product
- जब उपयोगकर्ता "शर्ट" कहे, तब उसके लिए एक रूट बनाएं
- इंटेंट: redirect.shirts
- ट्रांज़िशन: पेज:
Shirts
- जब उपयोगकर्ता "संगीत" कहे, तब उसके लिए एक रूट बनाएं
- इंटेंट: redirect.music
- ट्रांज़िशन: पेज:
Music
- जब उपयोगकर्ता कीमत की जानकारी मांगे, तब उसके लिए एक रूट बनाएं
- इंटेंट: redirect.price
- ट्रांज़िशन: नया पेज बनाएं:
Price
ऊपर दिया गया कॉन्फ़िगरेशन सेट करने के बाद, आपको नीचे दी गई इमेज जैसा विज़ुअलाइज़ेशन दिखेगा. ध्यान दें कि डायग्राम में, इंटेंट के आधार पर तय किए गए रूट नीले रंग के हैं और शर्त के आधार पर तय किए गए रूट नारंगी रंग के हैं. इमेज में नहीं दिखाया गया है, लेकिन इवेंट हैंडलर हरे रंग के होते हैं. साथ ही, जब कई तरह के रूट किसी पेज पर ट्रांज़िशन करते हैं, तो लाइन का रंग ग्रे हो जाता है.

अब तक, आपने स्टेट हैंडलर की मदद से फ़्लो, इकाई, इंटेंट, और पेज बनाने का तरीका जान लिया है. जैसे: इंटेंट रूट और पैरामीटर के आधार पर शर्त के साथ रूट. इस लैब में बाद में, हम फ़ुलफ़िलमेंट में शर्त के हिसाब से ब्रांचिंग का इस्तेमाल करेंगे, ताकि इनपुट के आधार पर अलग-अलग डायलॉग दिए जा सकें.
हमारे वर्चुअल एजेंट को फ़ाइनल करने के लिए, इन कॉन्फ़िगरेशन का इस्तेमाल किया जा सकता है.
शर्ट पेज:
- शर्ट पेज पर, ये कॉन्फ़िगरेशन बनाएं:
- प्रतियोगिता में हिस्सा लेने की सुविधा:
Do you want a longsleeve or a t-shirt? - एंट्री फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "T-shirt"
},
{
"text": "Longsleeve"
},
{
"text": "Price?"
}
]
}
]
]
}
- इंटेंट रूट बनाएं:
redirect.priceसेPriceपेज पर ट्रांज़िशन के साथ - यह पैरामीटर बनाएं:
- पैरामीटर:
merch- इकाई का टाइप:@Merch,Required, औरRedact in log - पैरामीटर > इवेंट हैंडलर >
No-match default - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट:
You can choose between a t-shirt or a longsleeve. Which of these do you want? - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "T-shirt"
},
{
"text": "Longsleeve"
}
]
}
]
]
}
- पैरामीटर > इवेंट हैंडलर >
No-input default - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट:
I couldn't understand if you want the t-shirt or the longsleeve. Which of these do you want? - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "T-shirt"
},
{
"text": "Longsleeve"
}
]
}
]
]
}
- एंट्री फ़ुलफ़िलमेंट पर क्लिक करें और नीचे की ओर स्क्रोल करके पैरामीटर प्रीसेट पर जाएं. हर बार जब शर्ट वाला पेज चालू होगा, तब कैटगरी पैरामीटर shirts पर सेट हो जाएगा:
पैरामीटर | वैल्यू |
|
|
- शर्त के आधार पर रूट जोड़ने के लिए:
- कम से कम एक नियम से मेल खाता है (OR)
- एक्सप्रेशन:
$session.params.merch = "T-shirt" - एक्सप्रेशन:
$session.params.merch = "Longsleeve" - नए पेज पर ट्रांज़िशन:
Shirt Size
कीमत वाला पेज:
कीमतों के मैसेज, चुने गए सामान या कैटगरी (संगीत या टी-शर्ट) के हिसाब से तय होंगे. इसलिए, हम इस हिस्से को बाद में लैब में ठीक करेंगे. फ़िलहाल, सिर्फ़ प्लेसहोल्डर डालना ही काफ़ी है.
- किराया पेज पर, ये कॉन्फ़िगरेशन बनाएं:
- प्रतियोगिता में हिस्सा लेने की सुविधा:
PRICE TODO
बातचीत के दौरान, अलग-अलग जगहों से कीमत के बारे में पूछा जा सकता है. इसलिए, Gemini को हमेशा जवाब देना चाहिए. साथ ही, ऑर्डर जारी रखने के लिए, आपको बातचीत के पिछले हिस्से पर वापस ले जाना चाहिए. डायलॉग ट्री में पांच ऐसी जगहें हैं जहां से कीमत की जानकारी पाने के लिए ब्रांच ऑफ़ की जा सकती है. (शर्ट, शर्ट का साइज़, संगीत, कैरियर, और इंटेंट रूट के ज़रिए सीधे तौर पर), इसलिए हमें वापस जाने के लिए कुछ शर्तों वाले रूट की ज़रूरत होगी:
- शर्त के साथ रूट जोड़ें:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$session.params.category = "shirts" - एक्सप्रेशन:
$session.params.merch = "null" - नए पेज पर ट्रांज़िशन:
Shirts
- शर्त के आधार पर रूट जोड़ने के लिए:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$session.params.category = "shirts" - एक्सप्रेशन:
$session.params.size = "null" - नए पेज पर ट्रांज़िशन:
Shirt Size
- शर्त के आधार पर रूट जोड़ने के लिए:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$session.params.category = "music" - एक्सप्रेशन:
$session.params.album = "null" - नए पेज पर ट्रांज़िशन:
Music
- शर्त के आधार पर रूट जोड़ने के लिए:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$session.params.category = "music" - एक्सप्रेशन:
$session.params.merch = "null" - नए पेज पर ट्रांज़िशन:
Carrier
- शर्त के आधार पर रूट जोड़ने के लिए:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$session.params.category = "null" - नए पेज पर ट्रांज़िशन:
Product Overview
शर्ट के साइज़ का पेज:
- शर्ट का साइज़ पेज में ये कॉन्फ़िगरेशन बनाएं:
- प्रतियोगिता में हिस्सा लेने की सुविधा:
What shirt size do you want? - एंट्री फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "XS"
},
{
"text": "S"
},
{
"text": "M"
},
{
"text": "L"
},
{
"text": "XL"
},
{
"text": "2XL"
},
{
"text": "3XL"
}
]
}
]
]
}
- इंटेंट रूट बनाएं:
redirect.priceसेPriceपेज पर ट्रांज़िशन करें. - यह पैरामीटर बनाएं:
- पैरामीटर:
shirtsize- इकाई का टाइप:@ShirtSize-Required,Redact In Log - पैरामीटर > इवेंट हैंडलर >
No-match default - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट:
Please tell me the shirt size, such as XL. - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "XS"
},
{
"text": "S"
},
{
"text": "M"
},
{
"text": "L"
},
{
"text": "XL"
},
{
"text": "2XL"
},
{
"text": "3XL"
}
]
}
]
]
}
- पैरामीटर > इवेंट हैंडलर >
No-input default - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट:
I couldn't understand the shirt size. What size do you want? - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "XS"
},
{
"text": "S"
},
{
"text": "M"
},
{
"text": "L"
},
{
"text": "XL"
},
{
"text": "2XL"
},
{
"text": "3XL"
}
]
}
]
]
}
- शर्त के आधार पर रूट जोड़ने के लिए:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$page.params.shirtsize != "null" - पेज पर ट्रांज़िशन:
Product
म्यूज़िक पेज:
- संगीत पेज में ये कॉन्फ़िगरेशन बनाएं:
- प्रतियोगिता में हिस्सा लेने की सुविधा:
We have a Greatest Hits Album or the Live Album. Which one do you want? - एंट्री फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Greatest Hits"
},
{
"text": "Live"
},
{
"text": "Price?"
}
]
}
]
]
}
- इंटेंट रूट बनाएं:
redirect.price, पेज पर ट्रांज़िशन के साथ:Price. - यह पैरामीटर बनाएं:
- पैरामीटर:
album- इकाई का टाइप:@Album-Required,Redact In Log - पैरामीटर > इवेंट हैंडलर >
No-match default - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट:
You can choose between Greatest Hits and Live Album. Which of these do you want? - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Greatest Hits"
},
{
"text": "Live"
}
]
}
]
]
}
- पैरामीटर > इवेंट हैंडलर >
No-input default - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट:
I couldn't understand if you want the album: Greatest Hit or Live. Which of these do you want? - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Greatest Hits"
},
{
"text": "Live"
}
]
}
]
]
}
- एंट्री फ़ुलफ़िलमेंट पर क्लिक करें और नीचे की ओर स्क्रोल करके पैरामीटर प्रीसेट पर जाएं. जब भी संगीत पेज चालू होगा, तब कैटगरी पैरामीटर music पर सेट हो जाएगा:
पैरामीटर | वैल्यू |
|
|
- शर्त के आधार पर रूट जोड़ने के लिए:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$page.params.album != "null" - पेज पर ट्रांज़िशन:
Carrier
मोबाइल और इंटरनेट सेवा देने वाली कंपनी का पेज:
- कैरियर पेज पर, ये कॉन्फ़िगरेशन बनाएं:
- प्रतियोगिता में हिस्सा लेने की सुविधा:
Do you want this album on CD or MP3? - एंट्री फ़ुलफ़िलमेंट कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "CD"
},
{
"text": "MP3"
},
{
"text": "Price?"
}
]
}
]
]
}
- इंटेंट रूट बनाएं:
redirect.priceजोPriceपेज पर ट्रांज़िशन करता है. - यह पैरामीटर बनाएं:
- पैरामीटर:
merch- इकाई का टाइप:@Merch-Required,Redact In Log - पैरामीटर > इवेंट हैंडलर >
No-match default - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट:
Do you want a physical CD or the digital album? - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट: कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "CD"
},
{
"text": "Digital Album"
}
]
}
]
]
}
- पैरामीटर > इवेंट हैंडलर >
No-input default - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट:
I couldn't understand if you mean CD or MP3. Which one do you want? - पैरामीटर > इवेंट हैंडलर फ़ुलफ़िलमेंट: कस्टम पेलोड:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "CD"
},
{
"text": "MP3"
}
]
}
]
]
}
- शर्त के आधार पर रूट जोड़ने के लिए:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$page.params.merch != "null" - पेज पर ट्रांज़िशन:
Product
प्रॉडक्ट पेज:
- ये पैरामीटर बनाएं:
पैरामीटर का डिसप्ले नेम | पैरामीटर का इकाई टाइप | जांच करना |
|
| ज़रूरी है, लॉग में छिपाएं |
|
| ज़रूरी है, लॉग में छिपाएं |
- artist पैरामीटर के लिए, शुरुआती प्रॉम्प्ट को पूरा करना ज़रूरी है. यह तब दिखेगा, जब कलाकार के बारे में जानकारी नहीं होगी.
You didn't mention which artist you are interested in. You can ask me to buy the $session.params.merch of the artist you like or ask which artists we signed. How can I help?
{
"richContent": [
[
{
"options": [
{
"text": "Which artists?"
}
],
"type": "chips"
}
]
]
}
- साथ ही, फ़ुलफ़िलमेंट के साथ
No-input defaultइवेंट हैंडलर भी जोड़ें:I couldn't understand what you just said. Ask me which artists are signed. - साथ ही,
No-match defaultइवेंट हैंडलर के साथ फ़ुलफ़िलमेंट:I missed that. Please ask me which artists are signed.
- merch पैरामीटर के लिए, reprompt इवेंट हैंडलर भी ज़रूरी होते हैं.
- फ़ुलफ़िलमेंट के साथ
No-input defaultइवेंट हैंडलर जोड़ें:I couldn't understand what you just said. Which merchandise item do you want? - साथ ही,
No-match defaultइवेंट हैंडलर के साथ फ़ुलफ़िलमेंट:I missed that. Which merchandise item do you want?
जब कलाकार की जानकारी उपलब्ध होगी और उपयोगकर्ता "टूर मूवी" चुनेगा, तब अगले रूट पर पुष्टि करने वाला पेज दिखेगा.
- शर्त के आधार पर रूट जोड़ने के लिए:
- हर नियम से मेल खाता है (AND)
- एक्सप्रेशन:
$session.params.artist != null - एक्सप्रेशन:
$session.params.merch = "Tour Movie" - पैरामीटर के प्रीसेट पैरामीटर जोड़ें >
price = 25 - नए पेज पर ट्रांज़िशन:
Confirmation
जब कलाकार की जानकारी मिल जाती है और उपयोगकर्ता "टी-शर्ट" चुनता है और टी-शर्ट का साइज़ चुनता है, तो अगले रूट पर पुष्टि करने वाला पेज दिखेगा.
- शर्त के आधार पर रूट जोड़ने के लिए:
- कस्टम एक्सप्रेशन:
$session.params.artist != null AND $session.params.merch = "T-shirt" AND $session.params.shirtsize != null - पैरामीटर के प्रीसेट पैरामीटर जोड़ें >
price = 25 - इस पेज पर ट्रांज़िशन करें:
Confirmation
जब कलाकार का नाम पता हो और उपयोगकर्ता "लॉन्गस्लीव" चुनता है और शर्ट का साइज़ चुनता है, तो अगले रूट पर पुष्टि करने वाला पेज दिखेगा.
- शर्त के आधार पर रूट जोड़ने के लिए:
- कस्टम एक्सप्रेशन:
$session.params.artist != null AND $session.params.merch = "Longsleeve" AND $session.params.shirtsize != null - पैरामीटर के प्रीसेट पैरामीटर जोड़ें >
price = 30 - इस पेज पर ट्रांज़िशन करें:
Confirmation
अगर कलाकार का नाम पता है और उपयोगकर्ता ने "सीडी" का विकल्प चुना है, तो अगले चरण में पुष्टि करने वाला पेज दिखेगा. साथ ही, एल्बम का नाम भी चुना जाएगा.
- शर्त के आधार पर रूट जोड़ने के लिए:
- कस्टम एक्सप्रेशन:
$session.params.artist != null AND $session.params.merch = "CD" AND $session.params.album != null - पैरामीटर के प्रीसेट पैरामीटर जोड़ें >
price = 15 - इस पेज पर ट्रांज़िशन करें:
Confirmation
अगर कलाकार की जानकारी मौजूद है और उपयोगकर्ता ने "डिजिटल एल्बम" चुना है और एल्बम का नाम चुना गया है, तो अगले रूट पर जाने पर पुष्टि करने वाला पेज दिखेगा.
- शर्त के आधार पर रूट जोड़ने के लिए:
- कस्टम एक्सप्रेशन:
$session.params.artist != null AND $session.params.merch = "Digital Album" AND $session.params.album != null - पैरामीटर के प्रीसेट पैरामीटर जोड़ें >
price = 10 - इस पेज पर ट्रांज़िशन करें:
Confirmation
इसके बाद, हम ऐसे प्रॉम्प्ट के साथ कुछ बेहतर कंडीशनल बनाएंगे जो मौजूद न होने वाली जानकारी का पता लगाते हैं. अगर कलाकार का नाम पता है और उपयोगकर्ता "सीडी" या "डिजिटल एल्बम" चुनता है, लेकिन एल्बम का नाम नहीं चुनता है, तो उसे वापस संगीत पेज पर भेज दिया जाएगा.
- शर्त के आधार पर रूट जोड़ने के लिए:
- कस्टम एक्सप्रेशन:
$session.params.artist != null AND ($session.params.merch = "CD" OR $session.params.merch = "Digital Album") AND $session.params.album = null - फ़ुलफ़िलमेंट:
I would also need to know which album you would like to buy! - इस पेज पर ट्रांज़िशन करें:
Music
इसके अलावा, जब कलाकार की जानकारी उपलब्ध होती है और उपयोगकर्ता "टी-शर्ट" या "लॉन्गस्लीव" चुनता है, लेकिन टी-शर्ट का साइज़ नहीं चुनता है, तो आखिरी रूट पुष्टि करने वाले पेज पर रीडायरेक्ट हो जाएगा.
- शर्त के साथ रूट जोड़ें:
- कस्टम एक्सप्रेशन:
$session.params.artist != null AND ($session.params.merch = "T-shirt" OR $session.params.merch = "Longsleeve") AND $session.params.shirtsize = null - फ़ुलफ़िलमेंट:
I would also need to know which shirt size you need! - इस पेज पर ट्रांज़िशन करें:
Shirt Size
लैब के अगले हिस्से में, हम शर्तों के हिसाब से फ़ुलफ़िलमेंट का इस्तेमाल करेंगे. इससे इनपुट के आधार पर, फ़ुलफ़िलमेंट के अलग-अलग मैसेज दिखाए जा सकेंगे.
7. शर्तें पूरी होने पर मिलने वाली जानकारी
कुछ जवाब, इनपुट के आधार पर अलग-अलग बातचीत के तौर पर दिखेंगे. बातचीत अलग-अलग हिस्सों में बंटी होगी. इसे शर्त के हिसाब से जवाब कहा जाता है. यह तब दिलचस्प हो सकता है, जब वेबुक फ़ुलफ़िलमेंट का इस्तेमाल न किया जा रहा हो. इसमें शर्तों के हिसाब से जवाब, बैक-एंड पर तय किए जाते हैं. उदाहरण के लिए, यह कुछ ऐसा दिख सकता है:
if [condition]
[response]
elif [condition]
[response]
elif [condition]
[response]
else
[response]
endif
- [condition] का एक उदाहरण यह हो सकता है:
$session.params.user-age >= 21. इसमें, रास्तों की शर्तों के जैसा ही फ़ॉर्मैट इस्तेमाल किया जाता है. - [response] एट्रिब्यूट, स्टैटिक टेक्स्ट रिस्पॉन्स लेता है
- शर्तें पूरी होने पर मिलने वाली जानकारी हमेशा
ifसे शुरू होती है elifऔरelseब्लॉक ज़रूरी नहीं हैं
Dialogflow CX, सिस्टम फ़ंक्शन का इस्तेमाल भी कर सकता है. उदाहरण के लिए, तारीख या समय को फ़ॉर्मैट करने या मौजूदा समय ($sys.func.NOW()) दिखाने के लिए
आइए, कैटलॉग फ़्लो को पूरा करें. इसके लिए, पुष्टि और कीमत वाले पेजों को ठीक करें.
पुष्टि करने वाला पेज:
अब हम पुष्टि करने वाला पेज बनाएंगे. इसके लिए ये ज़रूरी शर्तें पूरी करना ज़रूरी है:
- अगर मर्चंडाइज़, सीडी या डिजिटल एल्बम है. हम पुष्टि करने के लिए, ये फ़ील्ड दिखाएंगे: कलाकार, मर्चेंडाइज़, एल्बम, और कीमत.
- अगर मर्चंडाइज़, टी-शर्ट या लॉन्गस्लीव है. हम पुष्टि करने के लिए, ये फ़ील्ड दिखाएंगे: कलाकार, मर्चेंडाइज़, साइज़, और कीमत.
- इसके अलावा (और इस तरह, अगर merch Tour Movie है). हम पुष्टि करने के लिए, ये फ़ील्ड दिखाएंगे: artist, merch, और price.
- पुष्टि पेज पर क्लिक करें.
- फ़ुलफ़िलमेंट में बदलाव करें > एजेंट के जवाब > डायलॉग जोड़ें विकल्प > शर्त के साथ जवाब पर क्लिक करें:
if ($session.params.merch = "CD" OR $session.params.merch = "Digital Album")
The $session.params.merch: $session.params.artist - $session.params.album costs $$session.params.price. Shall I continue to order?
elif ($session.params.merch = "T-shirt" OR $session.params.merch = "Longsleeve")
A $session.params.merch of $session.params.artist size: $session.params.shirtsize costs $$session.params.price. Shall I continue to order?
elif $session.params.merch = "Tour Movie"
The $session.params.merch of $session.params.artist costs $$session.params.price. Shall I continue to order?
else
It looks like something went wrong with your order. You can say "Reset", to restart the order process.
endif
- Create the following Custom payload:
- Custom payload:
{
"richContent": [
[
{
"options": [
{
"text": "Yes, confirm"
}
],
"type": "chips"
}
]
]
}
Next, create two intent routes:
confirm.proceed.ordertransitions to:Order ProcessFlow.decline.proceed.ordertransitions toEnd Flow
When the user declines the order, and does not want to proceed the order process, we will have to transition back to the welcome page, but all the parameters have to be cleared. We can do this by specifically setting null to all the possible parameters. You can do this with Parameter presets.
- In the decline.proceed.order intent route, scroll down to Parameter presets and add the following parameters:
Parameter | Value |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notice that we have created an additional parameter called restart. If this parameter is present, the Default Start Flow, should know to continue the conversation by showing a customized message.
- Click on the Default Start Flow, Start Page, and create another Conditional Route:
$session.params.restart = "true"- Fulfillment:
"Welcome back, as the virtual agent of G-Records, I can help you order artists merchandise, you can ask questions about your order or shipping, and I can tell you more which artists are currently signed with us. How can I help?" - Custom payload:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Which artists?"
},
{
"text": "Which products?"
},
{
"text": "About my order..."
}
]
}
]
]
}
- Select the Start Page and click on the
redirect.endintent. Create the following fulfillment:Thank you for contacting G-Records! Have a nice day!
Price Page:
Let's also fix the Price TODOs. The price information will be static for now. Click on the Price Page in the Catalog Flow, and use the following entry fulfillment:
- Delete the Agent Says entry fulfillment.
- Create a new Conditional Response:
if $session.params.category = "shirts"
A t-shirt costs $25 and a longsleeve costs $30.
elif $session.params.category = "music"
A CD costs $15. The digital album on MP3 costs $10.
else
A t-shirt costs $25 and a longsleeve costs $30. A CD costs $15 and a digital album on MP3 $10. In case you are interested in the Tour Movie, that one is $25.
endif

Well done, by now you completed the Catalog flow. Your flow should look similar to this diagram:
8. Wrapping up the agent
We are almost at the end of this lab. Let's configure the last flows together, and take in practice all the new things that we have learned.
Creating the My Order Flow
- Go to the My Order Flow, and create the following intent transitions:
Page (In Flow) | Routes > Intent | Routes > Transition To |
My Order Start |
| My Order |
My Order Start |
| My Order Status |
My Order Start |
| My Order Cancellation |
My Order Start |
| End Session |
My Order Start |
| End Flow |
My Order |
| My Order Status |
My Order |
| My Order Cancellation |
Default Start Flow |
| Flow: My Order |
Default Start Flow |
| Flow: My Order |
- Let's create the following entry fulfillment for the My Order Page:
- Entry fulfillment:
I can look up the status of your order, or I can cancel an order.
- In the My Order Page create the following parameter:
- Displayname:
ordernumber - Entity Type:
@OrderNumber - Required: checked
- Initial prompt fulfillment:
What's the order number? For example ABCD123. - Event Handler:
No-match default:To proceed with your order I will need an order number. Order numbers start with 4 characters and end with 3 numbers, such as ABCD123. Which order number may I use? - Event Handler:
No-input default:I missed that. To proceed with your order I will need an order number. Order numbers start with 4 characters and end with 3 numbers, such as ABCD123. Which order number may I use?
- Create the following conditional route:
- Customize Expression:
$page.params.status = "FINAL" - Fulfillment:
And do you want to Cancel your order, or should I look up the status?
- Click on Add state handler > Event Handlers and create the Event Handler:
No-input default
- Fulfillment:
I'm sorry, what was that? Would you like me to cancel an order or look up the status? - Custom payload:
{
"richContent": [
[
{
"options": [
{
"text": "Status"
},
{
"text": "Cancel"
}
],
"type": "chips"
}
]
]
}
- Create the Event Handler:
No-match default
- Fulfillment:
Would you like me to cancel an order or lookup the status? - Custom payload:
{
"richContent": [
[
{
"options": [
{
"text": "Status"
},
{
"text": "Cancel"
}
],
"type": "chips"
}
]
]
}
- In the My Order Status Page create the following parameter:
- Displayname:
ordernumber - Entity Type:
@OrderNumber - Required checked
- Initial prompt fulfillment:
What's the order number? For example ABCD123. - Event Handler:
No-match default:To proceed with your order I will need an order number. Order numbers start with 4 characters and end with 3 numbers, such as ABCD123. Which order number may I use? - Event Handler:
No-input default:I missed that. To proceed with your order I will need an order number. Order numbers start with 4 characters and end with 3 numbers, such as ABCD123. Which order number may I use?
- In the My Order Status Page create the following conditional route:
- Customize Expression:
$session.params.ordernumber != null - Fulfillment:
Your order $session.params.ordernumber has been shipped, it can take up to approx 2 weeks before you will receive your items. - Add dialogue option > Text:
Is there anything else I can help you with?
- In the My Order Cancelation Page create the following parameter:
- Displayname:
ordernumber - Entity Type:
@OrderNumber - Required checked
- Initial prompt fulfillment:
What's the order number? For example ABCD123. - Event Handler:
No-match default:To proceed with your order I will need an order number. Order numbers start with 4 characters and end with 3 numbers, such as ABCD123. Which order number may I use? - Event Handler:
No-input default:I missed that. To proceed with your order I will need an order number. Order numbers start with 4 characters and end with 3 numbers, such as ABCD123. Which order number may I use?
- In the My Order Cancelation Page create the following conditional route:
- Customize Expression:
$session.params.ordernumber != null - Fulfillment:
Your order $session.params.ordernumber has been canceled. - Add dialogue option > Text:
Is there anything else I can help you with?
- Test the flow and create the following two test scenarios:
>"About my order"
>"ABCD123"
>"Status"
And:
>"What's the status of order DEFG222"
- Select the Start Page and click on the
redirect.endintent. Create the following fulfillment:Thank you for contacting G-Records! Have a nice day! - Select the Start Page and click on the
redirect.homeintent. Create the following parameter preset:restart = true
Default Negative intents (Fallback)
When you create a virtual agent, a default negative intent is created for you. You can add training phrases to this intent that act as negative examples that will trigger a No-match event. There may be cases where end-user input has a slight resemblance to training phrases in normal intents, but you do not want these inputs to match any normal intents.
- Try in the simulator:
I don't like Alice Googler.
You will see that the virtual agent answers with the Product Overview Page, to continue ordering Alice Googler merchandise. However, your end user does not like that artist. Let's use the Default Negative Intent for this.
- Go to Manage > Intents and select the Default Negative Intent.
- Add the following training phrases that will trigger the No-match event.
I don't like Alice GooglerI am not a fan of G's N' RosesI can't stand the music of the Google Dolls
- Hit Save and test the following sentence in the simulator:
I am really not a fan of the Goo Fighters
This time the No-match event was triggered, you stayed on the Start Page.
Default Fallback Messages
- Click the Default Start Flow, select the
sys.no-input-defaultevent handler.
The No-input fallback basically means: No text or speech answers were detected. Likely no answers were given, or the system couldn't hear it. Therefore, let's make the fallback messages more specific. Use the tab key, to create alternative dialogues:
- Remove all answers, and add these text dialogues:
I'm sorry, I didn't receive an answer. Can you say it again?I missed your answer, can you say it again?Sorry, I didn't hear anything. Can you say it again?I couldn't hear what you were saying, what was that?I'm sorry, I missed your answer. What were you trying to say?
Don't forget to click Save.
- Click the Default Start Flow, select the
sys.no-match-defaultevent handler.
The No Match fallback basically means: Text or speech answers were detected but nothing in Dialogflow CX got matched.
- Remove all answers, and add these text dialogues:
Sorry, I didn't get that. Can you please rephrase?I'm sorry, I don't understand. Can you please rephrase?I don't understand, please rephrase.Sorry, I didn't get that. What was that?I didn't get that, can you please rephrase?
Don't forget to click Save.
- It's advised to repeat these steps for the Catalog, My Order, Order Process and Customer Care flows.
Here's a tip: when creating fallback messages, make them more explicit, by rephrasing the previous question or by mentioning an example. You could create these type of No-match and No-input events on Page level when creating parameters. In our labs, we have already done this.
Creating the Order Process Flow
- Go to the Order Process Flow, and create the following intent transitions:
Page (In Flow) | Routes > Intent | Routes > Transition To |
Order Process Start |
| End Session |
Order Process Start |
| End Flow |
Order Process Start |
| New Page: Shipping Details |
- Let's create the following entry fulfillment for the Shipping Details Page:
- Entry fulfillment:
To complete your order I will first need to collect your shipping details.
- Create the following parameters:
These parameters will make use of built-in system entities. System entity support differs for each language. See the docs for more information.
Parameter Display name | Entity | Required? | Initial prompt fulfillment | No-match default | No-input default |
| @sys.person | Required |
|
|
|
| @sys.person | Required |
|
|
|
| @sys.address | Required |
|
|
|
| @sys.any | Required |
|
|
|
| @sys.geo-city | Required |
|
|
|
| @sys.geo-country | Required |
|
|
|
| @sys.email | Required |
|
|
|
- Create the following conditional route:
- Customize Expression:
$page.params.status = "FINAL" - Transition to new Page:
Payment Details
- Create the following entry fulfillment.
Let's fake it that this virtual agent makes use of Google Pay. Don't worry this tutorial won't make real transactions. Create the following entry dialogues:
- Agent Says:
Alright $session.params.firstname! We will make use of Google Pay, that's connected to your email account: $session.params.email.
- Conditional Response
if $session.params.merch != "Digital Album"
Shipping costs an additional 5 dollars. This will make the total price $$sys.func.TO_TEXT($sys.func.ADD($session.params.price, 5)).
Your merchandise will be shipped to:
$session.params.firstname $session.params.lastname
$session.params.address
$session.params.zipcode $session.params.city
$session.params.country
To continue the order process please explicitly say "I confirm". Do you want to confirm your $session.params.artist $session.params.merch order?
else
The total costs will be: $$session.params.price.
After purchasing the digital album, you will receive an email with the download link.
To continue the order process please explicitly say "I confirm".
Do you want to confirm your $session.params.artist $session.params.merch order?
endif
- यहां दिया गया इंटेंट रूट बनाएं
- इरादा:
confirm.proceed.order - एजेंट ने कहा:
Thank you for your order! Your merchandise will be shipped today! - डायलॉग का विकल्प जोड़ें > टेक्स्ट:
Here's the order number: ABCD123. - डायलॉग का विकल्प जोड़ें > टेक्स्ट:
Have a good day! - ट्रांज़िशन:
End Session
- शुरू करें पेज चुनें और
redirect.endइंटेंट पर क्लिक करें. नीचे दिया गया फ़ुलफ़िलमेंट बनाएं:Thank you for contacting G-Records! Have a nice day! - शुरू करें पेज चुनें और
redirect.homeइंटेंट पर क्लिक करें. यह पैरामीटर प्रीसेट बनाएं:restart = true
बहुत बढ़िया! अब हमारे पास एक ऐसा चैटबॉट है जो खुदरा दुकानदारों के लिए असल में काम करता है! अगले लैब में, हम यह जांच करेंगे कि वर्चुअल एजेंट कितना अच्छा परफ़ॉर्म करता है!
9. अपने वर्चुअल एजेंट की जांच करना
अपने वर्चुअल एजेंट के डायलॉग की जांच करने के लिए, पहले से मौजूद सिम्युलेटर का इस्तेमाल किया जा सकता है. सिम्युलेटर में फ़्लो की जांच करने का फ़ायदा यह है कि आपको फ़्लो, पेजों, पैरामीटर, और (DTMF) इवेंट की खास जानकारी दिखेगी. ये इवेंट, सिम्युलेटर ने आपके फ़्लो को समझने के दौरान इकट्ठा किए थे. इससे इंटिग्रेशन में सीधे तौर पर टेस्टिंग करने के बजाय, टेस्टिंग करना आसान हो जाता है. ऐसा इसलिए, क्योंकि इस तरह की जानकारी को असली उपयोगकर्ता से छिपाया जाएगा. टेस्ट केस बनाए जा सकते हैं. साथ ही, उन्हें सेव करके दोबारा इस्तेमाल किया जा सकता है. यह सुविधा तब बहुत काम आती है, जब आपको समय-समय पर अपने फ़्लो में बदलाव करना होता है. साथ ही, आपको यह पक्का करना होता है कि आपके किसी भी बदलाव से, आपके पिछले काम पर कोई असर न पड़े.
Google Cloud Storage या लोकल में टेस्ट सेव करके, पहले बनाए गए टेस्ट केस को एक्सपोर्ट और इंपोर्ट भी किया जा सकता है. टेस्ट एक्सपोर्ट करने पर, एक ब्लोब फ़ाइल डाउनलोड होगी. सिम्युलेटर और टेस्ट केस के बारे में ज़्यादा जानने के लिए, सिम्युलेटर / टेस्ट केस के दस्तावेज़ देखें.
कुछ टेस्ट केस बनाने से पहले, आइए हम अपने वर्चुअल एजेंट के बाकी हिस्सों को फ़ाइनल कर लें:
ग्राहक सेवा फ़्लो बनाना
- ग्राहक सेवा फ़्लो पर जाएं और ये इंटेंट ट्रांज़िशन बनाएं:
पेज (इन फ़्लो) | रूट > इंटेंट | रास्ते > इस पर ट्रांज़िशन करें |
Customer Care Start |
| शिपिंग |
Customer Care Start |
| रिफ़ंड |
Customer Care Start |
| स्वैप करना |
Customer Care Start |
| फ़्लो खत्म करें |
Customer Care Start |
| सेशन खत्म करें |

- शिपिंग पेज के लिए, एंट्री पूरी करने की ये शर्तें तय करें:
Shipping physical merchandise items can take up to 2 weeks.Is there anything else I can help you with?
- रिफ़ंड पेज के लिए, यहां दी गई एंट्री फ़ुलफ़िलमेंट बनाएं:
We offer free returns and refunds. We provide one free return label for each order. You can use it within 30 days from receiving your order. If your refund is accepted, we will refund the price you paid for your item back to your original payment method.Is there anything else I can help you with?
- स्वैपिंग पेज के लिए, एंट्री पूरी करने की ये सुविधाएं बनाएं:
If you would like to change your item for a different one, please return your unwanted item and place a new order. If your refund is accepted, we will refund the price you paid for your item back to your original payment method.Is there anything else I can help you with?
- शुरू करें पेज चुनें और
redirect.endइंटेंट पर क्लिक करें. नीचे दिया गया फ़ुलफ़िलमेंट बनाएं:Thank you for contacting G-Records! Have a nice day! - शुरू करें पेज चुनें और
redirect.homeइंटेंट पर क्लिक करें. यह पैरामीटर प्रीसेट बनाएं:restart = true
टेस्ट केस बनाना
- स्क्रीन की दाईं ओर मौजूद, टेस्ट एजेंट बटन पर क्लिक करें.
सिम्युलेटर को पहली बार खोलने पर, आपको एजेंट एनवायरमेंट और चालू फ़्लो चुनना होगा. ज़्यादातर मामलों में, आपको ड्राफ़्ट एनवायरमेंट और डिफ़ॉल्ट स्टार्ट फ़्लो का इस्तेमाल करना चाहिए.
- कैंपेन किस तरह का है:
Hi

- सवाल पूछें:
Which artists are signed with your label? - बोलें:
The Google Dolls - बोलें:
I am interested in buying a shirt - बोलें:
A t-shirt - बोलें:
Medium - अब, 'टेस्ट केस सेव करें' बटन पर क्लिक करें. यह आपको सिम्युलेटर में सबसे ऊपर दिखेगा. यह रीडू ऐरो और रीसेट ट्रैश बिन आइकॉन के बगल में होता है

- इसे यह जानकारी दें:
- टेस्ट केस का नाम:
Buy Google Dolls t-shirt size M - टैग: #कैटलॉग, #शर्ट, #टी-शर्ट, #TheGoogleDolls
- सेव करें पर क्लिक करें
आइए, कुछ और टेस्ट केस बनाते हैं.
- सबसे पहले, रीसेट (ट्रैश बिन) आइकॉन पर क्लिक करके मौजूदा डायलॉग हटाएं.
- ये टेस्ट केस बनाएं:
ऐलिस गूगलर टी-शर्ट खरीदें:
>"Buy the Alice Googler t-shirt."
>"XL"
- टेस्ट केस का नाम:
Buy the Alice Googler t-shirt - टैग:
#catalog, #shirts, #t-shirt, #AliceGoogler
एम साइज़ की टी-शर्ट खरीदनी है: (ध्यान दें कि कलाकार का नाम नहीं बताया गया है, लेकिन आपको बैंड की खास जानकारी, प्रॉडक्ट की खास जानकारी, शर्ट और शर्ट के साइज़ वाले पेजों को छोड़ना है)
>"Buy a t-shirt size M"
>"The Google Fighters"
- टेस्ट केस का नाम:
Buy a t-shirt size M - टैग:
#catalog, #shirts, #t-shirt, #TheGoogleFighters - ब्यौरा: (ध्यान दें कि कलाकार का नाम नहीं बताया गया है, लेकिन आपको बैंड की खास जानकारी, प्रॉडक्ट की खास जानकारी, शर्ट और शर्ट के साइज़ वाले पेजों को छोड़ना है)
G's N' Roses का संगीत खरीदें (ध्यान दें कि इससे बैंड की खास जानकारी और प्रॉडक्ट की खास जानकारी वाला पेज स्किप हो जाएगा)
>"Purchase music of G's N' Roses"
>"Live"
>"CD"
- टेस्ट केस का नाम:
Purchase music of G's N' Roses - टैग:
#catalog, #music, #CD, #GsNRoses, #live - ब्यौरा: (ध्यान दें कि इससे बैंड की खास जानकारी और प्रॉडक्ट की खास जानकारी वाला पेज स्किप हो जाएगा)
कीमत की जानकारी देखें:
>"Which products"
>"Shirts"
>"What's the price difference?"
>"Longsleeve"
>"What does it cost?"
>"M"
>"The Google Dolls"
>"No"
>"Which bands"
>"The Gooo Fighters"
>"Music"
>"How much does it cost?"
>"Greatest Hits"
>"What's the price difference?"
>"Mp3"
>"No"
>"I want to buy the tour movie"
>"Alice Googler"
>"Yes"
- टेस्ट केस का नाम:
Price info - टैग:
#catalog, #music, #tourmovie, #shirts - ब्यौरा: डायलॉग में अलग-अलग पॉइंट पर कीमत की जानकारी की जांच करें
पहले से रिकॉर्ड किए गए टेस्ट केस की जांच करना
- बाईं ओर मौजूद Dialogflow के मुख्य मेन्यू में, मैनेज करें > टेस्ट केस चुनें.
- सभी टेस्ट केस चुनें और टेबल के ऊपर मौजूद, चलाएं बटन दबाएं.
Dialogflow CX, चुने गए सभी टेस्ट केस को उस रिकॉर्डिंग के ख़िलाफ़ चलाएगा जिसे "गोल्डन टेस्ट केस" के तौर पर सेव किया गया था. अगर नतीजे, सेव किए गए नतीजों से मेल खाते हैं, तो टेस्ट पास हो जाएंगे. - क्या फ़्लो में कोई बदलाव हुआ है, जैसे कि ऐसे पेज जो सही तरीके से कॉन्फ़िगर नहीं किए गए हैं या ऐसे इंटेंट जो आपको गलत पेजों पर ले जाते हैं. ऐसा होने पर, टेस्ट फ़ेल हो जाएंगे.

- सिम्युलेटर में यह सवाल पूछें:
How long will shipping take? - नतीजे को नोट करें और टेस्ट केस को
Shippingके तौर पर सेव करें. साथ ही, इसे#shippingटैग करें. - मैनेज करें > टेस्ट केस पैनल पर जाएं. इसके बाद, सिर्फ़
Shippingटेस्ट केस चलाने के लिए, ग्रिड में सबसे ऊपर दाईं ओर मौजूद चलाएं बटन दबाएं.
यह टेस्ट पास होना चाहिए.
- कस्टमर केयर फ़्लो पर वापस जाएं. इसके बाद, शुरू करें पेज चुनें और रास्ते हेडर पर क्लिक करें.
इससे आपको एक स्क्रीन दिखेगी. इसमें ग्रिड के तौर पर सभी रास्ते दिखेंगे.
redirect.shipping.info routeको हटाएं- मैनेज करें > टेस्ट केस पैनल पर जाएं. इसके बाद, सिर्फ़
Shippingटेस्ट केस चलाने के लिए, ग्रिड में सबसे ऊपर दाईं ओर मौजूद चलाएं बटन दबाएं.
यह टेस्ट पूरा नहीं किया जा सकता.
- जांच में सफल नहीं होने वाले डोमेन की जानकारी देखने के लिए, उस पर क्लिक करें.
इस मामले में, जांच में यह गड़बड़ी का मैसेज मिला:
Page: Page mismatch:
Expected: Shipping
Actual: Start Page
ऐसा इसलिए है, क्योंकि पेज अब फ़्लो में मौजूद नहीं है. हमें Shipping पेज पर रीडायरेक्ट होने की उम्मीद थी, लेकिन हम Start पेज पर ही बने रहे. (या आपके असली उपयोगकर्ताओं को फ़ॉलबैक मैसेज मिलेगा.)
दूसरे शब्दों में कहें, तो यह एक ऐसा अनुरोध है जिसे पूरा नहीं किया जा सका. यह फ़ॉल्स नेगेटिव टेस्ट का नतीजा है. जांच पूरी नहीं हो सकी. हमें शिपिंग पेज दिखने की उम्मीद थी, लेकिन कुछ नहीं हुआ या फ़ॉलबैक मैसेज दिखाया गया.
- कस्टमर केयर फ़्लो पर वापस जाएं और शुरू करें पेज पर,
redirect.shipping.infoको इंटेंट रूट के तौर पर जोड़ें. शिपिंग पेज पर जाकर, सेव करें पर क्लिक करना न भूलें. - सिम्युलेटर में, इस टेस्ट केस को रिकॉर्ड करें:
I want to swap my item. इस टेस्ट केस कोSwapping#swappingके तौर पर सेव करें. - मैनेज करें > इंटेंट > redirect.refund.info खोलें और यह ट्रेनिंग वाक्यांश जोड़ें:
I want to swap this item for a refund
ट्रेनिंग फ़्रेज़ के बिना, जब कोई उपयोगकर्ता रिफ़ंड के लिए किसी आइटम को बदलने के लिए कहेगा, तो यह redirect.swapping.info इंटेंट को ट्रिगर करेगा. हालांकि, हमें आइटम बदलने के बारे में जानकारी नहीं देनी है, हमें रिफ़ंड के बारे में जानकारी देनी है.
- सिमुलेटर में, यहां दिया गया गोल्डन टेस्ट केस
I want to swap this item for a refundबनाएं. इसके बाद, इस टेस्ट केस कोSwap for Refund#refundके तौर पर सेव करें - मैनेज करें > इंटेंट > redirect.refund.info इंटेंट पर वापस जाएं और
I want to swap this item for a refundलाइन हटाएं. - मैनेज करें > टेस्ट केस पर वापस जाएं. इसके बाद, रिफ़ंड के लिए स्वैप करें टेस्ट केस को चुनें और उसे चलाएं.
हाल ही में किया गया टेस्ट पूरा नहीं हो सका. आपको यह गड़बड़ी का मैसेज मिला है:
If you would like to change your item for a different one, please return your unwanted item and place a new order. If your refund is accepted, we will refund the price you paid for your item back to your original payment method.`
Is there anything else I can help you with?
Page: Page mismatch:
Expected: Refund
Actual: Swapping
दूसरे शब्दों में कहें, तो यह एक ऐसा अनुरोध है जिसे गलत तरीके से समझा गया है. यह गलत पॉज़िटिव टेस्ट का नतीजा है. जांच पूरी नहीं हो सकी. हमें रिफ़ंड पेज दिखने की उम्मीद थी, लेकिन स्वैपिंग पेज दिखने लगा.
कवरेज
Dialogflow CX में, टेस्ट कवरेज एक मेज़रमेंट है. इसका इस्तेमाल यह बताने के लिए किया जाता है कि किसी टेस्ट सुइट के चलने पर, वर्चुअल एजेंट (पेज और इंटेंट) का डायलॉग किस हद तक पूरा हुआ. टेस्ट कवरेज ज़्यादा होने वाले वर्चुअल एजेंट के ज़्यादातर डायलॉग की टेस्टिंग के दौरान जांच की जाती है. इसे प्रतिशत के तौर पर मापा जाता है. इससे पता चलता है कि टेस्ट कवरेज कम होने वाले वर्चुअल एजेंट की तुलना में, इसमें ऐसे बग होने की संभावना कम होती है जिनका पता नहीं चल पाया है. जैसे, अनुरोधों को ठीक से न समझ पाना.
- सभी टेस्ट केस के लिए टेस्ट कवरेज रिपोर्ट देखने के लिए, कवरेज पर क्लिक करें.
- ट्रांज़िशन टैब पर क्लिक करें.
इससे आपको सभी पेज ट्रांज़िशन के लिए टेस्ट कवरेज दिखेगा.

- इंटेंट टैब पर क्लिक करें.
इससे आपको सभी इंटेंट के लिए टेस्ट कवरेज दिखेगा.

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

रेफ़रंस
Dialogflow CX के बारे में ज़्यादा जानने के लिए, इन ब्लॉग और दस्तावेज़ों को पढ़ें!