1. खास जानकारी
पिछले अपडेट की तारीख: 07-08-2023
आपको क्या बनाने को मिलेगा
इस कोडलैब में, Dialogflow CX में एक सामान्य वर्चुअल एजेंट बनाने, उसे डिप्लॉय करने, और कॉन्फ़िगर करने का तरीका बताया गया है. यह एजेंट, यात्रा करने वाले स्कूबा डाइवर्स की ग्रुप बुकिंग और निजी चार्टर में मदद करेगा. वर्चुअल एजेंट, जनरेटिव एआई और Google के नए जनरेटिव लार्ज लैंग्वेज मॉडल (एलएलएम) का इस्तेमाल करके, वर्चुअल एजेंट के जवाब जनरेट करेगा.
आपको क्या सीखने को मिलेगा
- ज़रूरी एपीआई चालू करने का तरीका
- Dialogflow, पेज फ़ॉर्म के पैरामीटर की वैल्यू को इंटेंट पैरामीटर से अपने-आप कैसे भरता है
- Dialogflow में इवेंट हैंडलर कॉन्फ़िगर करने का तरीका
- फ़्लो और पैरामीटर भरने के दौरान इस्तेमाल किए जाने वाले, नो-मैच इवेंट हैंडलर पर जनरेटिव फ़ॉलबैक को चालू करने का तरीका
- बातचीत की बुनियादी और एजेंट से जुड़ी स्थितियों को मैनेज करने के लिए, अपना टेक्स्ट प्रॉम्प्ट कॉन्फ़िगर करने का तरीका
- ज़रूरी पैरामीटर के लिए, रीप्रॉम्प्ट हैंडलर जनरेट करने के लिए, इंटेंट और पैरामीटर की अच्छी जानकारी कैसे लिखें. इसमें उपयोगकर्ता के तय किए गए रीप्रॉम्प्ट के अलावा अन्य रीप्रॉम्प्ट भी शामिल हैं
- अपने एजेंट की जांच करने और खरीदारों के ऐसे सवालों का जवाब देने के लिए जनरेटिव फ़ॉलबैक की सुविधा को ट्रिगर करने का तरीका
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud प्रोजेक्ट
- Chrome जैसा कोई ब्राउज़र
2. सेट अप करना
Dialogflow CX में जनरेटिव फ़ॉलबैक सुविधा का इस्तेमाल शुरू करने से पहले, आपको Dialogflow API चालू करना होगा.
Cloud Console का इस्तेमाल करके Dialogflow API चालू करना
- अपने ब्राउज़र में Google Cloud Console खोलें.
- Google Cloud Console में, एपीआई लाइब्रेरी पर जाएं. यहां आपको उन एपीआई और सेवाओं की सूची दिखेगी जिन्हें चालू किया जा सकता है.
- एपीआई लाइब्रेरी पेज पर सबसे ऊपर मौजूद खोज बार का इस्तेमाल करके,
Dialogflow APIखोजें. इसके बाद, खोज के नतीजों में दिखने वाली सेवा पर क्लिक करें. - अपने Google Cloud प्रोजेक्ट में Dialogflow API चालू करने के लिए, चालू करें बटन पर क्लिक करें.
gcloud सीएलआई का इस्तेमाल करना (अन्य तरीका)
इसके अलावा, एपीआई को चालू करने के लिए, इस gcloud कमांड का इस्तेमाल किया जा सकता है:
gcloud services enable dialogflow.googleapis.com
अगर एपीआई चालू हो गया है, तो आपको इस तरह का मैसेज दिखेगा:
Operation "operations/..." finished successfully.
कोड पाएं
आपको वर्चुअल एजेंट शुरू से नहीं बनाना होगा. हम आपको एक एजेंट देंगे. आपको उसे Dialogflow CX Console से वापस लाना होगा. इसके बाद, उसे बेहतर बनाना होगा.
सोर्स कोड डाउनलोड करने के लिए:
- एक नया ब्राउज़र टैब खोलें. इसके बाद, एजेंट रिपॉज़िटरी पर जाएं और उसे कमांड-लाइन से क्लोन करें.
- शुरुआती एजेंट को JSON पैकेज के तौर पर एक्सपोर्ट कर दिया गया है. फ़ाइल को अनज़िप करें, एजेंट की सेटिंग देखें, फ़्लो की परिभाषा
Liveaboards.jsonदेखें, और आखिर में फ़्लो पेजों, इंटेंट, और इकाइयों को ब्राउज़ करें.
3. नया एजेंट बनाना
Dialogflow कंसोल खोलें
इस कोडलैब में बाकी चरणों को पूरा करने के लिए, आपको Dialogflow CX कंसोल के साथ-साथ अपने Google Cloud प्रोजेक्ट का इस्तेमाल करना होगा.
- अपने ब्राउज़र में, Dialogflow CX कंसोल पर जाएं.
- वह Google Cloud प्रोजेक्ट चुनें जिसका आपको इस्तेमाल करना है या इस्तेमाल करने के लिए नया प्रोजेक्ट बनाएं.
- आपको Dialogflow CX कंसोल में एजेंट की सूची दिखेगी.
अगर पहली बार Dialogflow CX का इस्तेमाल किया जा रहा है, तो अपनी ज़रूरतों के हिसाब से प्रोजेक्ट और सेटिंग कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, Dialogflow CX का दस्तावेज़ पढ़ें.
नया Dialogflow CX एजेंट बनाना
- GitHub रिपो से डाउनलोड किए गए एजेंट को वापस लाने के लिए, आपको एक नया एजेंट बनाना होगा. Dialogflow CX कंसोल में, पेज के सबसे ऊपर दाएं कोने में मौजूद नया एजेंट बनाएं पर क्लिक करें.

