मुख्य सामग्री पर जाएँ

Amazon Lex ट्यूटोरियल: AI चैटबॉट्स के लिए शुरुआती मार्गदर्शिका

Amazon Lex के साथ चैटबॉट बनाने की परिचयात्मक गाइड। जानें कि बॉट को कैसे सेट अप और कॉन्फ़िगर करें, बैकएंड सेवाओं के साथ इसका उपयोग करें, और विभिन्न प्लेटफ़ॉर्म्स पर डिप्लॉय करें।
· 15 मि॰ पढ़ें

AI के साथ खोजें

संदर्भ-सचेत (context-aware) चैटबॉट्स उपयोगकर्ता के पिछले इनपुट का रिकॉर्ड रखते हैं और उन्हें हालिया इंटरैक्शन से जोड़ते हैं। इससे वे बातचीत की शैली में संवाद कर पाते हैं और उपयोगकर्ता अनुभव को बेहतर बनाते हैं। Amazon Lex, Amazon Web Services (AWS) सूट का एक संदर्भ-सचेत चैटबॉट है। इसे 2017 में जारी किया गया था, और एक उन्नत संस्करण, Lex V2, 2021 में लॉन्च किया गया।

इस ट्यूटोरियल में, मैं AWS Lex V2 की बुनियादी अवधारणाएँ प्रस्तुत करता हूँ और इसका उपयोग कैसे करें, यह दिखाता हूँ। मैं Lex को सेट अप और कॉन्फ़िगर करने, आपका पहला Lex चैटबॉट बनाने, और बाहरी बैकएंड्स से इंटरफेस करने के तरीके कवर करूँगा। मैं वेबसाइटों और मैसेजिंग ऐप्स जैसे थर्ड-पार्टी प्लेटफ़ॉर्म्स के साथ Lex के इंटीग्रेशन का अवलोकन भी दूँगा। 

Amazon Lex क्या है?

Amazon Lex, AWS द्वारा प्रदान किया गया एक AI-आधारित संवाद इंजन है। Lex उपयोगकर्ता इनपुट को वॉइस और टेक्स्ट के रूप में स्वीकार करता है। डेवलपर बातचीत का प्रवाह निर्धारित करता है। इसके आधार पर, Lex उपयोगकर्ता इनपुट का उत्तर देकर संवाद को संचालित करता है। बातचीत इंटरफ़ेस को वॉइस बॉट, वेब ऐप, चैट प्लेटफ़ॉर्म (जैसे Slack या Facebook Messenger) आदि के रूप में परिनियोजित किया जा सकता है। Lex का उपयोग Amazon Alexa बनाने में भी किया जाता है।

Lex दो बुनियादी क्षमताओं को जोड़ता है: प्राकृतिक भाषा समझ (NLU) और स्वचालित वाक् पहचान (ASR)। यह उन डेवलपर्स को भी चैटबॉट्स, वर्चुअल असिस्टेंट्स आदि के लिए संवादात्मक इंटरफेस बनाने में सक्षम बनाता है, जिनके पास डीप लर्निंग में विशेषज्ञता नहीं है।

Amazon का उत्पाद होने के नाते, यह अन्य AWS सेवाओं के साथ इंटीग्रेट होता है, जैसे:

  • Amazon Cognito (पहचान प्रबंधन के लिए)
  • Amazon CloudWatch (सेवा की निगरानी के लिए)
  • DynamoDB (डेटाबेस बैकएंड के लिए)
  • Amazon Lambda (Salesforce और HubSpot जैसी बाहरी डेटा सोर्सेज से कनेक्ट करने के लिए) आदि

ये इंटीग्रेशन संवादात्मक AI सेवा को डिप्लॉय और स्केल करना आसान बनाते हैं। 

Amazon Lex सेट अप करना

इस सेक्शन में, मैं Amazon Lex को सेट अप करने का तरीका दिखाता हूँ। 

ध्यान दें कि AWS यूज़र इंटरफ़ेस अक्सर बदलता रहता है। इसलिए निर्देशों और स्क्रीनशॉट्स में विभिन्न सेक्शंस और शीर्षकों का लेआउट और टेक्स्ट समय के साथ या क्षेत्र के अनुसार बदल सकता है। 

स्टेप 1: AWS कंसोल में साइन इन करें

मैं मानता हूँ कि आपके पास पहले से एक AWS अकाउंट है। यदि नहीं, तो AWS Signup पेज पर दिए गए निर्देशों का पालन करें और नया अकाउंट रजिस्टर करें।

इस गाइड में, हम Lex को सेट अप और उपयोग करने के लिए AWS कंसोल का उपयोग करेंगे। अपने AWS क्रेडेंशियल दर्ज करके AWS Lex कंसोल में साइन इन करें और Lex होम पेज पर जाएँ।

स्टेप 2: नया बॉट बनाएं

  • नया बॉट बनाने के लिए Amazon Lex कंसोल पर जाएँ। 
  • Get Started का चयन करें। 

ऊपर दिए गए चरण से Bots होमपेज (नीचे दिखाया गया) खुलेगा। यह पेज आपके द्वारा पहले से बनाए गए Bots की सूची दिखाता है।

Amazon Lex Bots homepage.

Amazon Lex Bots होमपेज।

  • इस पेज पर Create Bot चुनें। 

यह एक नए बॉट की कॉन्फ़िगरेशन पेज पर ले जाएगा। यह बॉट बनाने के दो तरीकों को दिखाता है: Traditional और Generative AI।

Create a new bot in Amazon Lex.

नया बॉट बनाएं।

हम बॉट्स को सेट अप और कॉन्फ़िगर करने की प्रक्रिया सीखना चाहते हैं। इसलिए Traditional विधि चुनें और एक खाली बॉट से शुरुआत करें। 

  • Bot name: बॉट को एक नाम और विवरण दें। इस लेख में, हम “CabBookBot” नाम का एक सरल बॉट बनाते हैं जो कैब बुक करने के लिए है। 
  • IAM permissions: बॉट के लिए प्राधिकरण और प्रमाणीकरण प्रबंधित करने हेतु सही भूमिका चुनें।
    • यदि आपने पहले से बॉट बनाए हैं, तो मौजूदा भूमिकाओं के ड्रॉपडाउन से चुनें।
    • यदि यह आपका पहला बॉट है, तो “Create a role with basic Amazon Lex permissions.” चुनें। 
  • COPPA: यदि यह बॉट बच्चों और नाबालिगों की सेवा देने के लिए डिज़ाइन किया गया है, तो निर्दिष्ट करें कि यह Children’s Online Privacy Protection Act (COPPA) के अधीन है। हम “No” चुनते हैं। 
  • Idle session timeout: बातचीत के दौरान “संदर्भ” बनाए रखने के लिए बॉट्स को उपयोगकर्ता के पिछले संदेश याद रखने चाहिए। यदि उपयोगकर्ता कुछ समय से प्रतिक्रिया नहीं दे रहा है, तो हम मानते हैं कि वह अब बॉट का उपयोग नहीं कर रहा और नए उपयोगकर्ता के लिए संदर्भ रीसेट कर देते हैं। इसे डिफ़ॉल्ट मान पर छोड़ दें। 

