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

Python में Chatterbot का उपयोग करके चैटबॉट बनाना

इस ट्यूटोरियल में, आप Python में chatterbot का उपयोग करके चैटबॉट बनाना सीखेंगे।
· 12 मि॰ पढ़ें

AI के साथ खोजें

क्या आप थक चुके हैं जब आपका कॉल ग्राहक सेवा कार्यकारी से जुड़ने में लंबा समय लेता है? क्या FAQ पढ़ना आपको उबाऊ लगता है? तो आप सही जगह पर हैं। क्या आपको याद है जब आपने गलत आइटम डिलीवर होने पर चैट के ज़रिए ग्राहक सेवा एजेंट से बात की थी? बहुत संभव है कि आपसे किसी प्रतिनिधि के बजाय एक बॉट ने बात की हो। तो आखिर बॉट होते क्या हैं? इन्हें कैसे बनाते हैं? किस तरह के कोड की ज़रूरत होती है? ऐसे ही कुछ सवालों के जवाब इस ब्लॉग पोस्ट में मिलेंगे!

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

चैटबॉट की परिभाषा को सरल करें, तो कह सकते हैं कि चैटबॉट नैचुरल लैंग्वेज प्रोसेसिंग का उपयोग करने वाले प्रश्न-उत्तर सिस्टम का विकास हैं। सूत्रों के अनुसार, वर्ष 2024 तक वैश्विक कंवर्सेशन मार्केट का आकार $15.7 बिलियन तक पहुँच जाएगा, जिसका वार्षिक विकास दर 30.2% होगा। उदाहरण के लिए, कोरोना वायरस महामारी के दौरान हमने WhatsApp पर हजारों अफवाहें फैलती देखीं—जैसे COVID का इलाज क्या हो सकता है, प्रतिरक्षा कैसे बढ़ाई जाए, या क्या वायरस लैब में विकसित हुआ था। ऐसी अफवाहों पर रोक लगाने के लिए Facebook ने एक चैटबॉट लॉन्च किया जो फ़ैक्ट-चेकर की तरह काम करता है।

OpenAI और Pinecone जैसे टूल्स से चैटबॉट बनाना चाहते हैं? नीचे हमारा कोड-अलॉन्ग देखें: 

Chatbot क्या है?

“chatterbot” शब्द 1994 में अस्तित्व में आया जब Michael Mauldin ने “Julia” नाम का अपना पहला चैटबॉट बनाया। ऑक्सफोर्ड डिक्शनरी के अनुसार, चैटबॉट की परिभाषा है: “A computer program designed to simulate conversation with human users, especially over the internet.” इसे एक वर्चुअल असिस्टेंट की तरह देखा जा सकता है जो टेक्स्ट संदेशों के माध्यम से उपयोगकर्ताओं से बातचीत करता है और व्यवसायों को अपने ग्राहकों के करीब आने में मदद करता है। यह एक ऐसा प्रोग्राम है जो मनुष्यों के एक-दूसरे से बातचीत करने के तरीके की नकल करता है। यह चैट इंटरफ़ेस या वॉयस कॉल, दोनों के ज़रिए हो सकता है। डेवलपर्स आमतौर पर चैटबॉट इस तरह डिज़ाइन करते हैं कि उपयोगकर्ता के लिए यह बताना मुश्किल हो कि वे किसी इंसान से बात कर रहे हैं या किसी रोबोट से।

चैटबॉट किसी भी बिज़नेस/संगठन को निम्नलिखित लक्ष्य हासिल करने में मदद करते हैं:

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

चैटबॉट कैसे काम करता है?

चैटबॉट मूलतः सॉफ्टवेयर एप्लिकेशन हैं जिनमें एक एप्लिकेशन लेयर, एक डेटाबेस और APIs होते हैं। चैटबॉट के काम को सरलता से समझें तो यह पैटर्न मैचिंग पर काम करता है ताकि टेक्स्ट को वर्गीकृत किया जा सके और उपयोगकर्ता द्वारा पूछे गए प्रश्न/क्वेरी के लिए उपयुक्त उत्तर दिया जा सके। चैटबॉट उपयोगकर्ता को उसी प्रोग्राम के अनुसार जवाब देता है जो उसमें फीड किया गया है। उपयोग के आधार पर चैटबॉट अलग-अलग प्रकार के होते हैं। मुख्य रूप से तीन प्रकार के चैटबॉट होते हैं:

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

  • इंडिपेंडेंट (कीवर्ड) चैटबॉट: ये मशीन लर्निंग बॉट होते हैं। रूल-बेस्ड चैटबॉट के विपरीत, ये समझते हैं कि उपयोगकर्ता क्या चाहता है और उसी के अनुसार प्रतिक्रिया देते हैं। ये चैटबॉट अनुकूलन योग्य कीवर्ड और मशीन लर्निंग का उपयोग करते हैं ताकि उपयोगकर्ता के अनुरोधों का प्रभावी और कुशलतापूर्वक जवाब दे सकें।

  • NLP (कॉन्टेक्स्चुअल) चैटबॉट: अब तक के सबसे उन्नत चैटबॉट। ये रूल-बेस्ड और कीवर्ड चैटबॉट—दोनों के सर्वोत्तम गुणों का मिश्रण हैं। ये चैटबॉट NLP का उपयोग करके उपयोगकर्ता के अनुरोधों में संदर्भ और इरादे को समझते हैं और उसी के अनुसार कार्य करते हैं। ये एक ही उपयोगकर्ता के कई अनुरोधों को आसानी से संभाल सकते हैं।