- अपने हिसाब से एजेंट बनाएं विकल्प चुनें.

- नीचे दी गई एजेंट सेटिंग के साथ फ़ॉर्म भरें. इसके बाद, एजेंट बनाने के लिए बनाएं पर क्लिक करें.
- डिसप्ले नेम के तौर पर यह चुनें:
Divebooker - जगह की जानकारी के तौर पर यह चुनें:
us-central1 - अपनी पसंद का टाइम ज़ोन चुनना
en - Englishको डिफ़ॉल्ट भाषा के तौर पर चुनें
- Dialogflow आपके लिए एजेंट को अपने-आप खोल देगा. अभी और भी बहुत कुछ बाकी है!
Divebooker एजेंट को वापस लाना
- एजेंट की सूची वाले पेज पर वापस जाएं और उस एजेंट की पहचान करें जिसे आपने अभी बनाया है. विकल्प
पर क्लिक करें. इसके बाद, वापस लाएं बटन पर क्लिक करें. - अपलोड करें विकल्प चुनें. इसके बाद, उस ZIP फ़ाइल को छोड़ें या चुनें जिसे आपने पहले GitHub repository से डाउनलोड किया था.
- हमने जो एजेंट दिया है उसे इंपोर्ट करने के लिए, वापस लाएं बटन पर क्लिक करें

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

- अपने एजेंट के लिए कोई शुभकामना संदेश टाइप करें, जैसे कि
Helloऔरwhat is a liveaboard?पूछें. सवाल किसी भी इंटेंट से मैच नहीं होता है. इसलिए, "माफ़ करें, मुझे नहीं पता कि आपकी मदद कैसे करूँ" जैसा सामान्य प्रॉम्प्ट दिखाया जाता है. सिम्युलेटर पर ओरिजनल जवाब की जांच करके, यह देखा जा सकता है कि sys.no-match-default पहले से मौजूद इवेंट को ट्रिगर किया गया था या नहीं.

स्क्रोल करके, JSON रिस्पॉन्स के सबसे नीचे तक जाएं. ध्यान दें कि मिलते-जुलते इंटेंट को खोजते समय, Dialogflow को पता चलता है कि यह NO_MATCH है. इसलिए, वह no-match इवेंट को ट्रिगर करता है.

- बनाएं टैब पर जाएं और लाइवबोर्ड फ़्लो का स्टार्ट पेज खोलें.

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

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


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

- स्टार्ट पेज खोलें और head.send.group.request रूट पर क्लिक करें. नीचे की ओर स्क्रोल करके ट्रांज़िशन सेक्शन पर जाएं. इससे Dialogflow को यह पता चलता है कि इस इंटेंट के मैच होने पर, किस पेज पर ट्रांज़िशन करना है.

- रास्ता की परिभाषा बंद करें और ज़्यादा जानकारी इकट्ठा करें पेज को बड़ा करें. एंट्री फ़ुलफ़िलमेंट और पैरामीटर की सूची देखें.