आपको वैकल्पिक उन्नत सेटिंग्स अपडेट करने की आवश्यकता नहीं है; सीधे अगले सेक्शन पर जाएँ। 

आपको बॉट की भाषा(ओं) को भी सेट करना होगा क्योंकि Lex बॉट्स प्राकृतिक भाषा प्रसंस्करण (NLP) पर आधारित होते हैं।

  • इस उदाहरण में, हम डिफ़ॉल्ट English (US) भाषा का उपयोग करते हैं। 
  • डिफ़ॉल्ट सेटिंग्स रहने दें और Done चुनें। 

इसके बाद, आप Intents पेज पर पहुँचेंगे, जिसे हम अगले सेक्शन में कॉन्फ़िगर करेंगे। 

एक बेसिक बॉट बना लेने के बाद, अब मैं इसे हमारे उपयोग-केस—कैब बुकिंग—के लिए कॉन्फ़िगर करना समझाता हूँ।

स्टेप 3: इंटेंट्स कॉन्फ़िगर करें

जैसा कि नाम से स्पष्ट है, इंटेंट्स उपयोगकर्ता के इरादे या बातचीत के लक्ष्य का प्रतिनिधित्व करते हैं। उदाहरण के लिए, उपयोगकर्ता होटल या फ्लाइट बुक करना चाह सकता है। प्रत्येक बॉट कई लक्ष्यों की सेवा कर सकता है। 

प्रत्येक इंटेंट के लिए कुछ उदाहरण टेक्स्ट (जिन्हें sample utterances कहा जाता है) दिए जाने पर, Lex NLP का उपयोग कर उपयोगकर्ता इनपुट को इन उच्चारणों के आधार पर सही इंटेंट से पहचानता और मिलाता है। उदाहरण के लिए, टैक्सी बुकिंग बॉट में ऐसे सैंपल उच्चारण हो सकते हैं: “I want to book a cab,” “book me a cab from X to Y on this date,” आदि। 

पिछले चरण में बॉट क्रिएशन पेज पर Done चुनने के बाद, आप उस पेज पर पहुँचेंगे जहाँ आप NewIntent नाम का नया इंटेंट बना सकते हैं। 

इंटेंट पेज पर:

  • ऊपर Conversation Flow देखें। यह प्रत्येक बातचीत चरण के फ्लो और सैंपल टेक्स्ट संदेशों को दर्शाता है। 
  • इंटेंट का नाम किसी अर्थपूर्ण नाम, जैसे “CabBookIntent”, में अपडेट करें और उपयुक्त विवरण दें।

स्टेप 4: सैंपल उच्चारण जोड़ें

प्रत्येक इंटेंट के लिए कुछ सैंपल उच्चारण Lex को चाहिए होते हैं ताकि वह पहचान सके कि उपयोगकर्ता की आवश्यकता वर्तमान इंटेंट से मेल खाती है या नहीं। 

  • Intent पेज पर नीचे स्क्रॉल करके Sample utterances सेक्शन पर जाएँ। 
  • एडिटर विंडो को Plain Text पर स्विच करें। 
  • कुछ सैंपल उच्चारण, हर पंक्ति में एक, जोड़ें, उदाहरण के लिए:
    • I want to book a taxi
    • Book me a cab
    • I need to make a taxi reservation

Sample utterances in Amazon Lex.

सैंपल उच्चारण।

  • Initial response जोड़ें, जैसे, “Ok, I will help you book a cab,” ताकि उपयोगकर्ता के अनुरोध की पुष्टि हो सके। 

कन्वर्सेशन फ्लो बनाना

Lex बॉट्स एक पूर्व-निर्धारित बातचीत संरचना का पालन करते हैं। कन्वर्सेशन फ्लो बातचीत के घटकों को रेखांकित करता है और उनके विनिर्देश देता है। इस सेक्शन में, मैं बताता हूँ कि उपयोगकर्ता से संवाद करने और उनके अनुरोध को पूरा करने के लिए आवश्यक जानकारी प्राप्त करने हेतु बातचीत कैसे डिज़ाइन करें।

स्टेप 1: उपयोगकर्ता इनपुट कैप्चर करने के लिए स्लॉट्स जोड़ें

बॉट को उपयोगकर्ता से प्रासंगिक जानकारी माँगनी होती है। स्लॉट्स वह जानकारी रखते हैं जो उपयोगकर्ता के अनुरोध को पूरा करने के लिए बॉट को चाहिए। उदाहरण के लिए, कैब बुकिंग बॉट प्रारंभिक और गंतव्य शहर तथा यात्रा तिथि को स्लॉट मानों के रूप में प्राप्त करता है। 

Add slots to intents in Amazon Lex.

इंटेंट्स में स्लॉट्स जोड़ें।

प्रत्येक स्लॉट के लिए, आपको ये पैरामीटर्स निर्दिष्ट करने होते हैं:

  • Slot name: बॉट इस नाम का उपयोग स्लॉट के मान के लिए एक प्लेसहोल्डर के रूप में करता है। उदाहरण के लिए, आप बॉट का उत्तर इस प्रकार कॉन्फ़िगर कर सकते हैं: “You want to travel from {SourceCity}” और यह उपयोगकर्ता द्वारा दर्ज SourceCity स्लॉट के मान को स्वतः प्रतिस्थापित कर देगा।
  • Slot type: प्रोग्रामिंग वेरिएबल की तरह, Lex स्लॉट्स के भी कई प्रकार होते हैं। कई प्रीबिल्ट स्लॉट प्रकार उपलब्ध हैं, जैसे AMAZON.City, AMAZON.Date, आदि। आप कस्टम स्लॉट प्रकार भी जोड़ सकते हैं (आगे चर्चा होगी)।
  • Prompt: वह टेक्स्ट टेम्पलेट दें जिसका उपयोग बॉट प्रत्येक स्लॉट के मान के लिए उपयोगकर्ता से पूछने (प्रॉम्प्ट) के लिए कर सके।
  • Add Slot चुनें, और निम्न स्लॉट्स जोड़ें, इन्हें आवश्यक (required) के रूप में चिह्नित करें:

