क्या LLM बस पूरे codebase को समझ नहीं सकता?: bundling के जरिए RAG का प्रयास
(gist.github.com/atjsh)> "इस लेख में हम यह जांचेंगे कि जब कई फ़ाइलों वाले TypeScript codebase को bundling के ज़रिए compress करके 1 JavaScript फ़ाइल में बदला जाए और फिर उसे LLM को दिया जाए, तो LLM codebase से जुड़े सवालों का कितनी सटीकता से जवाब दे सकता है।"
- NestJS आधारित web server codebase 1 तैयार
- esbuild से code compress (bundling)
- compress किया गया code prompt में शामिल किया गया
- prompt को ChatGPT o3-mini को भेजा गया
- यह जांचा गया कि codebase से जुड़े सवालों के कितने सटीक जवाब दिए जाते हैं
- Swagger generation test: ज़्यादातर प्रयासों में 21 endpoints में से 19 या उससे अधिक endpoints को सही तरीके से document करने में सफलता
- API endpoint explanation request test: non-developers/developers के लिए manuals सफलतापूर्वक generate किए गए
- सीमाएँ मौजूद हैं
- निष्कर्ष
> "LLM के लिए पूरे codebase पर RAG लागू करने के उद्देश्य से, पूरे codebase को एक फ़ाइल में compress करके LLM को देने वाला एक test design किया गया।
>
> मौजूदा bundling tools को वैसे ही इस्तेमाल करके जब codebase को compress किया गया, तो LLM पूरे codebase के लिए API documentation कर सका, या किसी विशेष API के लिए विस्तृत manual लिख सका।
>
> codebase compression के दौरान होने वाली information loss को original files पर अतिरिक्त Semantic search के ज़रिए पूरा किया जा सकता है।"
8 टिप्पणियां
क्या bundled फ़ाइल को prompt में डालकर या application में attach करके LLM से query करना RAG कहा जा सकता है? मुझे यह जानना है कि इसमें कौन-सा हिस्सा Retrieval के अंतर्गत आता है।
मेरे भी ऐसे ही विचार हैं
क्या bundled की गई फ़ाइलों के आधार पर LLM retrieval करके मूल कोड वापस नहीं लाता है?
दिलचस्प है। minify किए गए js से भी यह काफ़ी हद तक ठीक से समझ लेता है। https://hi.news.hada.io/topic?id=19552 या https://hi.news.hada.io/topic?id=19540 में प्रस्तुत किए गए टूल्स आदि का इस्तेमाल करके directory structure को अतिरिक्त context के रूप में दिया जाए तो अच्छा रहेगा, ऐसा लगता है।
आजकल LLM के साथ coding इतनी ज़्यादा कर रहे हैं कि efficient information delivery हमेशा एक चिंता रहती है, इसलिए यह दिलचस्प प्रयोग साझा करने के लिए धन्यवाद।
विदेश में codebase syntax को graph के रूप में extract करके query करने की कोशिशें भी हुई थीं,
लेकिन bundling शायद अधिक सामान्य रूप से लागू करना आसान तरीका लगता है। (अगर language bundling को support करती हो)
https://x.com/daniel_mac8/status/1908332949251948808
वैसे इन दिनों Gemini की performance बहुत अच्छी है, इसलिए अगर आप इसकी तुलना o3 से करें तो वह और भी दिलचस्प होगा।
इसे बहुत दिलचस्पी से पढ़ा। यह काफ़ी प्रभावशाली है कि bundled source code से business logic को इस स्तर तक निकाला जा सकता है... लगता है कि SPA से लिखे गए web app की reverse engineering लागत भी काफ़ी हद तक कम हो जाएगी।
अरे, पढ़ने की कोशिश की तो ब्लॉग अभी 500 error दे रहा है।
लगता है मेरा ब्लॉग अस्थिर है। जिन लोगों के लिए एक्सेस काम नहीं कर रहा है, वे यहाँ gist.github.com पर सामग्री पढ़ सकते हैं।