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

यदि आप एक Python स्क्रिप्ट लिख सकते हैं और API डॉक्यूमेंटेशन पढ़ सकते हैं, तो आपके पास पहले से ही आवश्यक कच्चा माल मौजूद है।

फ्री APIs सब कुछ क्यों बदल देते हैं

कुछ समय पहले तक, एक कन्वर्सेशनल एजेंट बनाने का मतलब था ट्रेनिंग डेटा इकट्ठा करना, टेक्स्ट को साफ करना, आर्किटेक्चर चुनना और हफ्तों तक बिजली खर्च करना ताकि मॉडल व्याकरण और संदर्भ (context) सीख सके। अब उस काम का अधिकांश हिस्सा कमोडिटाइज्ड (commoditized) हो गया है। प्रदाता विशाल प्री-ट्रेंड मॉडल्स को होस्ट करते हैं और उन्हें सरल वेब एंडपॉइंट्स के माध्यम से उपलब्ध कराते हैं। आप HTTPS के माध्यम से टेक्स्ट भेजते हैं; वे एक प्रेडिक्शन (prediction) वापस करते हैं। वही प्रेडिक्शन आपके चैटबॉट का जवाब होता है।

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

अपना कोर स्टैक सेटअप करना

इस तरह के काम के लिए Python अभी भी सबसे समझदारी भरी शुरुआती भाषा बनी हुई है। इसका सिंटैक्स (syntax) आपके काम में बाधा नहीं डालता, और लगभग हर AI प्रदाता किसी भी अन्य भाषा से पहले Python में कॉपी-पेस्ट उदाहरण प्रकाशित करता है।

आपके पहले ठोस कदम बहुत कम हैं:

  • Python 3.8 या उससे नया वर्जन इंस्टॉल करें।
  • अपने टर्मिनल में pip install requests चलाकर requests लाइब्रेरी इंस्टॉल करें।
  • OpenAI के साथ साइन अप करें और अपने अकाउंट डैशबोर्ड से एक API key जेनरेट करें।

उस की (key) को एक एनवायरनमेंट वेरिएबल (environment variable) या .env फाइल के अंदर स्टोर करें। इसे कभी भी सीधे अपने सोर्स कोड में पेस्ट न करें। यदि आप हार्डकोडेड की (hardcoded key) के साथ GitHub पर रिपॉजिटरी पुश करते हैं, तो ऑटोमेटेड स्क्रेपर्स इसे कुछ ही मिनटों में ढूंढ लेंगे और आपके फ्री क्रेडिट्स खत्म कर देंगे। एक साधारण .env फाइल ऐसी दिखती है:

OPENAI_API_KEY=sk-your-key-here

फिर इसे अपने स्क्रिप्ट में os.environ या python-dotenv जैसी लाइब्रेरी का उपयोग करके लोड करें। यह एक आदत हॉबी प्रोजेक्ट्स को उन प्रोजेक्ट्स से अलग करती है जो वास्तविक दुनिया में टिक पाते हैं।

अपने प्रोजेक्ट के लिए सही API चुनना

कोड की एक और लाइन लिखने से पहले, तीन कारकों के आधार पर प्रदाताओं की तुलना करने में दस मिनट बिताएं:

फ्री टियर्स के लिए उपयोग की सीमाएं (Usage limits)। कुछ सेवाएं एक निश्चित क्रेडिट ग्रांट देती हैं जो तीन महीने बाद समाप्त हो जाती हैं। अन्य हर महीने टोकन की अनुमति को रीसेट करती हैं। एक टोकन मोटे तौर पर एक सामान्य अंग्रेजी शब्द का तीन-चौथाई हिस्सा होता है। यदि फ्री टियर आपको 200,000 टोकन देता है, तो यह हजारों सरल एक्सचेंजों के लिए पर्याप्त है, लेकिन यदि आप प्रॉम्प्ट में पूरी किताबें डाल देते हैं, तो यह जल्दी खत्म हो जाएगा। रेट लिमिट्स (rate limits) भी जांचें। एक सेवा प्रति माह दस लाख टोकन की अनुमति दे सकती है लेकिन आपको प्रति मिनट तीन अनुरोधों तक सीमित कर सकती है।