Slot name

Slot type

Prompt

SourceCity

AMAZON.City

Which city will you be traveling from?

DestinationCity

AMAZON.City

Which city will you be traveling to?

TravelDate

AMAZON.Date

On what date will you be traveling?

  • कुछ अतिरिक्त उच्चारण जोड़ें जो सीधे स्लॉट मानों को कैप्चर करें। उदाहरण के लिए:
    • Book a cab on {TravelDate} from {SourceCity} to {DestinationCity}
    • Book a cab from {SourceCity} to {DestinationCity} for {TravelDate}

कस्टम स्लॉट्स

इनबिल्ट स्लॉट प्रकार सभी उपयोग-केस के लिए पर्याप्त नहीं होते। उदाहरण के लिए, एक कैब बुकिंग सेवा में उपयोगकर्ता द्वारा पसंद किए गए कार के प्रकार (कॉम्पैक्ट, हैचबैक, सेडान, SUV, आदि) के लिए एक स्लॉट प्रकार हो सकता है। 

कस्टम स्लॉट जोड़ने के लिए:

  • बाएँ कॉलम के मेनू से Slot types पर जाएँ:
    • CabBookBot > Bot versions > Draft version > All languages > English (US) > Slot types). 
  • नए स्लॉट प्रकार के लिए एक नाम (जैसे CabType) और विवरण जोड़ें। 
  • स्लॉट मानों के दो प्रकारों में से एक चुनें: 
    • Expand: आप स्लॉट के लिए कुछ सैंपल मान देते हैं, और Lex इन्हें उदाहरण के रूप में लेकर नए संभावित मान सीखता है। जैसे, उपनामों की सूची देने पर, Lex ऐसे समान उपनामों को भी स्वीकारने लगेगा जिनका आपने स्पष्ट उल्लेख नहीं किया। 
    • Restrict: स्लॉट केवल आपकी दी गई सूची के मानों को ही स्वीकार करेगा। यह नए मान नहीं सीखेगा। 

इस मामले में, हमारे पास कुछ पूर्व-निर्धारित कैब प्रकार हैं। इसलिए, हम अपने स्लॉट मानों को इन्हीं प्रकारों तक सीमित रखते हैं।

  • आप प्रत्येक मान के लिए वैकल्पिक मान भी प्रदान कर सकते हैं। उदाहरण के लिए, Limousine के लिए Limo एक स्वीकार्य मान है। 

Custom slots in Amazon Lex.

कस्टम स्लॉट्स।

  • Save Slot type चुनें। नया स्लॉट प्रकार इंटेंट में स्लॉट जोड़ते समय उपलब्ध हो जाएगा।

स्टेप 2: प्रॉम्प्टिंग और एरर हैंडलिंग कॉन्फ़िगर करें

जब उपयोगकर्ता किसी स्लॉट मान के लिए पूछे गए प्रॉम्प्ट पर अमान्य उत्तर देता है, तो Lex उस प्रॉम्प्ट को दोहराता है। जब उपयोगकर्ता बार-बार उपयुक्त उत्तर देने में विफल रहता है (जैसे मान्य शहर का नाम), तो सत्र समाप्त हो जाता है। 

यदि उपयोगकर्ता बार-बार मान्य स्लॉट मान देने में विफल रहे, तो (सत्र समाप्त करने से पहले) Lex को एक त्रुटि संदेश देने के लिए सेट करें:

  • किसी व्यक्तिगत स्लॉट का चयन करें और उसके लिए Advanced options चुनें। 
  • एडवांस्ड ऑप्शंस विंडो में नीचे स्क्रॉल करके Slot capture: failure response सेक्शन पर जाएँ। 
  • अमान्य इनपुट के लिए उपयुक्त प्रतिक्रिया दें। उदाहरण के लिए, यदि उपयोगकर्ता बार-बार किसी ऐसे शहर का नाम दर्ज करता है जो मान्य नहीं है, तो बॉट उत्तर दे सकता है, “Sorry, we don't serve that city.”

Error handling and failure response in Amazon Lex.

एरर हैंडलिंग और फेल्योर रेस्पॉन्स।

सभी बॉट्स में एक FallbackIntent होता है, जो तब बुलाया जाता है जब उपयोगकर्ता का इनपुट मौजूदा इंटेंट्स से मेल नहीं खाता। क्योंकि यह इंटेंट डिफ़ॉल्ट रूप से सक्रिय होता है, इसके उच्चारणों को कस्टमाइज़ नहीं किया जा सकता। 

  • FallbackIntent के साथ एक सार्थक क्लोज़िंग रेस्पॉन्स निर्दिष्ट करें और बातचीत समाप्त करें। 

Amazon Lex closing response.

क्लोज़िंग रेस्पॉन्स। 

स्टेप 3: कन्फर्मेशन, फुलफिलमेंट और क्लोज़िंग

उपयुक्त स्लॉट मान प्राप्त करने के बाद और अनुरोध को पूरा करने से पहले उपयोगकर्ता के इरादे की पुष्टि करें। 

  • Confirmation सेक्शन का उपयोग करके कन्फर्मेशन प्रॉम्प्ट प्रदान करें। 
  • ध्यान दें कि Confirmation डायलॉग के लिए एक छोटा टॉगल स्विच है। इसे सक्रिय करें। 

आम तौर पर कन्फर्मेशन प्रॉम्प्ट में स्लॉट मान शामिल करना अच्छा होता है। उदाहरण: “Please confirm (yes or no) that you want to make a booking from {SourceCity} to {DestinationCity} on {TravelDate}”. 

  • यदि उपयोगकर्ता कन्फर्मेशन प्रॉम्प्ट पर नकारात्मक प्रतिक्रिया दे, तो Decline response प्रदान करें। उदाहरण के लिए, “Okay, we won’t do this booking”. 

Amazon Lex confirmation prompt.

कन्फर्मेशन प्रॉम्प्ट।

फुलफिलमेंट रेस्पॉन्स उपयोगकर्ता को संकेत देता है कि बॉट उनके अनुरोध (कैब बुकिंग) को सर्विस करना शुरू कर रहा है। 

  • Fulfillment सेक्शन में, अनुरोध सफलतापूर्वक पूर्ण होने के बाद एक और संदेश दें। उदाहरण, “Okay, we have made this booking.” 

क्लोज़िंग रेस्पॉन्स उपयोगकर्ता को भेजा गया अंतिम संदेश होता है। उदाहरण, “Thank you for traveling with us. Have a safe trip!”. 

  • रेस्पॉन्स अपडेट करें और Save intent चुनें।

Amazon Lex fulfillment and closing responses.