Dialogflow CX में मौजूद हर पेज के लिए, एक फ़ॉर्म तय किया जा सकता है. यह पैरामीटर की एक सूची होती है. इसमें वे पैरामीटर शामिल होते हैं जिन्हें पेज के लिए, उपयोगकर्ता से इकट्ठा किया जाना चाहिए. ध्यान दें कि एजेंट ने यात्रा की जगह के बारे में नहीं पूछा, क्योंकि हमने इसे शुरुआती इनपुट के तौर पर पास किया था. साथ ही, destination भी एक इंटेंट पैरामीटर है. जब कोई पेज पहली बार चालू होता है और चालू रहने के दौरान, इंटेंट पैरामीटर के नाम वाला कोई भी फ़ॉर्म पैरामीटर, सेशन पैरामीटर की वैल्यू पर अपने-आप सेट हो जाता है. साथ ही, इससे जुड़ा प्रॉम्प्ट स्किप हो जाता है.
- मैनेज करें टैब पर जाएं. इसके बाद, इंटेंट सेक्शन में जाकर, head.send group request इंटेंट पर क्लिक करें. इस इंटेंट के लिए दिए गए ट्रेनिंग फ़्रेज़ और ट्रेनिंग फ़्रेज़ के एनोटेट किए गए हिस्सों को देखें.

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

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

- डेस्टिनेशन इकाई पर क्लिक करके देखें कि इकाई किन वैल्यू से मेल खाती है. "यूरोप" न तो कोई एंट्री है और न ही इसका कोई समानार्थी शब्द है.
- फ़्लो डायग्राम में, ज़्यादा जानकारी इकट्ठा करें पेज को बड़ा करें. इसमें फ़ॉर्म पैरामीटर होते हैं. destination पैरामीटर पर क्लिक करें.
- पैरामीटर पैनल पर नीचे की ओर स्क्रोल करके, फिर से प्रॉम्प्ट करने वाले इवेंट हैंडलर सेक्शन पर जाएं. इसके बाद, कोई मैच नहीं मिला (डिफ़ॉल्ट) इवेंट हैंडलर पर क्लिक करें.
पैरामीटर-लेवल का यह इवेंट हैंडलर, खास तौर पर फ़ॉर्म भरते समय असली उपयोगकर्ता के अमान्य इनपुट को हैंडल करने के लिए बनाया गया है. "यूरोप'' एक अनचाहा इनपुट है. इसलिए, sys.no-match-default इवेंट शुरू हुआ और इस इवेंट के लिए तय किए गए रीप्रॉम्प्ट हैंडलर को कॉल किया गया. एजेंट कहता है सेक्शन में, फिर से प्रॉम्प्ट करने के लिए दो वैकल्पिक मैसेज दिए गए हैं.

