Code2UML: Agentic LLMs with context engineering for scalable software visualization
यह शोध पत्र Code2UML प्रस्तुत करता है, जो एक एजेंटिक LLM सिस्टम है जिसमें एक नियतात्मक (deterministic) कॉन्टेक्स्ट इंजीनियरिंग लेयर है जो विभिन्न प्रोजेक्ट आकारों और प्रोग्रामिंग भाषाओं में स्थिर प्रदर्शन बनाए रखते हुए, बड़े पैमाने के सोर्स कोड रिपॉजिटरी से स्केलेबल, उच्च-गुणवत्ता वाले स्वचालित UML आरेख निर्माण को सक्षम बनाता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आपके पास किताबों का एक विशाल पुस्तकालय (एक सॉफ्टवेयर कोडबेस) है और आप यह दिखाना चाहते हैं कि कमरे आपस में कैसे जुड़े हैं, बाहर निकलने के रास्ते कहाँ हैं, और लोग एक कमरे से दूसरे कमरे में कैसे जाते हैं, इसके लिए एक सरल मानचित्र (एक UML डायग्राम) बनाना चाहते हैं।
समस्या यह है कि पुस्तकालय इतना बड़ा है कि यदि आप पूरी चीज़ को एक ही विशेषज्ञ (एक AI) को एक साथ समझाने की कोशिश करेंगे, तो वह घबरा जाएगा, अपनी ओर से बातें बनाने लगेगा, या बस बीच में ही रुक जाएगा। यह वह "कॉन्टेक्स्ट लिमिट" (संदर्भ सीमा) की समस्या है जिसे यह शोध पत्र संबोधित करता है।
लेखकों ने, Code2U, इस समस्या को हल करने के लिए AI सहायकों की एक स्मार्ट टीम बनाई है। एक विशाल AI से सब कुछ करने के लिए कहने के बजाय, उन्होंने पाँच विशिष्ट एजेंटों का एक पदानुक्रम (सोचिए एक निर्माण दल के रूप में जिनके पास विशिष्ट कार्य हैं) और एक चतुर डेटा संपीड़न (compression) प्रणाली बनाई है।
यहाँ बताया गया है कि उनका सिस्टम कैसे काम करता है, जिसे सरल अवधारणाओं में विभाजित किया गया है:
1. "कॉन्टेक्स्ट इंजीनियरिंग" फ़िल्टर (पुस्तकालयाध्यक्ष/Librarian)
इससे पहले कि AI टीम कोड को देखे, एक विशेष टूल एक सुपर-फास्ट पुस्तकालयाध्यक्ष की तरह काम करता है।
- समस्या: कोड का पूरा पुस्तकालय AI की "कार्यकारी स्मृति" (context window) में फिट होने के लिए बहुत बड़ा है।
- समाधान: यह टूल AI का उपयोग यह तय करने के लिए नहीं करता कि क्या रखना है। इसके बजाय, यह सख्त, पूर्व-लिखित नियमों (deterministic logic) का उपयोग करता है ताकि कोड को तेजी से स्कैन किया जा सके और उस विशिष्ट मानचित्र के लिए एक अनुकूलित "स्नैपशॉट" बनाया जा सके जिसे आप बनाना चाहते हैं।
- उपमा: कल्पना कीजिए कि आपको शहर के सबवे सिस्टम का मानचित्र चाहिए। पुस्तकालयाध्यक्ष AI से यह नहीं पूछेगा कि "क्या महत्वपूर्ण है?" इसके बजाय, पुस्तकालयाध्यक्ष तुरंत सभी सड़कों के नाम, इमारतों के पते और पार्कों के विवरण को हटा देता है, और केवल सबवे स्टेशनों और पटरियों को रखता है। यह स्नैपशॉट बहुत छोटा है, AI की मेमोरी में पूरी तरह से फिट बैठता है, और बिना किसी AI मस्तिष्क शक्ति की आवश्यकता के मिलीसेकंड में होता है।
2. पाँच-एजेंटों वाली टीम (Five-Agent Crew)
एक बार जब पुस्तकालयाध्यक्ष सही स्नैपशॉट बना लेता है, तो पाँच विशिष्ट AI एजेंट कार्यभार संभाल लेते हैं। वे एक सुव्यवस्थित मशीन की तरह मिलकर काम करते हैं:
- द प्लानर (द आर्किटेक्ट/Architect): स्नैपशॉट को देखता है और निर्णय लेता है, "ठीक है, हमें इस बड़े प्रोजेक्ट को छोटे हिस्सों में तोड़ना होगा। चलिए अलग-अलग विभागों के लिए तीन अलग-अलग मानचित्र बनाते हैं।"
- द एनालाइज़र (द डिटेक्टिव/Detective): प्रत्येक हिस्से के लिए, यह एजेंट विशिष्ट फाइलों को पढ़ता है और मुख्य इंटरैक्शन का सारांश देता है (कौन किससे बात करता है)। यह शोर को अनदेखा करता है और केवल महत्वपूर्ण संकेतों पर ध्यान केंद्रित करता है।
- द डायग्राम एजेंट (द आर्टिस्ट/Artist): यह एजेंट सारांश लेता है और वास्तव में मानचित्र बनाता है (डायग्राम के लिए कोड लिखता है)।
- द करेक्टर (द एडिटर/Editor): कलाकार छोटी गलतियाँ कर सकता है (जैसे मानचित्र के लेजेंड में टाइपो)। यह एजेंट तैयार मानचित्र को पढ़ता है, नियमों की जाँच करता है, और तुरंत किसी भी त्रुटि को ठीक करता है।
- द डिपेंडेंसी एनालाइज़र (द सप्लाई चेन मैनेजर/Supply Chain Manager): यह एजेंट मुख्य कोड के बाहर देखता है कि प्रोजेक्ट किन बाहरी टूल्स या लाइब्रेरी का उपयोग करता है, यह सुनिश्चित करता है कि मानचित्र में वे कनेक्शन भी शामिल हों।
3. परिणाम: उन्होंने क्या पाया?
टीम ने 12 अलग-अलग ओपन-सोर्स सॉफ्टवेयर प्रोजेक्ट्स (छोटे ऐप्स से लेकर विशाल सिस्टम तक) पर परीक्षण किया जो चार अलग-अलग भाषाओं (Java, Python, JavaScript, PHP) में लिखे गए थे। उन्होंने 7 अलग-अलग प्रकार के मानचित्र (जैसे क्लास डायग्राम, फ्लोचार्ट और डिप्लॉयमेंट मैप्स) उत्पन्न करने की कोशिश की।
यहाँ क्या हुआ:
- उच्च सटीकता: मानचित्र लगभग हमेशा सिंटैक्टिक रूप से सही (लगभग 91.5% तुरंत सही थे; "कंपोनेंट" और "डिप्लॉयमेंट" जैसे कुछ प्रकारों के लिए यह 100% था) थे।
- स्मार्ट सारांश: सिस्टम ने कोड के हर एक हिस्से को सूचीबद्ध करने की कोशिश नहीं की (जिससे मानचित्र अपठनीय हो जाता)। इसके बजाय, इसने सबसे महत्वपूर्ण भागों पर ध्यान केंद्रित किया। इसने लगभग 31% कोड संस्थाओं (entities) को कैप्चर किया, लेकिन वे सही वाली थीं।
- निरंतरता: यह सिस्टम 30 लाइनों के कोड वाले छोटे प्रोजेक्ट पर भी उतना ही अच्छा काम करता है जितना कि 4,500 लाइनों से अधिक के विशाल प्रोजेक्ट पर। जैसे-जैसे प्रोजेक्ट बड़ा होता गया, गुणवत्ता में गिरावट नहीं आई।
- कोई मतिभ्रम नहीं (No Hallucinations): मानचित्रों ने कोड के हिस्सों के बीच नकली संबंध बनाने की बहुत कम कोशिश की। यदि मानचित्र कहता है कि दो चीजें जुड़ी हुई हैं, तो वे वास्तव में जुड़ी हुई थीं।
4. यह क्यों महत्वपूर्ण है
यह शोध पत्र तर्क देता है कि पिछले प्रयास इसलिए विफल रहे क्योंकि उन्होंने पूरे कोडबेस को एक साथ AI को खिलाने की कोशिश की थी।
- पुराना तरीका: "यहाँ पूरा पुस्तकालय है, कृपया एक मानचित्र बनाएं।" (परिणाम: AI भ्रमित हो जाता है और गलतियाँ करता है)।
- Code2U का तरीका: "यहाँ केवल वही छोटा, पूरी तरह से फ़िल्टर किया गया स्नैपशॉट है जिसकी आपको इस विशिष्ट मानचित्र के लिए आवश्यकता है। अब, इसे बनाएं।" (परिणाम: एक साफ, सटीक और वैध मानचित्र)।
सारांश
यह शोध पत्र सॉफ्टवेयर ब्लूप्रिंट बनाने को स्वचालित करने वाले एक सिस्टम का परिचय देता है। यह सफल होता है क्योंकि यह एक "सब कुछ जानने वाले" जीनियस होने की कोशिश नहीं करता, बल्कि एक विशिष्ट टीम के रूप में कार्य करता है जो पहले डेटा को बुद्धिमानी से संकुचित (compress) करता है और फिर सटीक, वैध डायग्राम बनाने के लिए सहयोग करता है। यह सिद्ध करता है कि आप बिना AI को अभिभूत किए विशाल कोडबेस के लिए उच्च गुणवत्ता वाले सॉफ्टवेयर मानचित्र उत्पन्न कर सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।