फुलफिलमेंट और क्लोज़िंग रेस्पॉन्स। 

अपने Amazon Lex बॉट का परीक्षण

अब जब हमने बॉट और उसका कन्वर्सेशन स्ट्रक्चर बना लिया है, तो हम इसका परीक्षण कर सकते हैं! 

स्टेप 1: Lex कंसोल में टेस्ट करें

  • Intents पेज के शीर्ष पर Build और Test बटन ढूँढें। 
  • बॉट को Build करें। हर बदलाव के बाद आपको बॉट को रिबिल्ड करना होगा। 
  • Lex कंसोल में बॉट को टेस्ट करने के लिए Test चुनें। 
  • पॉप-अप चैट विंडो में प्रासंगिक संदेश दर्ज करें और बॉट के प्रॉम्प्ट्स का उत्तर दें। 

Testing the Amazon Lex bot.

Amazon Lex बॉट का परीक्षण।

आम कॉन्फ़िगरेशन त्रुटियाँ

कुछ सेक्शंस, जैसे Confirmation, Fulfillment, और Closing response, सिद्धांततः वैकल्पिक हैं। किसी सेक्शन को सक्षम करने के लिए, टॉगल स्विच सक्षम करें। 

कुछ मामलों में, किसी सेक्शन या रेस्पॉन्स को सक्षम करने से अपने-आप उस सेक्शन के लिए Lambda फ़ंक्शन सक्षम हो जाता है। यदि किसी विशिष्ट सेक्शन में Lambda फ़ंक्शन का टॉगल “on” है, लेकिन कोई संबद्ध Lambda फ़ंक्शन नहीं है, तो आपको नीचे जैसी त्रुटि मिलेगी:

Cannot call FulfillmentCodeHook for Intent CabBookIntent. BotAlias/LocaleId TestBotAlias/en_US doesn't have an associated Lambda Function.

ऊपर की त्रुटि Fulfillment सेक्शन से आती है। इसे हल करने के लिए, संबंधित सेक्शन में advanced settings पर जाएँ और Lambda फ़ंक्शन उपयोग करने का विकल्प अनचेक करें। 

एक और इसी तरह की त्रुटि तब आती है जब फ्लो मिसकन्फ़िगर हो। उदाहरण के लिए, बिल्ड स्टेज पर यह एरर संदेश देखें:

'ElicitSlot' next step at 'InitialResponse:CodeHook:Success' in intent 'CabBookIntent' contains invalid slotToElicit setting. slotToElicit must be a required Slot within the intent. Change the slot name in slotToElicit and try your request again.

इस त्रुटि को हल करने के लिए, Advanced options में Initial response के लिए जाएँ। ध्यान दें कि Dialog Code hook टॉगल सक्रिय है। परंतु, इस चरण में हमने अभी तक Lambda फ़ंक्शंस सक्षम नहीं किए हैं और न ही बातचीत को इनिशियलाइज़ करने के लिए उन्हें कॉन्फ़िगर किया है। कोड हुक को निष्क्रिय करें और बॉट अपडेट करें; यह सामान्य रूप से बिल्ड होना चाहिए। 

Amazon Lex advanced options for initial response.

Initial response के लिए उन्नत विकल्प।

स्टेप 2: वॉइस से टेस्ट करें (वैकल्पिक)

Lex बॉट्स डिफ़ॉल्ट रूप से टेक्स्ट और वॉइस दोनों के साथ काम करते हैं। 

  • वॉइस का उपयोग करके संवाद करने के लिए चैट विंडो में माइक्रोफ़ोन आइकन दबाएँ।
  • इनपुट फ़ील्ड में प्लेसहोल्डर टेक्स्ट “Listening…” में बदल जाएगा। 
  • अपना इरादा बोलें, उदाहरण के लिए, “I want to book a taxi.” 
  • टेक्स्ट इनपुट फ़ील्ड के दाईं ओर चेक मार्क दबाएँ। 
  • Lex वॉइस इनपुट का संक्षिप्त ट्रांसक्रिप्शन करेगा और ऑडियो के साथ उत्तर देगा। 

Amazon Polly टेक्स्ट को प्राकृतिक वाक् में बदलता है। इसका उपयोग स्पीच-आधारित एप्लिकेशंस, जैसे न्यूजरीडर्स, गेम्स, बॉट्स आदि में, टेक्स्ट से मानव-समान वॉइस जनरेट करने के लिए किया जाता है। 2021 से, Amazon Lex, Amazon Polly Neural Text-to-Speech (NTTS) को सपोर्ट करता है। इसलिए, Lex बॉट सीधे प्राकृतिक-साउंडिंग वॉइस रेस्पॉन्स जनरेट कर सकता है। 

बॉट की वॉइस कॉन्फ़िगर करने के लिए:

  • बॉट के होमपेज पर View languages चुनें। 
    • उपयुक्त भाषा चुनें। 
    • आप बाएँ मेनू में All languages विकल्प के अंतर्गत भी प्रासंगिक भाषा चुन सकते हैं।
  • Language details सेक्शन में Edit चुनें। 
    • यह आपको Language पेज पर ले जाएगा।
  • Voice सेक्शन में, आप विभिन्न वॉइस सैंपल सुनकर पसंदीदा टेक्स्ट-टू-स्पीच वॉइस चुन सकते हैं। 

AWS Lambda के साथ फुलफिलमेंट परिभाषित करना

व्यवहार में, बॉट को अन्य बैकएंड सेवाओं से संवाद करना होता है। उदाहरण के लिए, कैब बुकिंग बॉट को ट्रिप जानकारी एक API एन्डपॉइंट को भेजनी और सफल प्रतिक्रिया प्राप्त करनी होती है। Lambda फ़ंक्शंस इसमें मदद करते हैं। 

AWS Lambda फ़ंक्शंस सर्वर-साइड लॉजिक लिखने और उसे निष्पादित करने का तरीका हैं, बिना VPS या कंप्यूट इंस्टैंसेज़ किराए पर लिए। 

Lambda फ़ंक्शंस के साथ शुरू करने के लिए:

  • AWS Lambda होमपेज पर जाएँ।
  • Create function चुनें। 
  • इस उदाहरण के लिए, स्क्रैच से फ़ंक्शन बनाने का विकल्प चुनें। 
  • Python 3.x (लेखन के समय 3.13) भाषा के रूप में और x86_64 प्रोसेसर के रूप में चुनें जिस पर फ़ंक्शन चलेगा। 
  • यदि यह आपका पहला Lambda फ़ंक्शन है, तो नई भूमिका बनाएँ। यदि किसी मौजूदा भूमिका में उचित अनुमतियाँ हैं, तो आप उसका उपयोग भी कर सकते हैं। 
  • Create function चुनें। 
  • विशिष्ट Lambda फ़ंक्शन के वेबपेज पर Code टैब में फ़ंक्शन का कोड दर्ज करें। 

नीचे, हम एक छोटा Lambda फ़ंक्शन दिखाते हैं जो Fulfillment सेक्शन में एक सफलता संदेश भेजता है: 

import json
import urllib.request

def lambda_handler(event, context):
    slots = event['sessionState']['intent']['slots']
    intent = event['sessionState']['intent']['name']

    if event['invocationSource'] == 'FulfillmentCodeHook':
        message = "Lambda has placed your reservation"
        response = {
            "sessionState": {
                "dialogAction": {
                    "type": "Close"
                },
                "intent": {
                    'name':intent,
                    'slots': slots,
                    'state':'Fulfilled'
                    }
            },
            "messages": [
                {
                    "contentType": "PlainText",
                    "content": message
                }
            ]
        }
        return response

बॉट को इस Lambda फ़ंक्शन को कॉल करने के लिए कॉन्फ़िगर करें:

  • बॉट के होम पेज पर जाएँ। बाएँ मेनू में Aliases विकल्प चुनें (Deployment > Aliases)। 
  • डिफ़ॉल्ट रूप से, इसके पास पहले से ही TestBotAlias नाम का एक अलियास होना चाहिए। 
    • अलियास चुनें।
  • अलियास पेज पर, भाषाओं के अंतर्गत, बॉट की भाषा ढूँढें। यह उदाहरण English(US) में है।
    • भाषा चुनें। 
  • भाषा पेज पर, Lambda फ़ंक्शन सेक्शन ढूँढें। 
    • Source के अंतर्गत, अपने Lambda फ़ंक्शन का नाम चुनें। 
    • वर्ज़न के लिए डिफ़ॉल्ट विकल्प $LATEST है। इसे अपरिवर्तित छोड़ दें। 
  • परिवर्तनों को सेव करें।

इस उदाहरण में, हम फुलफिलमेंट स्टेज पर Lambda फ़ंक्शन का उपयोग करना चाहते हैं:

  • इंटेंट पेज पर, Advanced options में जाएँ, जो Fulfillment सेक्शन के अंतर्गत है। 
  • Fulfillment Lambda code hook सेक्शन में, Use a Lambda function for fulfillment लेबल वाले चेकबॉक्स को मार्क करें। 
  • परिवर्तनों को सेव करें (Update options चुनें) ताकि फुलफिलमेंट विकल्प अपडेट हो जाएँ। 
  • इंटेंट सेव करें। 
  • बॉट के इंटेंट पेज पर जाएँ, इसे बिल्ड करें और टेस्ट करें। 

अब, प्रतिक्रिया Lambda फ़ंक्शन से आती है:

Testing the Lambda function integrated with the Lex bot.

Lex बॉट के साथ इंटीग्रेटेड Lambda फ़ंक्शन का परीक्षण।

अपने Amazon Lex बॉट को डिप्लॉय करना

Lex बॉट बनाने और टेस्ट करने के बाद, हम इसे डिप्लॉय करने के लिए तैयार हैं। डिप्लॉयमेंट एक जटिल विषय है जिसके विवरण व्यक्तिगत उपयोग-केस पर निर्भर करते हैं। इस सेक्शन में, मैं विभिन्न सामान्य डिप्लॉयमेंट तरीकों का एक अवलोकन देता हूँ। 

स्टेप 1: वेब या मोबाइल एप्लिकेशन पर डिप्लॉय करना

Lex को API, SDK, या प्रीबिल्ट लाइब्रेरीज़ का उपयोग करके वेब ऐप्स और मोबाइल ऐप्स में इंटीग्रेट किया जा सकता है:

  • CloudFormation: AWS CloudFormation एक Infrastructure as code समाधान है। यह YAML फ़ाइलों का उपयोग करके विभिन्न AWS संसाधनों को एक पूर्ण उत्पाद के रूप में बंडल, प्रोविजन, डिप्लॉय और प्रबंधित करने की अनुमति देता है। CloudFormation में S3 बकेट्स, Lambda फ़ंक्शंस, Lex बॉट्स आदि जैसे विभिन्न AWS उत्पादों को इंटीग्रेट करने के लिए टेम्पलेट्स हैं। Lex बॉट को CloudFormation प्रोजेक्ट का हिस्सा बनाने के लिए Lex YAML टेम्पलेट फ़ाइल का उपयोग करें। 
  • Website इंटीग्रेशन: AWS ने एक सेट Javascript लोडर फ़ाइलें और AWS SDK उपलब्ध कराया है ताकि किसी वेबसाइट में बॉट लोड किया जा सके। इनमें प्रीबिल्ट Lex UI फ़ाइलें और Lex बॉट को लोड करने के लिए लोडर लाइब्रेरी शामिल है। बॉट को वेबसाइट में एक स्टैंडअलोन वेबपेज या iFrame के रूप में इंटीग्रेट किया जा सकता है। 
  • मोबाइल नेटिव ऐप्स: AWS Amplify में विभिन्न मोबाइल और वेब फ्रंटएंड्स, जैसे ReactJS / React Native, NextJS, Angular, Android, iOS आदि के साथ इंटीग्रेट करने के टूल्स शामिल हैं। Amplify डॉक्यूमेंटेशन बताता है कि इन SDKs के साथ काम करने के लिए Lex बॉट को कैसे कॉन्फ़िगर करें।
  • Lex API: इंटरैक्शन और इंटरफ़ेस पर पूर्ण नियंत्रण के लिए, आप Lex API का उपयोग कर सकते हैं। API का उपयोग करके, आप उपयोगकर्ता और बॉट के संदेशों को (एक-दूसरे तक) पास कर सकते हैं, जबकि अपने ऐप के माध्यम से उपयोगकर्ता अनुभव पर नियंत्रण बनाए रखते हैं। Lex दो APIs प्रदान करता है:
    • Runtime API उपयोगकर्ता इंटरैक्शन के लिए उपयोग होता है, जैसा कि ऊपर समझाया गया है। 
    • Build API GUI के बजाय प्रोग्रामेटिक रूप से Lex बॉट बनाने और कॉन्फ़िगर करने के लिए उपयोग होता है। 