बहुत बढ़िया! इन टेस्ट केस में, आम तौर पर सामने आने वाली स्थितियों के बारे में बताया गया है. एजेंट से उम्मीद की जाती है कि वह इन स्थितियों को सही तरीके से हैंडल करे. अक्सर उपयोगकर्ता ऐसे सवाल पूछते हैं जिनके जवाब बॉट नहीं दे पाते. इसके अलावा, वे ऐसे अनुरोध करते हैं जिन्हें बॉट पूरा नहीं कर पाते. लॉन्ग टेल के लिए डिज़ाइन करना बहुत मुश्किल होता है. इसका मतलब है कि ज़्यादातर उपयोगकर्ता जिन रास्तों का इस्तेमाल करते हैं उनके अलावा अन्य रास्तों के लिए डिज़ाइन करना. सोचें कि बातचीत में क्या-क्या गड़बड़ियां हो सकती हैं. साथ ही, यह भी सोचें कि उपयोगकर्ता कौन-कौनसे ऐसे तरीके अपना सकते हैं जो उम्मीद के मुताबिक नहीं हैं या काम नहीं करते.
अपने-आप बोली पहचानने की सुविधा (एएसआर) में हुई तरक्की का मतलब है कि हमें लगभग हमेशा यह पता होता है कि उपयोगकर्ताओं ने क्या कहा. हालांकि, यह पता लगाना अब भी एक चुनौती है कि उपयोगकर्ताओं का मतलब क्या था. अक्सर, किसी बातचीत के दौरान बोले गए शब्दों को अलग-अलग करके नहीं समझा जा सकता. उन्हें सिर्फ़ संदर्भ के हिसाब से समझा जा सकता है. इस कोडलैब के अगले सेक्शन में, हम यह जानेंगे कि Google के नए जनरेटिव लार्ज लैंग्वेज मॉडल (एलएलएम), बातचीत को वापस पटरी पर लाने और उसे आगे बढ़ाने में कैसे मदद कर सकते हैं.
5. जनरेटिव फ़ॉलबैक की सुविधा चालू करना
जनरेटिव फ़ॉलबैक सुविधा क्या है?
जनरेटिव फ़ॉलबैक सुविधा, Dialogflow CX की एक सुविधा है. यह वर्चुअल एजेंट के जवाब जनरेट करने के लिए, Google के लार्ज लैंग्वेज मॉडल (एलएलएम) का इस्तेमाल करती है.
यह कैसे मददगार है?
इस्तेमाल के मुख्य उदाहरणों के बीच, उपयोगकर्ता के कुछ सामान्य अनुरोध भी होते हैं. जैसे, अगर उपयोगकर्ता को एजेंट की बात समझ में नहीं आई, तो उसे दोहराने के लिए कहना, उपयोगकर्ता के कहने पर लाइन को होल्ड करना, और बातचीत की खास जानकारी देना. पहले टेस्ट में, एजेंट "लाइवबोर्ड क्या है?" सवाल का जवाब नहीं दे सका. ऐसा इसलिए हुआ, क्योंकि हमने इसके लिए कोई इंटेंट नहीं बनाया है. साथ ही, हमने डाइविंग और लाइवबोर्ड से जुड़े सामान्य सवालों को हैंडल करने के लिए फ़्लो डिज़ाइन नहीं किया है.
मज़बूत इंटेंट होने के बावजूद, गड़बड़ी होने की संभावना बनी रहती है. ऐसा हो सकता है कि उपयोगकर्ता चुप रहें (इनपुट नहीं दिया गया) या कुछ ऐसा कहें जो स्क्रिप्ट में नहीं है (कोई मैच नहीं मिला). गड़बड़ियां होने के बाद उन्हें ठीक करने के बजाय, उन्हें होने से रोकना बेहतर होता है. हालांकि, गड़बड़ियों को पूरी तरह से रोका नहीं जा सकता. "माफ़ करें, मुझे नहीं पता कि आपकी मदद कैसे करूँ" जैसे सामान्य जवाब या कम से कम काम के समाधान अक्सर काफ़ी नहीं होते. गड़बड़ी के बारे में बताने वाले प्रॉम्प्ट, सहयोग के सिद्धांत के आधार पर होने चाहिए. इस सिद्धांत के मुताबिक, असरदार बातचीत इस बात पर निर्भर करती है कि बातचीत में शामिल लोगों के बीच सहयोग की भावना है.
अगले सेक्शन में, हम देखेंगे कि जनरेटिव फ़ॉलबैक सुविधा को कैसे कॉन्फ़िगर किया जा सकता है, ताकि इंटेंट कवरेज को बढ़ाया जा सके और बेहतर ग्राहक अनुभव के लिए, गड़बड़ी को ठीक करने की प्रोसेस को आसान बनाया जा सके.
पूरे फ़्लो के नो-मैच इवेंट के लिए, जनरेटिव फ़ॉलबैक की सुविधा चालू करना'
फ़्लो, पेजों या पैरामीटर भरने के दौरान इस्तेमाल किए जाने वाले, नो-मैच इवेंट हैंडलर पर जनरेटिव फ़ॉलबैक की सुविधा चालू की जा सकती है. अगर किसी ऐसे इवेंट के लिए जनरेटिव फ़ॉलबैक की सुविधा चालू है जिससे कोई इंटेंट मैच नहीं होता है, तो जब भी वह इवेंट ट्रिगर होगा, Dialogflow एक जनरेट किया गया जवाब तैयार करने की कोशिश करेगा. यह जवाब उपयोगकर्ता को वापस सुनाया जाएगा. अगर जवाब जनरेट करने की प्रोसेस सफल नहीं होती है, तो एजेंट का सामान्य जवाब दिया जाएगा.
आपके पास, मैच न होने वाले इवेंट हैंडलर पर अपने एजेंट में जनरेटिव फ़ॉलबैक की सुविधा चालू करने का विकल्प होता है. इसका इस्तेमाल फ़्लो, पेज या पैरामीटर फ़ुलफ़िलमेंट में किया जा सकता है.
हम Liveaboards के पूरे फ़्लो के लिए, नो-मैच-डिफ़ॉल्ट इवेंट के लिए जनरेटिव फ़ॉलबैक की सुविधा चालू करेंगे.
- फ़्लो के स्टार्ट पेज को बड़ा करें.
- इवेंट हैंडलर में जाकर, sys.no-match-default पर क्लिक करें.
- एजेंट के जवाब में जाकर, जनरेटिव फ़ॉलबैक की सुविधा चालू करें को चुनें. इसके बाद, सेव करें पर क्लिक करें


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

- एजेंट के जवाब में जाकर, जनरेटिव फ़ॉलबैक चालू करें को चुनें

- आखिर में, सेव करें पर क्लिक करें
- अब destination और email-address के लिए, जनरेटिव फ़ॉलबैक की सुविधा चालू करने के लिए, ठीक यही चरण दोहराएं
बहुत बढ़िया! आपने जनरेटिव फ़ॉलबैक की सुविधा चालू की हो, ताकि अनचाहे इंटेंट और अमान्य पैरामीटर वैल्यू को हैंडल किया जा सके. इसके बाद, हम देखेंगे कि जनरेटिव फ़ॉलबैक सुविधा को टेक्स्ट प्रॉम्प्ट के साथ कैसे कॉन्फ़िगर किया जाता है. इस सुविधा के ज़रिए एलएलएम को यह निर्देश दिया जाता है कि उसे कैसे जवाब देना है.
6. जनरेटिव फ़ॉलबैक को कॉन्फ़िगर करना
जनरेटिव फ़ॉलबैक सुविधा, जनरेट किए गए जवाब को तैयार करने के लिए, लार्ज लैंग्वेज मॉडल को अनुरोध भेजती है. अनुरोध, टेक्स्ट प्रॉम्प्ट के तौर पर किया जाता है. इसमें सामान्य भाषा के साथ-साथ, एजेंट और बातचीत की मौजूदा स्थिति के बारे में जानकारी शामिल होती है. इस सुविधा को कई तरीकों से कॉन्फ़िगर किया जा सकता है:
- जवाब जनरेट करने की प्रोसेस के लिए, पहले से तय किया गया कोई प्रॉम्प्ट चुनें.
- अपनी पसंद के मुताबिक प्रॉम्प्ट तय करें.
पहले से तय किया गया कोई प्रॉम्प्ट चुनना
- Dialogflow CX कंसोल पर, एजेंट की सेटिंग पर क्लिक करें

- एमएल टैब पर जाएं. इसके बाद, जनरेटिव एआई सब-टैब पर जाएं.

यह सुविधा, दो टेंप्लेट प्रॉम्प्ट के साथ उपलब्ध है. पहला, डिफ़ॉल्ट टेंप्लेट है, जो दिखता नहीं है. दूसरा, उदाहरण टेंप्लेट है, जो आपको अपने प्रॉम्प्ट लिखने में मदद करता है.
- उदाहरण टेंप्लेट चुनें. इसके बाद, इसकी जांच करने के लिए, ड्रॉपडाउन की दाईं ओर मौजूद बदलाव करें बटन पर क्लिक करें.
पहले से तय किए गए प्रॉम्प्ट की मदद से, वर्चुअल एजेंट बातचीत की बुनियादी स्थितियों को हैंडल कर सकता है. उदाहरण के लिए:
- उपयोगकर्ता का स्वागत करें और उसे विदा करें.
- अगर उपयोगकर्ता को एजेंट की बात समझ नहीं आई है, तो उसे दोबारा बताएं.
- जब उपयोगकर्ता लाइन पर बने रहने के लिए कहे, तब लाइन पर बने रहें.
- बातचीत की खास जानकारी दो.
चलिए, Divebooker एजेंट के लिए कोई खास टेक्स्ट प्रॉम्प्ट तय करते हैं!
7. अपना प्रॉम्प्ट लिखना
- नीचे दिए गए प्रॉम्प्ट को कॉपी करें और उसे टेक्स्ट प्रॉम्प्ट वाले फ़ील्ड में चिपकाएं
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description
At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.
Currently you can $route-descriptions
The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}
Then the human asked:
$last-user-utterance
You say:
- नए प्रॉम्प्ट को नए टेंप्लेट के तौर पर सेव करने के लिए, नए टेंप्लेट के तौर पर सेव करें को चुनें. इसके बाद, पैनल के निचले दाएं कोने में मौजूद सेव करें को चुनें.

- नए बनाए गए प्रॉम्प्ट को चालू प्रॉम्प्ट के तौर पर सेट करने के लिए, आपको सेटिंग को सेव करना होगा.

