← नवीनतम पेपर
💬 NLP

Retrieval-Augmented Code Generation: A Survey with Focus on Repository-Level Approaches

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

मूल लेखक: Yicheng Tao, Yuante Li, Yao Qin, Yepang Liu

प्रकाशित 2026-05-21
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Yicheng Tao, Yuante Li, Yao Qin, Yepang Liu

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

बड़ी तस्वीर: एक वाक्य लिखने से लेकर एक शहर बनाने तक

कल्पना कीजिए कि आप एक मास्टर आर्किटेक्ट हैं।

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

पेपर का तर्क है कि जबकि AI एक एकल वाक्य (कोड फंक्शन) लिखने में बहुत अच्छा है, इसे "शहर" (पूरे सॉफ्टवेयर प्रोजेक्ट) बनाने में संघर्ष करना पड़ता है क्योंकि वास्तविक सॉफ्टवेयर अव्यवस्थित, विशाल और विभिन्न फाइलों के बीच छिपे हुए कनेक्शनों से भरा होता है।

समाधान: "सुपर लाइब्रेरियन" (RACG)

AI आर्किटेक्ट को शहर बनाने में मदद करने के लिए, पेपर एक अवधारणा पेश करता है जिसे रिट्रीवल-ऑगमेंटेड कोड जनरेशन (RACG) कहा जाता है।

AI को एक ऐसे जीनियस के रूप में न सोचें जिसने दुनिया की हर किताब याद कर ली है, बल्कि एक ऐसे बुद्धिमान छात्र के रूप में देखें जिसे एक लाइब्रेरी का उपयोग करने की आवश्यकता है।

  • समस्या: यदि आप छात्र को प्लंबिंग में लीक ठीक करने के लिए कहते हैं, तो वह गलत अनुमान लगा सकता है क्योंकि उसे नहीं पता कि पाइप कहाँ हैं।
  • समाधान (RAG): सुधार लिखने से पहले, छात्र लाइब्रेरी में जाता है, इस विशिष्ट इमारत के ब्लूप्रिंट ढूंढता है, और प्रासंगिक पन्नों को पढ़ता है। फिर, वे उस ताज़ा जानकारी का उपयोग करके कोड लिखते हैं।

पेपर कहता है कि यह केवल लाइब्रेरी की एक बार की यात्रा नहीं है। यह एक गतिशील प्रक्रिया है जहाँ छात्र ब्लूप्रिंट की जाँच करता रहता है, नए प्रश्न पूछता है, और काम करते समय अपनी योजना को समायोजित करता है।

लाइब्रेरी को व्यवस्थित करने के दो मुख्य तरीके

सर्वेक्षण यह वर्गीकृत करता है कि ये "सुपर लाइब्रेरियन" जानकारी कैसे खोजते हैं:

1. "फ्लैट पाइल" दृष्टिकोण (नॉन-ग्राफ-बेस्ड)

कल्पना कीजिए कि लाइब्रेरी में किताबों का एक विशाल ढेर है। अपनी ज़रूरत खोजने के लिए, आप कीवर्ड (जैसे "पाइप" या "लीक") खोजते हैं।

  • यह कैसे काम करता है: AI उन शब्दों को देखता है जो समस्या से मेल खाते हैं।
  • चुनौती: यह प्लंबिंग मैनुअल में "पाइप" के बारे में एक किताब ढूंढ सकता है, लेकिन यह मिस कर सकता है कि इस विशिष्ट इमारत में, पाइप एक अजीब सामग्री से बने हैं जिसका उल्लेख किसी अन्य फ़ाइल में किया गया है। यह सरल खोजों के लिए अच्छा है लेकिन गहरे कनेक्शनों को मिस कर सकता है।

2. "मैप" दृष्टिकोण (ग्राफ-बेस्ड)

कल्पना कीजिए कि लाइब्रेरी में शहर का एक विशाल, 3D मैप है। किताबें केवल ढेर नहीं हैं; वे धागों से जुड़ी हुई हैं।

  • यह कैसे काम करता है: AI देखता है कि "फ़ाइल A" "फ़ाइल B" से जुड़ी है क्योंकि एक दूसरे को कॉल करती है। वह ठीक से पता लगाने के लिए कि समस्या कहाँ है, उन धागों (जैसे सबवे मैप) का पीछा करता है।
  • चुनौती: इस मैप को बनाने में बहुत समय और प्रयास लगता है। यदि शहर बदलता है (नया कोड जोड़ा जाता है), तो मैप को फिर से बनाना पड़ता है। साथ ही, अलग-अलग शहरों (प्रोग्रामिंग भाषाओं) को अलग-अलग मैप शैलियों की आवश्यकता होती है।

विकास: रोबोट से जासूस तक