नीचे दिए गए चरण बताते हैं कि चैटबॉट को एक वेबपेज के रूप में कैसे डिप्लॉय किया जाए:

  • Lex Web UI Loader लाइब्रेरी का उपयोग करें। यह लाइब्रेरी ChatBotUiLoader ऑब्जेक्ट बनाती है, जिसमें FullPageLoader() और IframeLoader कंस्ट्रक्टर्स शामिल हैं। इन कंस्ट्रक्टर्स का load() फ़ंक्शन क्रमशः पेज या iFrame में बॉट लोड करता है।
  • वेबपेज पर बॉट लोड करने के लिए, चैटबॉट कॉन्फ़िगरेशन निर्दिष्ट करें:
    • Cognito pool ID। ध्यान दें कि आपको बॉट से कनेक्ट करने के लिए एक AWS Cognito identity pool चाहिए। आप AWS Cognito कंसोल से एक identity pool बना सकते हैं। आपको Cognito identity pool को Lex बॉट से लिंक करना होगा। 
    • Lex बॉट का नाम और विवरण। 
  • .load() फ़ंक्शन का उपयोग करके बॉट लोड करें। 

नीचे दिया स्निपेट एक JavaScript फ़ंक्शन की रूपरेखा दिखाता है जो वेबपेज पर Lex बॉट डिप्लॉय करता है: 

 <!-- LexWebUi loader -->
  <script src="./lex-web-ui-loader.js"></script>
  <script>
    // instantiate the loader
    var lexWebUiLoader = new ChatBotUiLoader.FullPageLoader();

    var chatbotUiconfig = {
     cognito: {
       poolId: 
     },
     lex: {
        initialText: 'How can I help you?',
        botName: 'CabBookBot'
      },
      ui: {
        toolbarTitle: 'Cab Booking Lex Bot',
        toolbarLogo: ''
      },
    };

    lexWebUiLoader.load(chatbotUiConfig)
      .then(function () {
        console.log('chatbot UI loaded');
      })
      .catch(function (error) {
        console.error('chatbot UI failed to load', error);
      });
   </script>

स्टेप 2: मैसेजिंग प्लेटफ़ॉर्म्स के साथ इंटीग्रेशन 

आप Lex बॉट को थर्ड-पार्टी मैसेजिंग सर्विसेज जैसे Facebook Messenger, Slack, और Twilio SMS के साथ इंटीग्रेट कर सकते हैं। 

इस सेक्शन में, हम Lex को Facebook Messenger के साथ इंटीग्रेट करने पर चर्चा करते हैं। शुरू करने से पहले, आपको चाहिए: 

  • एक Facebook डेवलपर अकाउंट
  • Facebook पर एक बिज़नेस पेज। ध्यान दें कि Facebook ऐप को Lex के साथ Messaging API उपयोग करने की अनुमति चाहिए। केवल वे ऐप्स जिन्हें Facebook द्वारा सत्यापित बिज़नेस ऐप्स के रूप में रिव्यू और अप्रूव किया गया है, उन्हें ये अनुमतियाँ मिलती हैं। 

नीचे, मैं Facebook Messenger के साथ Lex बॉट को इंटीग्रेट करने के चरणों की रूपरेखा देता हूँ ताकि आपकी Facebook पेज पर मैसेज करने वाले उपयोगकर्ताओं को बॉट से प्रतिक्रिया मिल सके। 

  • यदि आपके पास पहले से नहीं है, तो एक नया बिज़नेस ऐप बनाएं। 
    • ऐप उपयोग-केस के अंतर्गत Other चुनें। 
    • ऐप प्रकार के रूप में Business चुनें। 
  • आप प्रत्येक ऐप में Messenger, Instagram आदि जैसे विभिन्न Facebook प्रोडक्ट्स जोड़ सकते हैं। ऐप में Messenger जोड़ें और Set up चुनें। 
  • Messenger API Setup सेक्शन में:
    • अपने Facebook बिज़नेस पेज को इस ऐप से कनेक्ट करें। 
    • इस ऐप के लिए नया टोकन जनरेट करें (Generate बटन के साथ)। इस टोकन को किसी टेक्स्ट एडिटर में कॉपी करें। 
    • यह संदेश देखें, “To send and receive messages, request pages_messaging permission.” आवश्यक अनुमतियों के लिए Request Permission चुनें। 
    • यदि आपका ऐप अभी Facebook द्वारा रिव्यू और अप्रूव नहीं हुआ है, तो इसे रिव्यू के लिए सबमिट करें। 
  • बाएँ मेनू विकल्पों में App Settings से Basic चुनें।
    • App Secret के अंतर्गत Show चुनें और सीक्रेट कोड को टेक्स्ट फ़ाइल में कॉपी करें। 

अब Lex कंसोल पर जाएँ और वह बॉट चुनें जिसे आप Messenger के साथ इंटीग्रेट करना चाहते हैं। 

  • बाएँ मेनू ट्री में, Deployment के अंतर्गत Channel integrations ढूँढें। 
  • Create Channel के अंतर्गत Add Channel चुनें:
  • Platform के अंतर्गत Facebook चुनें।
  • Identity policies के अंतर्गत KMS Key चुनें। 
  • Integration configuration के अंतर्गत:
    • इंटीग्रेशन को एक नाम दें
    • Messenger के साथ इंटीग्रेट करने के लिए Lex बॉट का एक अलियास चुनें
    • भाषा चुनें। 
  • Additional configuration के अंतर्गत:
    • Alias के अंतर्गत, Lex को कॉल करने वाले ऐप की पहचान के लिए एक स्ट्रिंग दर्ज करें। आपको यह स्ट्रिंग आगे चाहिए होगी। 
    • Page access token के अंतर्गत, Facebook में कॉपी किया गया एक्सेस टोकन दर्ज करें। 
    • App secret key के अंतर्गत, Facebook में कॉपी की गई सीक्रेट की दर्ज करें।
  • नया चैनल बनाने के लिए Add बटन का उपयोग करें। 
  • Channel Integrations पेज पर लौटें और आपने जो चैनल बनाया है उसे चुनें। 
  • Callback URL सेक्शन में Endpoint के अंतर्गत URL कॉपी करें। 

Facebook डेवलपर कंसोल पर वापस जाएँ और पहले बनाया गया ऐप खोलें। 

  • बाएँ मेनू से, Messenger के अंतर्गत Messenger API Settings चुनें। 
    • Callback URL के अंतर्गत, Lex कंसोल में कॉपी किया गया callback URL दर्ज करें। 
    • Verify token के अंतर्गत, Lex कंसोल में दर्ज किया गया अलियास स्ट्रिंग दर्ज करें। 
    • Verify and save परिवर्तनों को करें।
    • Webhooks के अंतर्गत, Add subscriptions चुनें। पॉप-अप विंडो में messages चुनें, फिर Save चुनें। 

अब आप Facebook पेज पर Lex बॉट के सैंपल उच्चारण भेजकर प्रासंगिक प्रतिक्रियाएँ प्राप्त कर सकते हैं। 