अपना टेक्स्ट प्रॉम्प्ट लिखते समय, साफ़ तौर पर और कम शब्दों में जानकारी दें. साथ ही, यह भी बताएं कि आपको किस तरह का जवाब चाहिए. एलएलएम को दिए गए प्रॉम्प्ट के तरीके से, एलएलएम के जवाब की क्वालिटी पर काफ़ी असर पड़ सकता है. एलएलएम को निर्देशों का पालन करने के लिए ट्रेन किया जाता है. इसलिए, आपका प्रॉम्प्ट जितना सटीक होगा, आपको उतने ही बेहतर नतीजे मिलेंगे. कोई प्रॉम्प्ट लिखें और मिले हुए नतीजों के आधार पर, उसे बेहतर बनाने के लिए उसमें बदलाव करें.
असरदार प्रॉम्प्ट बनाने के लिए, यहां दिए गए सबसे सही तरीके अपनाएं:
- एलएलएम से जो काम करवाना है उसके बारे में कम शब्दों में सटीक जानकारी दें. न इससे ज़्यादा और न इससे कम. इसे पूरा और छोटा रखें.
- इसके अलावा, प्रॉम्प्ट सटीक और साफ़ तौर पर बताया गया होना चाहिए. इसमें अस्पष्ट या उलझाऊ भाषा का इस्तेमाल नहीं किया जाना चाहिए.
- मुश्किल टास्क को छोटे-छोटे और आसान हिस्सों में बांटें. टास्क को छोटे-छोटे चरणों में बांटकर, मॉडल को एक बार में एक चीज़ पर फ़ोकस करने में मदद मिलती है. इससे, गड़बड़ियों या भ्रम की संभावना कम हो जाती है.
- जवाब की क्वालिटी को बेहतर बनाने के लिए, अपने प्रॉम्प्ट में उदाहरण जोड़ें. एलएलएम, उदाहरणों से यह सीखता है कि किसी सवाल का जवाब किस तरह देना है.
प्रॉम्प्ट बनाते समय, यह बताने के लिए कि किस तरह का कॉन्टेक्स्ट जनरेट किया जाना चाहिए, नैचुरल लैंग्वेज में ब्यौरे के साथ-साथ इन प्लेसहोल्डर का भी इस्तेमाल किया जा सकता है:
$conversationएजेंट और उपयोगकर्ता के बीच हुई बातचीत. इसमें उपयोगकर्ता के आखिरी जवाब को शामिल नहीं किया जाता. मुड़ने के निर्देशों से पहले इस्तेमाल होने वाले शब्दों (जैसे: टेक्स्ट प्रॉम्प्ट में "इंसान", "एआई" या "आप", "एजेंट")$last-user-utteranceउपयोगकर्ता ने आखिरी बार क्या कहा था.$flow-descriptionचालू फ़्लो का ब्यौरा.$route-descriptionsऐक्टिव इंटेंट की जानकारी.
अब हमारे पास शुरुआती टेक्स्ट प्रॉम्प्ट है. अगला काम यह पक्का करना है कि फ़्लो और इंटेंट के बारे में अच्छी जानकारी दी गई हो.
8. फ़्लो और इंटेंट के ब्यौरे जोड़ना
फ़्लो का ब्यौरा जोड़ें
- लाइवबोर्ड फ़्लो में जानकारी जोड़ने के लिए, फ़्लो की सेटिंग ऐक्सेस करें. इसके लिए, फ़्लो सेक्शन में जाकर, फ़्लो पर अपना माउस घुमाएं.

- विकल्प
बटन पर क्लिक करें. - फ़्लो की सेटिंग चुनें और यह जानकारी (या इसी तरह की कोई जानकारी) जोड़ें:
search, find and book liveaboards.

- सेव करें पर क्लिक करें
इंटेंट की जानकारी जोड़ना
- अब head.send.group.request इंटेंट के लिए, एक अच्छा ब्यौरा जोड़ते हैं. मैनेज करें टैब पर जाएं. इसके बाद, संसाधन सेक्शन में जाकर इंटेंट चुनें. इसके बाद, head.send.group.request इंटेंट चुनें.
- यह जानकारी जोड़ें:
assist users with group or full charter reservations. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands
ध्यान दें कि ब्यौरे में अहम जानकारी शामिल होती है. जैसे, नाव में यात्रा करने वाले यात्रियों की कम से कम और ज़्यादा से ज़्यादा संख्या. इस बात का ध्यान रखें!
- सेव करें पर क्लिक करें
और काम हो गया! आपने फ़्लो और पैरामीटर फ़ुलफ़िलमेंट, दोनों के लिए नो-मैच इवेंट हैंडलर पर जनरेटिव फ़ॉलबैक की सुविधा चालू की हो. आपने अपना टेक्स्ट प्रॉम्प्ट भी तय किया है. जनरेटिव फ़ॉलबैक सुविधा, इस प्रॉम्प्ट को लार्ज लैंग्वेज मॉडल को भेजती है, ताकि जनरेटिव जवाब तैयार किए जा सकें.
अगले सेक्शन में, आपको अपने एजेंट की फिर से जांच करनी होगी. इससे यह पता चलेगा कि वह पहले पूछे गए मुश्किल सवालों के जवाब कैसे दे सकता है.
9. अपने एजेंट की फिर से जांच करना
वर्चुअल एजेंट पर जनरेटिव फ़ॉलबैक को कॉन्फ़िगर और चालू करने के बाद, अब उससे मिलते-जुलते मुश्किल सवाल पूछे जा सकते हैं. साथ ही, यह देखा जा सकता है कि वह जवाबों को कैसे हैंडल करता है.
सिम्युलेटर को फिर से खोलने के लिए, एजेंट की जांच करें पर क्लिक करें.