डॉक्यूमेंटेशन की गुणवत्ता। ऐसे आधिकारिक गाइड खोजें जो केवल curl कमांड ही नहीं, बल्कि साधारण requests का उपयोग करके Python उदाहरण दिखाते हों। अच्छा डॉक्यूमेंटेशन एरर कोड को स्पष्ट रूप से समझाता है, विशेष रूप से HTTP 429 (rate limit) और 401 (invalid key)। इसमें यह भी सूचीबद्ध होना चाहिए कि फ्री टियर पर कौन से मॉडल उपलब्ध हैं, क्योंकि सबसे सस्ता प्लान अक्सर नवीनतम फ्लैगशिप मॉडल्स को शामिल नहीं करता है।

इंटीग्रेशन में आसानी। एक साफ REST API जो JSON स्वीकार करता है और JSON ही वापस करता है, वह आदर्श है। आपको उन प्रदाताओं से बचना चाहिए जो केवल एक टेक्स्ट स्ट्रिंग भेजने के लिए आपको भारी प्रोप्रायटरी SDKs इंस्टॉल करने के लिए मजबूर करते हैं। यदि आप requests.post() में अनुरोध (request) बना सकते हैं, तो इंटीग्रेशन आपके नियंत्रण में है और आप इसे आसानी से डीबग कर सकते हैं।

आपके चैटबॉट का हृदय

मूल रूप से, आपका एप्लिकेशन एक फंक्शन है जो एक प्रॉम्प्ट भेजता है और उत्तर का इंतजार करता है। आप अपने संदेश को शामिल करते हुए एक डिक्शनरी (dictionary) बनाते हैं, उसे JSON में लपेटते हैं, Authorization हेडर में अपनी API key जोड़ते हैं, और इसे प्रदाता के completions या chat एंडपॉइंट पर POST करते हैं। रिमोट सर्वर टेक्स्ट को प्रोसेस करता है और एक रिस्पॉन्स ऑब्जेक्ट (response object) वापस भेजता है। आपकी स्क्रिप्ट उस JSON को पार्स करती है और जेनरेट की गई स्ट्रिंग को निकाल लेती है।

एक व्यावहारिक पहला संस्करण वैचारिक रूप से ऐसा दिखता है:

  1. कीबोर्ड से यूजर इनपुट कैप्चर करें।
  2. इसे उस पेलोड फॉर्मेट में पैक करें जिसकी API अपेक्षा करती है।
  3. HTTP रिक्वेस्ट भेजें।
  4. नेटवर्क या ऑथेंटिकेशन एरर्स की जांच करें।
  5. वापस मिले JSON से रिप्लाई टेक्स्ट निकालें।
  6. इसे स्क्रीन पर प्रिंट करें।

वह लूप—इनपुट, पैकेज, भेजें, प्राप्त करें, प्रदर्शित करें—ही पूरा इंजन है। बाकी सब कुछ केवल फिनिशिंग है।

जब आप प्रोटोटाइप से आगे बढ़ेंगे, तो आप बातचीत का इतिहास (conversation history) बनाए रखना चाहेंगे। लैंग्वेज मॉडल्स स्टेटलेस (stateless) होते हैं; वे तब तक यह याद नहीं रखते कि आपने तीन टर्न पहले क्या कहा था, जब तक कि आप हर बार उस इतिहास को प्रॉम्प्ट में वापस न डालें। आप इसे मैसेज डिक्शनरीज़ की एक Python लिस्ट रखकर और हर नई रिक्वेस्ट से पहले यूजर प्रॉम्प्ट और असिस्टेंट रिप्लाई दोनों को उसमें जोड़कर (append करके) हल करते हैं। लिस्ट बढ़ती जाती है, इसलिए जब आप मॉडल की कॉन्टेक्स्ट लिमिट के करीब पहुँचते हैं, तो आप पुराने टर्न्स को हटा (truncate) देते हैं।

महत्वपूर्ण फीचर्स जोड़ना