स्टेप 3: उन्नत इंटरएक्टिविटी के लिए Lex को AWS Lambda से जोड़ना

पिछले सेक्शन में हमने फुलफिलमेंट सेक्शन के लिए एक सरल Lambda फ़ंक्शन लिखा था। यह केवल एक टेक्स्ट संदेश लौटाता था: “Lambda has placed your reservation.” व्यवहार में, हम अनुरोध को पूरा करने के बाद ही सफलता संदेश भेजेंगे। 

उदाहरण के लिए, Lambda फ़ंक्शन उपयोगकर्ता के आरक्षण विवरण के साथ बैकएंड API को अनुरोध भेजता है, जो बुकिंग करता है और फिर API की प्रतिक्रिया के आधार पर उपयोगकर्ता को उत्तर देता है।

आप ऊपर का कार्य इस प्रकार करेंगे:

  • Lambda फ़ंक्शन में JSON ऑब्जेक्ट slots में स्लॉट मान होते हैं। कोड ब्यूटीफ़ायर का उपयोग करके इसकी संरचना का अध्ययन करें ताकि उपयुक्त मान निकाले जा सकें। 
  • नीचे दिया कोड स्निपेट दिखाता है कि SourceCity का स्लॉट मान कैसे प्राप्त करें और इसे आरक्षण संभालने वाले बैकएंड API को पास करें। इस कोड को lambda_handler() फ़ंक्शन के अंदर जोड़ें:
slots = event['sessionState']['intent']['slots']
print("slots - ", slots)
source_city = slots['SourceCity']['value']['interpretedValue']
print("source city - ", source_city)

अब मैं दिखाता हूँ कि Lambda फ़ंक्शन से API अनुरोध कैसे करें। इस उदाहरण के लिए, हम ASDFast पर एक डमी API एन्डपॉइंट का उपयोग करते हैं। यह सेवा आपको किसी API एन्डपॉइंट को HTTP(S) अनुरोध भेजने और एक यथार्थवादी प्रतिक्रिया प्राप्त करने देती है। 

  • नीचे दिए कोड के साथ, हम इस एन्डपॉइंट को GET अनुरोध भेजते हैं। फिर हम GET अनुरोध के रेस्पॉन्स स्टेटस कोड के आधार पर बॉट द्वारा उपयोगकर्ता को भेजे जाने वाले संदेश को कस्टमाइज़ करते हैं:
       res = urllib.request.urlopen(urllib.request.Request(
           url='http://asdfast.beobit.net/api/',
           headers={'Accept': 'application/json'},
           method='GET'),
           timeout=5)

       message_success = "Lambda has placed your reservation"
       message_failure = "Lambda could not place your reservation. Please retry."
       message = message_success if res.status == 200 else message_failure

पूरा Lambda फ़ंक्शन नीचे दिखाया गया है:

import json
import urllib.request

def lambda_handler(event, context):
    print("event - ", event)
    slots = event['sessionState']['intent']['slots']
    intent = event['sessionState']['intent']['name']

    print("slots - ", slots)
    source_city = slots['SourceCity']['value']['interpretedValue']
    print("source city - ", source_city)
    print("intent - ", intent)
    
    if event['invocationSource'] == 'FulfillmentCodeHook':
        print("FulfillmentCodeHook")    
        res = urllib.request.urlopen(urllib.request.Request(
            url='http://asdfast.beobit.net/api/',
            headers={'Accept': 'application/json'},
            method='GET'),
            timeout=5)
        
        message_success = "Lambda has placed your reservation"
        message_failure = "Lambda could not place your reservation. Please retry."
        message = message_success if res.status == 200 else message_failure
        #message = "Lambda has placed your reservation"

        response = {
            "sessionState": {
                "dialogAction": {
                    "type": "Close"
                },
                "intent": {
                    'name':intent,
                    'slots': slots,
                    'state':'Fulfilled'
                    }
            },
            "messages": [
                {
                    "contentType": "PlainText",
                    "content": message
                }
            ]
        }
        return response

Amazon Lex बॉट बनाने के लिए सर्वोत्तम प्रथाएँ

Lex बॉट्स के बुनियादी सिद्धांतों और उनके व्यावहारिक उपयोगों पर चर्चा करने के बाद, इस सेक्शन में मैं बॉट्स को डिज़ाइन करने के लिए कुछ सर्वोत्तम प्रथाएँ प्रस्तुत करता हूँ। 

स्पष्ट और संक्षिप्त बातचीत डिज़ाइन करें

सुनिश्चित करें कि आपके संवाद पथ और स्लॉट्स सटीक हों:

  • प्रत्येक इंटेंट एक ही कार्य पर केंद्रित हो, और प्रत्येक स्लॉट एक ही वेरिएबल के अनुरूप मान कैप्चर करे। 
  • प्रॉम्प्ट टेक्स्ट बहुत शब्दाडंबरपूर्ण न बनाएं। संवाद को संक्षिप्त रखें और जल्द ही वांछित परिणाम तक पहुँचें।

यह तरीका उपयोगकर्ता को भ्रमित होने से बचाता है और Lex द्वारा संभावित गलतफहमियों को कम करता है। 

स्लॉट प्रकारों और वैलिडेशन का उपयोग करें

बॉट और उससे जुड़े बैकएंड सेवाओं को उपयोगकर्ता की आवश्यकताओं की सटीक जानकारी चाहिए। सही स्लॉट प्रकारों का उपयोग यह सुनिश्चित करता है। 

  • सामान्य डेटा प्रकारों के लिए, जैसे तारीखों के लिए AMAZON.Date, शहरों के लिए AMAZON.City आदि, बिल्ट-इन स्लॉट्स का उपयोग करने की मैं सामान्यतः सलाह देता हूँ। ये स्लॉट प्रकार व्यापक रूप से परीक्षण किए गए हैं और विभिन्न एप्लिकेशंस के साथ संगत माने जाते हैं।
  • अपवादस्वरूप, आप कस्टम स्लॉट प्रकार डिज़ाइन कर सकते हैं। ध्यान रखें कि वे सही ढंग से कॉन्फ़िगर और टेस्ट किए गए हों। 
  • सही स्लॉट प्रकारों के उपयोग के अलावा, यह भी वैलिडेट करें कि उपयोगकर्ता ने सभी अनिवार्य स्लॉट्स के अनुरूप जानकारी दी है। इससे बैकएंड API उपयोगकर्ता के अनुरोध को पूरा कर सकता है और एक सुचारू उपयोगकर्ता अनुभव सुनिश्चित होता है। 