एजेंट से, लाइवबोर्ड और लाइवबोर्ड डाइविंग के बारे में फिर से पूछें. अब ध्यान दें कि हर डायलॉग में, उपयोगकर्ता के तय किए गए मैसेज के साथ-साथ जनरेट किए गए जवाबों को लाल बॉक्स में हाइलाइट किया गया है.

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

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


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


यहां ध्यान देने लायक कुछ बातें बताई गई हैं:
- 20 को मान्य संख्या क्यों नहीं माना जाता? हमने इंटेंट के ब्यौरे में, मेहमानों की संख्या की सीमा तय की है: "यह एजेंट, मेहमानों की जानकारी इकट्ठा करता है. जैसे, यात्रा की अवधि, मंज़िल, मेहमानों की संख्या ***(कम से कम 4 और ज़्यादा से ज़्यादा 15 लोग)*, संपर्क जानकारी" . एलएलएम ने जनरेटिव रिस्पॉन्स में बताया है कि "माफ़ करें, हम सिर्फ़ 15 मेहमानों तक की ग्रुप बुकिंग में मदद कर सकते हैं". यह जवाब, मेहमानों की संख्या से जुड़ी हमारी पाबंदियों के मुताबिक है. इसे और बेहतर तरीके से लागू करने के लिए, मेहमानों की संख्या एक कस्टम RegExp इकाई है. यह सिर्फ़ 4 से 15 के बीच की संख्याओं से मेल खाती है.
- बातचीत जारी रहती है, क्योंकि आखिर में उपयोगकर्ता अब भी 15 डाइव के लिए ऑफ़र पाने का इच्छुक है. ऐसा अक्सर बातचीत के दौरान होता है. हम अक्सर अपने फ़ैसले बदलते रहते हैं! ध्यान दें कि एजेंट किस तरह से मदद कर रहा है और उपयोगकर्ता को सही तरीके से आगे बढ़ने के लिए कैसे गाइड कर रहा है.
बातचीत के डिज़ाइन में, डायलॉग के एक हिस्से की स्क्रिप्ट तैयार की जाती है. ऐसा इसलिए किया जाता है, ताकि कोई भी व्यक्ति उस स्क्रिप्ट को पढ़कर, डायलॉग के दूसरे हिस्से को बोल सके. लॉन्ग टेल के लिए डिज़ाइन करते समय, डेवलपर को इस बात पर ध्यान देना होगा कि उपयोगकर्ता आपके डायलॉग के हर चरण में क्या कह सकता है. इससे, आपके रूट, हैंडलर, और पैरामीटर तय किए जा सकेंगे. इसलिए, हमने Dialogflow CX में जनरेटिव फ़ॉलबैक की सुविधा जोड़ी है. इससे डेवलपर, बातचीत के डिज़ाइन के सिद्धांतों पर ध्यान दे पाएंगे. साथ ही, उन्हें लागू करने से जुड़ी जानकारी पर कम ध्यान देना होगा, ताकि वे लोगों को बातचीत का बेहतर अनुभव दे सकें.
एक और टेस्ट करते हैं. इस बार, बॉट को ऐसी जगह के बारे में पूछते हैं जो उपलब्ध जगहों की सूची में नहीं है. जैसे, मालदीव. इसके बाद, हम यह देखेंगे कि पर्दे के पीछे क्या होता है.