चैटबॉट प्लेटफ़ॉर्म की तुलना

कई प्लेटफ़ॉर्म कस्टमाइज़्ड चैटबॉट्स ऑफर करते हैं जो ऑटोमेशन के साथ ग्राहकों को हर समय, समय पर, उच्च-स्तरीय सपोर्ट सेवाएँ उपलब्ध कराते हैं—बिना आउट-ऑफ-द-बॉक्स कंवर्सेशनल क्षमताओं के। ग्राहक भी उन व्यवसायों से खरीदना पसंद करते हैं जिनसे वे आसानी से संदेशों के ज़रिए जुड़ सकें।

2020 में AI चैटबॉट बनाने वाले प्लेटफ़ॉर्म की सूची:

  • Azure Bot Service: Azure Bot Service शुरुआत से चैटबॉट बनाने का विकल्प देता है—यानी आप बना सकते हैं, कनेक्ट कर सकते हैं, टेस्ट कर सकते हैं और डिप्लॉय कर सकते हैं। यह डेवलपर्स को ओपन-सोर्स SDK और टूल्स उपयोग करने देता है। यह वर्चुअल असिस्टेंट जैसे उन्नत बॉट बनाने में भी सक्षम बनाता है जो जटिल क्वेरीज़ संभाल सकें।

  • Botsify: इस टूल की खासियत यह है कि यह गैर-तकनीकी उपयोगकर्ताओं को भी अपने सहज इंटरफ़ेस से चैटबॉट बनाने देता है। यहाँ बॉट्स को स्टोरीज़ के रूप में दर्शाया जाता है—यानी आप कई स्टोरीज़ या कई चैटबॉट बना सकते हैं और ज़रूरत के अनुसार डिप्लॉय कर सकते हैं। एक और बढ़िया फ़ीचर है उपयोगकर्ताओं की प्रतिक्रियाओं को ऐसे फ़ॉर्म में सहेजना जिसे आसानी से CSV में एक्सपोर्ट किया जा सके।

  • Amazon Lex: Amazon Lex डेवलपर्स को टेक्स्ट और वॉयस के माध्यम से कंवर्सेशनल इंटरफ़ेस बनाने देता है। यह उन्नत डीप लर्निंग क्षमताओं और NLP के साथ आता है ताकि टेक्स्ट के संदर्भ को समझ सके। यह मिनटों में चैटबॉट बनाने के लिए उपयोग में आसान कंसोल प्रदान करता है।

  • Mobile Monkey: Mobile Monkey डेवलपर्स को खास तौर पर मार्केटिंग उद्देश्यों के लिए चैटबॉट बनाने देता है। यह एक ही प्लेटफ़ॉर्म पर Facebook ad bots, SMS bots और नेटिव वेब चैटबॉट बनाने की सुविधा देता है। वे लगभग हर व्यवसाय के लिए रेडी-मेड चैटबॉट टेम्पलेट्स भी ऑफर करते हैं जिन्हें सीधे वेबसाइट पर एम्बेड किया जा सकता है।

  • ChatterOn: यह दावा करता है कि यह बॉट से अलग-अलग प्रकार की रिच कंटेंट प्रतिक्रियाएँ संभाल सकता है क्योंकि यह डेवलपर्स को उपयोगकर्ता के साथ हर इंटरैक्शन पर अलग-अलग APIs जोड़ने देता है। ChatterOn 20 से अधिक प्री-बिल्ट बोल्ट्स प्रदान करता है जिन्हें एक क्लिक में उपयोग किया जा सकता है। इसमें ज्यादा कोडिंग की ज़रूरत नहीं पड़ती, जिससे गैर-तकनीकी उपयोगकर्ताओं के लिए चैटबॉट बनाना आसान हो जाता है।

  • TARS: यह आपको एक कंवर्सेशनल लैंडिंग पेज बनाने देता है, जो एक ऑटोमेटेड चैटबॉट तैयार करने में सक्षम बनाता है—जो आपके ग्राहकों का अभिवादन करे, आपके उत्पादों से संबंधित उनकी क्वेरीज़ पर प्रासंगिक जानकारी दे और साथ ही उनका संपर्क विवरण भी पूछे। Tars कई पूर्व-परिभाषित चैटबॉट टेम्पलेट्स देता है, जो दो भागों में वर्गीकृत हैं—उद्योग के हिसाब से और उपयोग-केस के हिसाब से।