एक बार जब बेसिक कॉल भरोसेमंद तरीके से काम करने लगे, तो आप इस प्रोजेक्ट को ऐसी चीज़ में बदल सकते हैं जिसे लोग वास्तव में उपयोग करना चाहें।

tkinter के साथ एक सरल यूजर इंटरफेस बनाएं। स्टैंडर्ड लाइब्रेरी का tkinter मॉड्यूल अक्सर पुराना दिखने के कारण मज़ाक का पात्र बनता है, लेकिन यह हर Python इंस्टॉलेशन के साथ आता है और इसमें किसी बाहरी डिपेंडेंसी की आवश्यकता नहीं होती है। आप सौ लाइनों से भी कम में एक उपयोगी चैट विंडो बना सकते हैं: बातचीत के लॉग के लिए एक Text विजेट, टाइप करने के लिए एक Entry विजेट, और एक Button जो आपके API फंक्शन को ट्रिगर करे। यह डिज़ाइन पुरस्कार तो नहीं जीतेगा, लेकिन यह आपके स्क्रिप्ट को टर्मिनल की एक जिज्ञासा से बदलकर एक डेस्कटॉप एप्लिकेशन बना देगा जिसे गैर-तकनीकी दोस्त भी आज़मा सकते हैं।

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

प्रॉम्प्ट इंजीनियरिंग के साथ प्रयोग करें। यहाँ एडवांस NLP तकनीकों का मतलब ट्रांसफॉर्मर आर्किटेक्चर को फिर से लिखना नहीं है। इसका मतलब है अपने प्रॉम्प्ट्स को अधिक सावधानी से स्ट्रक्चर करना। सिस्टम मैसेज में मॉडल को एक पर्सोना (persona) दें। असली यूजर सवाल से पहले प्रॉम्प्ट में दो या तीन सैंपल प्रश्न-उत्तर जोड़े शामिल करके फ्यू-शॉट (few-shot) उदाहरणों का उपयोग करें। यदि API इसे एक्सपोज़ करता है, तो temperature जैसे पैरामीटर्स को एडजस्ट करें; कम वैल्यू आउटपुट को अधिक केंद्रित और डिटरमिनिस्टिक (deterministic) बनाती है, जबकि उच्च वैल्यू रचनात्मकता को बढ़ावा देती है। इन लीवर्स को आज़माने में कुछ खर्च नहीं होता है, लेकिन ये रिस्पॉन्स की गुणवत्ता को नाटकीय रूप से बदल देते हैं।

इसे बनाने से आप वास्तव में क्या सीखते हैं

यह प्रोजेक्ट केवल दिखाने के लिए एक होममेड ChatGPT क्लोन बनाने के बारे में नहीं है। यह प्रक्रिया आपको व्यावहारिक सॉफ्टवेयर इंजीनियरिंग समस्याओं का सामना करने के लिए मजबूर करती है। आप सीक्रेट्स को सुरक्षित रूप से संभालना, फील्ड्स गायब होने पर भी बिना टूटे JSON को पार्स करना, और मल्टी-टर्न बातचीत में स्टेट (state) को मैनेज करना सीखते हैं। आप शब्दों के बजाय टोकन्स (tokens) में सोचना शुरू करते हैं। आप खोजते हैं कि एक चैटबॉट कोई सोचने वाली इकाई नहीं है, बल्कि एक स्टैटिस्टिक्स इंजन के ऊपर तैरता हुआ एक प्रेडिक्शन लेयर है।

वह मेंटल मॉडल मूल्यवान है। जब आप बाद में LangChain जैसे बड़े फ्रेमवर्क के साथ काम करेंगे या प्रोडक्शन-ग्रेड एप्लिकेशन बनाएंगे, तो आप समझेंगे कि वे एब्स्ट्रैक्शन (abstractions) क्या छिपा रहे हैं क्योंकि आपने पहले ही कच्चा (raw) HTTP वर्जन खुद लिखा है।

छोटी शुरुआत करें, फिर फीचर्स जोड़ते जाएं

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

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


स्रोत और आगे पढ़ने के लिए: Build Your Own ChatGPT With Free APIs in 2025

वैकल्पिक लर्निंग कम्युनिटी: GyaanSetu AI on Telegram