मल्टी-टर्न बातचीत सक्षम करें

उपयोगकर्ताओं के लिए एक ही संदेश में सभी आवश्यक जानकारी देना भारी लग सकता है, जैसे “Book a trip for N people on Z date/time from X to Y in cab type T.” 

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

प्रदर्शन की निगरानी और अनुकूलन करें

प्रोडक्शन में किसी बॉट के लिए, विभिन्न मैट्रिक्स में उसके प्रदर्शन की निगरानी करना महत्वपूर्ण है, जैसे: 

  • कुल बातचीतों की संख्या।
  • औसत बातचीत अवधि।
  • प्रति बातचीत औसत टर्न।
  • पहचाने गए और छूटे हुए उच्चारणों की संख्या (और अनुपात)।
  • Lambda त्रुटियाँ, आदि।

इन मैट्रिक्स का उपयोग करें ताकि उपयोगकर्ता इंटरैक्शन और बॉट के प्रदर्शन का आकलन किया जा सके: 

  • Bot पेज के बाएँ मेनू में Analytics विकल्प चुनें। 
  • Conversation dashboard, Performance dashboard और CloudWatch metrics तक पहुँचें और बॉट के प्रदर्शन का अध्ययन करें। 

AWS CloudWatch, AWS सेवाओं के लिए मॉनिटरिंग टूल है। यह विभिन्न प्रदर्शन मैट्रिक्स को वास्तविक समय में एक ही पेज पर समेकित करता है। इन मैट्रिक्स का उपयोग बॉट के प्रदर्शन को सुधारने और फाइन-ट्यून करने के लिए करें।

निष्कर्ष

इस लेख में, हमने Amazon Lex V2, AWS की संदर्भ-सचेत चैटबॉट सेवा, को एक्सप्लोर किया। हमने एक बेसिक बॉट बनाने, उसे उपयोगकर्ताओं के साथ इंटरैक्ट करने के लिए कॉन्फ़िगर करने, और AWS Lambda का उपयोग करके उसे बैकएंड API के साथ इंटीग्रेट करने की प्रक्रिया देखी। इसके अतिरिक्त, हमने बेस्ट प्रैक्टिसेज़ और डिप्लॉयमेंट विकल्पों पर चर्चा की, जिनमें बॉट को वेबसाइट या Facebook पेज पर एम्बेड करना शामिल है।

जैसे-जैसे आप AWS सेवाओं के बारे में सीखना जारी रखते हैं, इन पाठ्यक्रमों से अपने ज्ञान का विस्तार करने पर विचार करें:

  • AWS Cloud Technology and Services कोर्स के साथ AWS क्लाउड सेवाओं में मज़बूत आधार प्राप्त करें।
  • AWS Security and Cost Management कोर्स में AWS सुरक्षा और लागत को प्रभावी ढंग से प्रबंधित करना सीखें।
  • Introduction to AWS Boto in Python कोर्स में Boto3, AWS SDK for Python, के साथ प्रोग्रामेटिक AWS इंटरैक्शन एक्सप्लोर करें।

इन संसाधनों का लाभ उठाकर, आप AWS-आधारित एप्लिकेशंस—जिनमें Amazon Lex द्वारा संचालित चैटबॉट्स शामिल हैं—को बनाने, सुरक्षित करने और अनुकूलित करने के लिए अच्छी तरह से तैयार होंगे!

FAQs

क्या Lex अन्य AWS सेवाओं के साथ इंटीग्रेट होता है?

हाँ, Lex Lambda, S3, CloudWatch आदि जैसी सेवाओं के साथ इंटीग्रेट होता है। इससे आप बॉट की कार्यक्षमता बढ़ा सकते हैं, उसे अन्य उत्पादों के साथ जोड़ सकते हैं, और उसके प्रदर्शन की निगरानी कर सकते हैं।

क्या Lex वॉइस और टेक्स्ट दोनों संभालता है?

हाँ, Lex डिफ़ॉल्ट रूप से वॉइस और टेक्स्ट दोनों इनपुट संभाल सकता है। Lex बोले गए इंटरैक्शन के लिए विभिन्न वॉइसेज़ को सपोर्ट करता है। आप AWS Polly का उपयोग करके स्पीच सिन्थेसाइज़ कर सकते हैं और ऑडियो फ़ाइल Lex को भेज सकते हैं।

क्या मैं Lex बॉट के लिए कस्टम यूज़र इंटरफ़ेस का उपयोग कर सकता/सकती हूँ?

हाँ, Lex के साथ एक रनटाइम API आता है जो उपयोगकर्ता इनपुट को बॉट तक भेज सकता है और (बॉट की) प्रतिक्रियाएँ प्राप्त कर सकता है। इस प्रकार, Lex बॉट कस्टम UI के लिए बैकएंड के रूप में कार्य करता है।

क्या मैं Lambda फ़ंक्शंस के बिना Lex का उपयोग कर सकता/सकती हूँ?

सिद्धांततः, हाँ। आप पूरी बातचीत Lex के भीतर डिज़ाइन कर सकते हैं। व्यवहार में, बॉट को उन अन्य बैकएंड API सेवाओं से इंटरफ़ेस करना पड़ता है जो उपयोगकर्ता के अनुरोध (जैसे टिकट बुक करना) को पूरा करती हैं। बाहरी सेवाओं से इंटरफ़ेस करने के लिए आपको AWS Lambda की आवश्यकता होती है।

क्या AWS Lex को ट्रेन करना संभव है?

सीमित हद तक, हाँ। Lex का NLU इंजन सैंपल उच्चारणों से मिलते-जुलते उपयोगकर्ता इनपुट को पहचान सकता है। यह कुछ सैंपल्स के आधार पर किसी स्लॉट प्रकार के मान्य मानों का विस्तार भी कर सकता है। हालाँकि, किसी LLM जैसी ट्रेन करने की क्षमता की उम्मीद न करें। Lex विस्तारित बातचीत के लिए नहीं, बल्कि सीमित कार्य-विशिष्ट इंटरैक्शन के लिए डिज़ाइन किया गया है।

Arun Nanda

लेखक

Arun Nanda

अरुण एक पूर्व स्टार्टअप संस्थापक हैं जो नई चीज़ें बनाना पसंद करते हैं। वे वर्तमान में कृत्रिम बुद्धिमत्ता की तकनीकी और गणितीय नींव का अन्वेषण कर रहे हैं। उन्हें जो सीखा है उसे साझा करना अच्छा लगता है, इसलिए वे इस पर लिखते हैं।

DataCamp के अलावा, आप उनके प्रकाशन Medium, Airbyte, और Vultr पर पढ़ सकते हैं।

विषय