20:26Chase AI
Log in to leave a comment
No posts yet
कोड की एक लाइन को ठीक करने के लिए दस्तावेज़ों को खोजने में समय बर्बाद करना बहुत दुखद है। यदि आप एक फुल-स्टैक डेवलपर हैं जो सब कुछ अकेले संभाल रहे हैं, तो यह और भी बदतर है। यदि Claude Code प्रोजेक्ट संरचना की गलत व्याख्या करता है और गलत कोड लिखता है, तो यह AI की बुद्धिमत्ता की समस्या नहीं है, बल्कि इसलिए है क्योंकि आपका ज्ञान भंडार (knowledge base) व्यवस्थित नहीं है। LightRAG को केवल इंस्टॉल करने के स्तर से आगे जाकर, इसे वास्तव में उपयोगी बुद्धिमान ज्ञान भंडार के रूप में चलाने का तरीका यहाँ दिया गया है।
LightRAG टेक्स्ट को बिना सोचे-समझे काटने का काम नहीं करता है। यह शब्दों के बीच के संबंधों को जोड़ने वाला एक ज्ञान ग्राफ (Knowledge Graph) बनाता है। AI आपके कोड के संदर्भ को गलत न समझे, इसके लिए आपको README.md फिर से लिखना होगा। केवल सुविधाओं की एक सपाट सूची बनाना व्यर्थ है।
दस्तावेज़ के शीर्ष पर निर्भरता (dependencies) निर्दिष्ट करने वाली टिप्पणियाँ (comments) डालें। उदाहरण के लिए, (OrderProcessor, uses, PaymentService) जैसे बाइनरी संबंधों को टेक्स्ट के रूप में शामिल करें। संबंध जितने जटिल होंगे, उन्हें छोटे टुकड़ों में समझाने पर LightRAG उतने ही सटीक नोड्स (nodes) बनाएगा। यदि आप सेवाओं, कंट्रोलर्स और DTO के बीच के संबंधों को स्पष्ट रूप से लिखते हैं, तो आप उस समस्या को हल कर सकते हैं जहाँ Claude Code आंतरिक लाइब्रेरी संरचना को समझ नहीं पाता और गलत जवाब देता है। वास्तव में, जब स्पष्ट संबंधों वाले दस्तावेज़ों को इंडेक्स किया जाता है, तो आर्किटेक्चर से संबंधित प्रश्नों के उत्तरों की विश्वसनीयता 90% से अधिक बढ़ जाती है।
लोकल की सभी फाइलों को इंडेक्स करना मूर्खता है। यह केवल टोकन खर्च करता है और ज्ञान ग्राफ को गंदा करता है। विशेष रूप से node_modules जैसी बाहरी निर्भरताओं के बारे में AI पहले से ही दुनिया भर के डेटा से सीख चुका है। इसे अपने लोकल इंजन को प्रदूषित करने देने की आवश्यकता नहीं है।
प्रोजेक्ट रूट में एक .ragignore फ़ाइल बनाएँ। बिल्ड आउटपुट, लॉग और अस्थायी फ़ाइलों को बिना किसी संकोच के हटा देना चाहिए।
node_modules/, dist/, target/ जैसे बिल्ड फ़ोल्डर्स को हटा दें*.log, tmp/ आदि जैसी निष्पादन के दौरान उत्पन्न होने वाली अस्थिर डेटा फ़ाइलों को ब्लॉक करें@primary_definition मेटाडेटा जोड़ेंकेवल अनावश्यक डेटा को हटाकर, खोज की सटीकता 90% से ऊपर पहुँच जाती है। चूंकि इंडेक्स हल्का हो जाता है, इसलिए खोज की गति भी बढ़ जाती है।
Claude Code MCP के माध्यम से बाहरी दुनिया से संवाद करता है। इस समय, यदि आप पूरा टेक्स्ट एक साथ भेजते हैं, तो प्रतिक्रिया धीमी हो जाएगी और आपका खर्च बढ़ जाएगा। मुख्य कार्य उन शीर्ष नोड्स का चयन करना है जिनका समानता स्कोर (similarity score) सबसे अधिक है।
MCP सेटिंग्स में only_need_context विकल्प को चालू करें और इसे केवल आवश्यक सब-ग्राफ़ (sub-graph) निकालने के लिए सीमित करें। प्रश्न की प्रकृति के आधार पर मोड को अलग तरह से कॉल करने की बुद्धिमत्ता की आवश्यकता होती है। आर्किटेक्चर के बारे में पूछते समय global मोड का उपयोग करें, और विशिष्ट फ़ंक्शन संशोधनों का अनुरोध करते समय local मोड का उपयोग करने के लिए पैरामीटर सेट करें। इससे प्रतिक्रिया की गति 2 गुना से अधिक बढ़ जाएगी। यह एक ऐसी तकनीक है जो AI को प्रश्न के इरादे को सटीक रूप से समझने और सबसे उपयुक्त ज्ञान नोड को संदर्भित करने में मदद करती है।
यदि आप Docker पर LightRAG चलाते हैं और साथ ही Claude Code भी चलाते हैं, तो आपका कंप्यूटर संघर्ष कर सकता है। एकल विकास परिवेश में, यदि सिस्टम रुक जाता है, तो कार्यप्रवाह (workflow) भी टूट जाता है। रिसोर्स सीमाएँ निर्धारित करना कोई विकल्प नहीं बल्कि अनिवार्य है।
16GB RAM के आधार पर, LightRAG कंटेनर के लिए लगभग 4GB आवंटित करें। बाकी हिस्सा IDE और लोकल LLM के उपयोग के लिए खाली छोड़ देना चाहिए। docker-compose.yaml में, cpus: '2.0' और memory: 4G जैसी ऊपरी सीमाएँ निर्धारित करें। यदि गति महत्वपूर्ण है, तो एम्बेडिंग मॉडल के रूप में nomic-embed-text का उपयोग करना बेहतर है जिसकी लेटेंसी 56ms के स्तर पर है। यदि आपको उच्च सटीकता की आवश्यकता है, तो text-embedding-3-small को चुनें, भले ही इसमें 90ms का समय लगे।
हर बार कोड बदलते समय मैन्युअल रूप से इंडेक्सिंग कमांड चलाना कष्टदायक है। मनुष्य अंततः आलस्य के कारण अपडेट करना बंद कर देते हैं, और AI कल के कोड के आधार पर आज के बग्स को ठीक करने की कोशिश करेगा।
यह Git के post-commit हुक का उपयोग करके हल किया जा सकता है। एक स्क्रिप्ट लिखें जो हर बार कोड कमिट करने पर केवल बदली हुई फाइलों को चुनती है और उन्हें LightRAG सर्वर पर भेजती है। git diff-tree के साथ बदली हुई फाइलों की सूची निकालें, और जो .ragignore द्वारा फ़िल्टर नहीं की गई हैं, उन्हें /insert एंडपॉइंट पर भेज दें। इस तरह के इंक्रीमेंटल इंडेक्सिंग सिस्टम के साथ, Claude Code बिना किसी अतिरिक्त प्रयास के हमेशा "इस क्षण" के आपके कोड को समझेगा। मैन्युअल प्रबंधन पर खर्च होने वाले समय को कम करके, आप दिन में कम से कम 1 घंटा अतिरिक्त बचा सकते हैं।