अब तक आते-आते आप अपना चैटबॉट बनाने के लिए उत्सुक हो गए होंगे। और कस्टमाइज़ेबल NLP चैटबॉट से बेहतर क्या हो सकता है? आइए Python में chatterbot लाइब्रेरी का उपयोग करके अपना खुद का चैटबॉट बनाना शुरू करें।

Chatterbot

chatterbot

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

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

Chatterbot को उपयोगकर्ता द्वारा किए गए नए अनुरोध के समतुल्य सबसे निकटतम अनुरूप अनुरोध ढूँढकर उसके सबसे क़रीबी जवाब की खोज करने के लिए प्रशिक्षित किया जाता है। फिर यह पहले से मौजूद प्रतिक्रियाओं में से एक प्रतिक्रिया चुनता है। Chatterbot की USP यह है कि यह डेवलपर्स को आसानी से अपना खुद का डेटासेट और स्ट्रक्चर बनाने में सक्षम बनाता है।

Chatterbot का उपयोग करके चैटबॉट बनाना

आइए chatterbot लाइब्रेरी इंस्टॉल करने से शुरू करें। चैटबॉट बनाने के लिए chatterbot corpus भी इंस्टॉल करना होगा। Corpus का शाब्दिक अर्थ है शब्दों का संग्रह। इसमें chatterbot मॉड्यूल में शामिल डेटा का कॉर्पस होता है। प्रत्येक कॉर्पस अलग-अलग इनपुट स्टेटमेंट्स और उनकी प्रतिक्रियाओं का प्रोटोटाइप होता है। बॉट इन्हीं कॉर्पस का उपयोग करके खुद को प्रशिक्षित करते हैं। chatterbot और chatterbot_corpus इंस्टॉल करने का सबसे अनुशंसित तरीका pip का उपयोग करना है।

टर्मिनल के लिए इंस्टॉलेशन कमांड:

pip install chatterbot
pip install chatterbot_corpus

Jupyter Notebook के लिए इंस्टॉलेशन कमांड:

!pip install chatterbot
!pip install chatterbot_corpus

पहले chatterbot मॉड्यूल की Chatbot क्लास इम्पोर्ट करें।

# Importing chatterbot
from chatterbot import ChatBot

Chatbot इंस्टेंस बनाएँ

अब सबसे रोचक भाग, यानी Chatbot ऑब्जेक्ट बनाकर अपने चैटबॉट को नाम देना। आप कोई भी नाम चुन सकते हैं। यह एक पंक्ति का कोड Buddy नाम का हमारा नया बॉट बना देता है। अपना पहला प्रोग्राम चलाने से पहले हमें कुछ और पैरामीटर्स बताने होंगे।

# Create object of ChatBot class
bot = ChatBot('Buddy')
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     /root/nltk_data...
[nltk_data]   Unzipping taggers/averaged_perceptron_tagger.zip.
[nltk_data] Downloading package stopwords to /root/nltk_data...
[nltk_data]   Unzipping corpora/stopwords.zip.
[nltk_data] Downloading package wordnet to /root/nltk_data...
[nltk_data]   Unzipping corpora/wordnet.zip.

आप स्टोरेज एडेप्टर को चैटबॉट ऑब्जेक्ट के साथ पोज़िशन कर सकते हैं। स्टोरेज एडेप्टर आपको किसी विशेष स्टोरेज यूनिट या नेटवर्क से कनेक्ट करने देते हैं। स्टोरेज एडेप्टर का उपयोग करने के लिए हमें उसे निर्दिष्ट करना होगा। हम जिस स्टोरेज का उपयोग करना चाहते हैं, उसके इम्पोर्ट पाथ को असाइन करके एडेप्टर सेट करेंगे। यहाँ हम SQL Storage Adapter उपयोग कर रहे हैं, जो चैटबॉट को SQL में डेटाबेस से कनेक्ट करने देता है। database पैरामीटर का उपयोग करके हम एक नया SQLite डेटाबेस बनाएँगे। कृपया नीचे दिया गया कोड फ़ॉलो करें, चैटबॉट के लिए नया डेटाबेस बनाने हेतु।

# Create object of ChatBot class with Storage Adapter
bot = ChatBot(
    'Buddy',
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    database_uri='sqlite:///database.sqlite3'
)

आप लॉजिकल एडेप्टर को भी चैटबॉट ऑब्जेक्ट के साथ पोज़िशन कर सकते हैं। नाम से ही स्पष्ट है, Logical Adapter chatterbot के पीछे की लॉजिक को नियंत्रित करता है—यानी यह किसी भी इनपुट के लिए प्रतिक्रियाएँ चुनता है। यह पैरामीटर लॉजिकल ऑपरेटर्स की एक सूची रखता है। Chatterbot हमें कई Logical Adapters उपयोग करने देता है। जब एक से अधिक लॉजिकल एडेप्टर उपयोग किए जाते हैं, तो चैटबॉट कॉन्फिडेंस लेवल की गणना करता है और सबसे अधिक कॉन्फिडेंस वाले उत्तर को आउटपुट के रूप में लौटाता है। यहाँ हमने दो लॉजिकल एडेप्टर्स का उपयोग किया है: BestMatch और TimeLogicAdapter।

# Create object of ChatBot class with Logic Adapter
bot = ChatBot(
    'Buddy',  
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'],
)

चैटबॉट को ट्रेन करना

अब चैटबॉट बनाने का अंतिम चरण है—chatterbot में उपलब्ध मॉड्यूल्स का उपयोग करके चैटबॉट को ट्रेन करना। chatterbot में चैटबॉट को ट्रेन करना उतना ही सरल है जितना कि बातचीत को चैटबॉट डेटाबेस में उपलब्ध कराना। जैसे ही चैटबॉट को डेटासेट दिया जाता है, यह इनपुट और आउटपुट को उपयुक्त रूप में दर्शाने के लिए चैटबॉट के नॉलेज ग्राफ में आवश्यक एंट्रीज़ बना देता है। सबसे पहले, ListTrainer इम्पोर्ट करें, Chatbot ऑब्जेक्ट पास करके इसका ऑब्जेक्ट बनाएं, और वाक्यों की सूची पास करते हुए train() मेथड कॉल करें।

# Inport ListTrainer
from chatterbot.trainers import ListTrainer

trainer = ListTrainer(bot)

trainer.train([
'Hi',
'Hello',
'I need your assistance regarding my order',
'Please, Provide me with your order id',
'I have a complaint.',
'Please elaborate, your concern',
'How long it will take to receive an order ?',
'An order takes 3-5 Business days to get delivered.',
'Okay Thanks',
'No Problem! Have a Good Day!'
])
List Trainer: [####################] 100%

चैटबॉट परीक्षण

इस ट्यूटोरियल का अंतिम चरण है chatterbot की संवाद क्षमता का परीक्षण करना। इसकी प्रतिक्रियाएँ जाँचने के लिए, हम Chatbot इंस्टेंस के get_responses() मेथड को कॉल करेंगे।

# Get a response to the input text 'I would like to book a flight.'
response = bot.get_response('I have a complaint.')

print("Bot Response:", response)
Bot Response: Please elaborate, your concern

हम अपने चैटबॉट को चलाने के लिए एक while लूप बनाएँगे। जब इस लूप में स्टेटमेंट्स पास किए जाएँगे, तो हमें उनके लिए उपयुक्त प्रतिक्रिया मिलेगी, क्योंकि हमने पहले ही अपने डेटाबेस में डेटा दर्ज कर दिया है। यदि उपयोगकर्ता से "Bye" या "bye" स्टेटमेंट मिलता है, तो हम लूप को समाप्त कर प्रोग्राम रोक सकते हैं।

name=input("Enter Your Name: ")
print("Welcome to the Bot Service! Let me know how can I help you?")
while True:
    request=input(name+':')
    if request=='Bye' or request =='bye':
        print('Bot: Bye')
        break
    else:
        response=bot.get_response(request)
        print('Bot:',response)
Enter Your Name: Avinash
Welcome to the Bot Service! Let me know how can I help you?
Avinash:I need your assistance regarding my order
Bot: Please, Provide me with your order id
Avinash:12345
Bot: No Problem! Have a Good Day!
Avinash:Bye
Bot: Bye

निष्कर्ष

बधाई हो, आप इस ट्यूटोरियल के अंत तक पहुँच गए हैं!

यह लेख Python में ChatterBot लाइब्रेरी का उपयोग करके चैटबॉट बनाना सीखने पर आधारित था। ChatterBot के साथ चैटबॉट बनाना न केवल सरल था, बल्कि परिणाम भी सटीक थे। आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग के उन्नति के साथ, कुछ भी संभव है—चाहे इंसानों जैसी संवाद क्षमता वाले बॉट बनाना हो या कुछ और। DataCamp का यह ट्यूटोरियल देखें: Deploying Facebook Chatbots with Python।

DataCamp की Python कोर्स लाइब्रेरी बैनर एक्सप्लोर करें

विषय