ध्यान दें कि हमने destination पैरामीटर के लिए, no-match इवेंट पर जनरेटिव फ़ॉलबैक की सुविधा भी चालू की है. इसलिए, जनरेट किया गया जवाब पाने के लिए, लार्ज लैंग्वेज मॉडल को एक अनुरोध भेजा जाता है. 'एजेंट ने कहा' सेक्शन में दिए गए जवाबों को अनदेखा किया जाता है.
यहां दिए गए टेक्स्ट बॉक्स से, आपको यह बेहतर तरीके से समझने में मदद मिलेगी कि प्लेसहोल्डर, लार्ज लैंग्वेज मॉडल को भेजे गए अनुरोध को कैसे बेहतर बनाते हैं.
यह कस्टम टेक्स्ट प्रॉम्प्ट है, जिसे हमने Dialogflow में कॉन्फ़िगर किया है. इसमें प्लेसहोल्डर को बोल्ड किया गया है:
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description
At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.
Currently you can $route-descriptions
The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}
Then the human asked:
$last-user-utterance
You say:
यहां दिए गए टेक्स्ट बॉक्स में, मैंने लार्ज लैंग्वेज मॉडल को मिला इनपुट और जनरेट किया गया आउटपुट शामिल किया है. इस आउटपुट में, जनरेट किया गया वह जवाब शामिल है जो उपयोगकर्ता को वापस सुनाया जाएगा:
llm_input: You are a friendly agent that likes helping traveling divers. You are under development and you can only help search, find and book liveaboards. At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts. Currently you can assist users who are looking for a group reservation or a full charter. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands. The conversation between the human and you so far was: Human: Hi, my name's Alessia AI Hi Alessia, what can I help you with today? Human: Can you help me find a nice boat for myself and my family? AI To assist you with that I need to collect the details of your travel and then we'll get back to you with an offer shortly. Where would you like to go? We can organize a charter in Costa Rica, Galapagos Islands and several locations around Mexico Then the human asked: The kids want to go to the Maldives llm_output: You say: I'm sorry Alessia, we can only help you with liveaboards in Costa Rica, Galapagos Islands and several locations around Mexico.
पहले किए गए टेस्ट की तरह ही, उपयोगकर्ता को भेजा गया जवाब मॉडल जनरेट करता है. यह जवाब, क्वेरी के बारे में दी गई जानकारी पर आधारित होता है: "पैसिफ़िक में ये जगहें होनी चाहिए: कोस्टा रिका, मेक्सिको, गैलापागोस द्वीप समूह"
पाबंदी वाले वाक्यांशों की सूची में बदलाव करना
जनरेटिव फ़ॉलबैक की सुविधा को कई तरीकों से कॉन्फ़िगर किया जा सकता है:
- जवाब जनरेट करने की प्रोसेस के लिए, पहले से तय किया गया कोई प्रॉम्प्ट चुनें.
- अपनी पसंद के मुताबिक प्रॉम्प्ट तय करें.
- पाबंदी वाले वाक्यांशों की सूची में बदलाव करें.
अब तक हमने पहले दो तरीकों के बारे में जाना. आइए, तीसरे विकल्प के बारे में जानें.
- एजेंट की सेटिंग में, एमएल टैब पर जाएं. इसके बाद, जनरेटिव एआई सब-टैब पर जाएं.
- पाबंदी वाले वाक्यांश सेक्शन में जाकर, सूची में ये वाक्य जोड़ें:
Dangerous countryHateful placeMedical assistance- सेव करें पर क्लिक करें.
- रीसेट करें आइकॉन पर क्लिक करें और आखिरी स्थिति को फिर से टेस्ट करें. दुनिया के किसी खूबसूरत डाइविंग डेस्टिनेशन के बारे में बताने के बजाय, पाबंदी वाले वाक्यांशों में से कोई एक वाक्यांश डालें.

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

आपने वर्चुअल एजेंट बना लिया है. साथ ही, आपने फ़्लो में इस्तेमाल किए गए no-match इवेंट हैंडलर और पैरामीटर भरने के दौरान, जनरेटिव फ़ॉलबैक की सुविधा चालू कर दी है.
जनरेटिव फ़ॉलबैक सुविधा के साथ-साथ, बातचीत के फ़्लो और इरादे के बारे में अच्छी तरह से जानकारी देने से, एजेंट को खास और मददगार जवाब देने में मदद मिल सकती है. इसके उलट, सामान्य प्रॉम्प्ट जैसे कि "माफ़ करें, हमें नहीं पता कि आपकी मदद कैसे करें" या "माफ़ करें, आपने अमान्य विकल्प डाला है" जैसे जवाब मिल सकते हैं. लार्ज लैंग्वेज मॉडल से जनरेट किए गए गड़बड़ी के प्रॉम्प्ट, लोगों को सही रास्ते पर वापस ला सकते हैं. साथ ही, वे यह भी बता सकते हैं कि क्या किया जा सकता है और क्या नहीं.
बेझिझक बातचीत की अन्य स्थितियों को आज़माएं. साथ ही, Dialogflow CX और जनरेटिव एआई से जुड़ी अन्य उपलब्ध सुविधाओं के बारे में जानें.
क्लीन अप करें
इस कोडलैब में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क लिए जाने से बचने के लिए, यहां दी गई कार्रवाइयां करें:
- Dialogflow CX कंसोल पर जाएं और बनाए गए सभी एजेंट मिटाएं.
- Google Cloud Console में, 'एपीआई और सेवाएं' पेज पर जाएं और Dialogflow API को बंद करें.
इस बारे में और पढ़ें
इन गाइड और संसाधनों की मदद से, बातचीत वाले एआई मॉडल और जनरेटिव एआई के बारे में ज़्यादा जानें:
- Dialogflow CX के लिए दस्तावेज़
- जनरेटिव फ़ॉलबैक के लिए दस्तावेज़
- Google Cloud में जनरेटिव एआई
- PaLM के बारे में जानकारी
लाइसेंस
इस काम के लिए, Creative Commons एट्रिब्यूशन 2.0 जेनेरिक लाइसेंस के तहत लाइसेंस मिला है.