पेपर ट्रैक करता है कि ये सिस्टम कितने स्मार्ट हुए हैं, जो तीन "स्वायत्तता के स्तरों" (Levels of Autonomy) के माध्यम से आगे बढ़े हैं:

  • स्तर 0: स्थिर रोबोट (Static Robot)। रोबोट को एक प्रश्न मिलता है, वह एक उत्तर खोजता है, और कोड लिखता है। वह अपना मन कभी नहीं बदलता, भले ही वह गलती करे।
  • स्तर 1: आत्म-सुधार करने वाला छात्र (Self-Correcting Student)। छात्र एक ड्राफ्ट लिखता है, उसकी जांच करता है, महसूस करता है कि वह गलत है, अधिक जानकारी खोजता है, और फिर से कोशिश करता है। यह "कोशिश करें -> जांचें -> ठीक करें" का एक लूप है।
  • स्तर 2: डिटेक्टिव एजेंट (Detective Agent)। यह पूर्ण जासूस है। एजेंट केवल प्रश्न का इंतज़ार नहीं करता है। वह शहर (कोड रिपॉजिटरी) में घूमता है, दरवाजे खोलता है, बेसमेंट की जांच करता है, "टूल्स" (जैसे टर्मिनल या कंपाइलर) से बात करता है, और खुद तय करता है कि आगे क्या देखना है। वह अपनी जांच की योजना स्वयं बनाता है।

टूलकिट: वे क्या उपयोग करते हैं?

पेपर इन सिस्टम्स द्वारा उपयोग किए जाने वाले टूल्स को भी देखता है:

  • डेटाबेस: वे केवल कोड फाइलों का उपयोग नहीं करते हैं। वे बग रिपोर्ट, उपयोगकर्ता टिप्पणियाँ, और यहाँ तक कि डेवलपर्स ने समान समस्याओं को कैसे हल किया है, इसका भी उपयोग करते हैं।
  • दिमाग (मॉडेल्स): वे काम के लिए अलग-अलग "मस्तिष्क" का उपयोग करते हैं। कुछ छोटे और तेज़ होते हैं (सरल कार्यों के लिए अच्छे), जबकि अन्य विशाल और महंगे होते हैं (जटिल तर्क के लिए अच्छे)। दिलचस्प बात यह है कि पेपर नोट करता है कि कई शोधकर्ता अभी भी छोटे, ओपन-सोर्स मॉडल का उपयोग करते हैं क्योंकि उन्हें चलाना सस्ता है, भले ही बड़े "प्रोपराइटरी" मॉडल (जैसे OpenAI या Google के) बहुत शक्तिशाली हों।

बड़े प्रश्न और चुनौतियाँ

पेपर कुछ कठिन प्रश्न पूछकर समाप्त होता है:

  1. क्या लाइब्रेरियन आवश्यक है? यदि AI छात्र के पास इतनी बड़ी मेमोरी है कि वह पूरे शहर को अपने दिमाग में रख सके ("लॉन्ग-कॉन्टेक्स्ट" मॉडल), तो क्या उसे अभी भी लाइब्रेरियन की आवश्यकता है? पेपर कहता है: हाँ, लेकिन यह निर्भर करता है। एक छोटे घर के लिए, आपको लाइब्रेरियन की आवश्यकता नहीं हो सकती है। लेकिन एक विशाल महानगर के लिए, लाइब्रेरियन सब कुछ याद करने की तुलना में अधिक तेज़ और कुशल है।
  2. सुरक्षा: यदि लाइब्रेरी को नकली ब्लूप्रिंट के साथ ज़हरीला बना दिया जाता है, तो AI एक खतरनाक इमारत बना सकता है। पेपर चेतावनी देता है कि हैकर्स सिस्टम को बुरा कोड रिट्रीव करने के लिए धोखा दे सकते हैं।
  3. "वास्तविक दुनिया" का अंतर: अधिकांश परीक्षण छोटे, आदर्श उदाहरणों पर किए जाते हैं। पेपर का तर्क है कि हमें इन सिस्टम्स को अस्त-व्यस्त, वास्तविक दुनिया के प्रोजेक्ट्स पर टेस्ट करने की आवश्यकता है, जो वास्तविक सॉफ्टवेयर की तरह हर दिन बदलते रहते हैं।

सारांश

संक्षेप में, यह पेपर इस बात का नक्शा है कि कैसे AI केवल अनुमान लगाने के बजाय, पूरे प्रोजेक्ट को पढ़ने, कनेक्शनों को समझने और समस्या सुलझाने के लिए एक जासूस की तरह कार्य करके सॉफ्टवेयर बनाना सीख रहा है। यह हमें "एक लाइन का कोड लिखने वाले AI" से "एक पूरे सॉफ्टवेयर कंपनी के कोडबेस को नेविगेट करने और ठीक करने वाले AI" की ओर ले जाता है।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →