← नवीनतम पेपर
🤖 AI

In Line with Context: Repository-Level Code Generation via Context Inlining

यह योगदान InlineCoder को प्रस्तुत करता है, जो एक नवीन फ्रेमवर्क है जो एक अधूरे फंक्शन के कॉल ग्राफ—जिसमें एक जनित एंकर, अपस्ट्रीम कॉलिंग फंक्शन्स और डाउनस्ट्रीम कॉल्ड फंक्शन्स शामिल हैं—को प्रॉम्प्ट में एकीकृत करके रिपॉजिटरी-स्तरीय कोड जनरेशन में सुधार करता है ताकि संपूर्ण रिपॉजिटरी की जटिल समझ को फंक्शन स्तर पर एक अधिक प्रबंधनीय कार्य में बदला जा सके।

मूल लेखक: Chao Hu, Wenhao Zeng, Yuling Shi, Beijun Shen, Xiaodong Gu

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

मूल लेखक: Chao Hu, Wenhao Zeng, Yuling Shi, Beijun Shen, Xiaodong Gu

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

मुख्य विचार: "कॉल-स्टैक" परिप्रेक्ष्य के साथ कोड लिखना

कल्पना कीजिए कि आप एक विशाल सॉफ्टवेयर कंपनी में एक विशिष्ट फंक्शन लिखने के लिए नियुक्त किए गए एक नए कर्मचारी हैं। अतीत में, जब आपने मदद मांगी थी, तो आपको शायद कार्यालय के अन्य हिस्सों से मिलते-जुलते वाक्यों की केवल एक सूची प्राप्त होती। आप "calculate" या "user" जैसे शब्द देखते और यह अनुमान लगाने की कोशिश करते कि क्या करना है। इससे अक्सर गलतियाँ होती थीं क्योंकि आपको यह नहीं पता होता था कि किसने आपसे काम करने के लिए कहा था या कमरे में कौन से उपकरण उपलब्ध थे।

InlineCoder एक नया सिस्टम है जो यह बदल देता है कि AI इन बड़े प्रोजेक्ट्स के लिए कोड कैसे लिखता है। केवल समान दिखने वाले वाक्यों की एक सूची दिखाने के बजाय, यह कहानी को भौतिक रूप से फिर से लिखता है ताकि AI को ठीक से पता चल सके कि नया कोड वास्तविक दुनिया में कहाँ फिट बैठता है।

यह कैसे काम करता है, इसके सरल चरण यहाँ दिए गए हैं:

1. समस्या: "अलग-थलग कमरे" का जाल

जब AI किसी विशाल सॉफ्टवेयर प्रोजेक्ट (एक "रिपॉजिटरी") के लिए कोड का एक हिस्सा लिखने की कोशिश करता है, तो वह आमतौर पर एक "अलग-थलग कमरे" में फंस जाता है।

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

2. समाधान: "इनलाइनिंग कॉन्टेक्स्ट" (Context Inlining)

इस पेपर के लेखकों ने महसूस किया कि किसी कार्य को समझने के लिए, आपको दो चीजें देखनी चाहिए:

  1. आपको कौन बुला रहा है? ("अपस्ट्रीम" कॉन्टेक्स्ट: वह बॉस जो काम का अनुरोध कर रहा है)।
  2. आप किसे बुला रहे हैं? ("डाउनस्ट्रीम" कॉन्टेक्स्ट: वे उपकरण या सहायक जिनकी आपको काम पूरा करने के लिए आवश्यकता है)।

InlineCoder एक चतुर तकनीक का उपयोग करता है जिसे Inlining कहा जाता है। कल्पना कीजिए कि आप एक नाटक की पटकथा लिख रहे हैं। केवल अभिनेता को उसके संवाद देने के बजाय, आप पटकथा लेते हैं और अभिनेता के संवादों को उन दृश्यों में भौतिक रूप से डाल देते जहाँ अन्य अभिनेता उनसे बात कर रहे होते हैं। अचानक, अभिनेता देख पाता है कि उसे किस स्वर में बोलना है, उसे कौन से प्रॉप्स थमाए जा रहे हैं, और उसके संवाद बातचीत के प्रवाह में कैसे फिट बैठते हैं।

3. InlineCoder कैसे काम करता है (3-चरणों वाला नृत्य)

चरण 1: "ड्राफ्ट" (द एंकर)
सबसे पहले, AI कोड का एक त्वरित, कच्चा अनुमान बनाता है। यह पूर्ण नहीं है, लेकिन यह एक शुरुआती बिंदु है। इसे ऐसे समझें कि AI कह रहा है: "यह मेरा सबसे अच्छा अनुमान है कि इस फंक्शन को कैसा दिखना चाहिए।"

चरण 2: "अपस्ट्रीम" इनलाइनिंग (बॉस को देखना)
सिस्टम इस कच्चे अनुमान को लेता है और इसे उन फंक्शन्स के कोड में सीधे डाल देता है जो इसे कॉल करते हैं।

  • उपमा: कल्पना कीजिए कि आप एक शेफ हैं। केवल यह बताने के बजाय कि "सूप बनाओ," सिस्टम आपको ठीक वह क्षण दिखाता है जब वेटर ऑर्डर आपके पास लाता है, वेटर के हाथ में कौन सी सामग्री है, और सूप कैसे परोसा जाता है।
  • यह कैसे मदद करता है: अब AI देख सकता है कि ठीक कौन सा डेटा आ रहा है और परिणाम का स्वरूप (format) कैसा होना चाहिए। यह अनुमान लगाना बंद कर देता है और "कॉलर" की विशिष्ट आवश्यकताओं को पूरा करने लगता है।

चरण 3: "डाउनस्ट्रीम" रिट्रीवल (उपकरण खोजना)
सिस्टम उस कच्चे ड्राफ्ट की जांच करता है ताकि यह देखा जा सके कि AI ने किन उपकरणों (अन्य फंक्शन्स) का उपयोग करने का प्रयास किया है। फिर यह सुनिश्चित करने के लिए कि AI उन उपकरणों के सही संस्करण का उपयोग करे, यह प्रोजेक्ट की लाइब्रेरी में जाता है और उन उपकरणों का वास्तविक कोड प्राप्त करता है।

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

4. "ट्रस्ट चेक" (विश्वास की जाँच)

सिस्टम इतना स्मार्ट है कि वह जानता है कि वह कब अनिश्चित है। यह एक "ट्रस्ट स्कोर" की गणना करता है कि ड्राफ्ट लिखना कितना आसान था।

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

5. परिणाम: यह क्यों मायने रखता है

पेपर ने विभिन्न AI मॉडल्स का उपयोग करके दो विशाल बेंचमार्क (DevEval और RepoExec) पर इसका परीक्षण किया।

  • परिणाम: InlineCoder ने लगभग हर अन्य पद्धति को बड़े अंतर से पीछे छोड़ दिया।
  • लाभ: इसने कुछ मेट्रिक्स में पिछले सर्वोत्तम तरीकों की तुलना में कोड सटीकता में लगभग 30% तक सुधार किया।
  • अंतर्दृष्टि: AI को केवल समान शब्दों की सूची दिखाने के बजाय "कॉल ग्राफ" (कौन किससे बात करता है) दिखाकर, AI ऐसा कोड लिखता है जो वास्तव में एक वास्तविक सॉफ्टवेयर प्रोजेक्ट के जटिल नेटवर्क के भीतर काम करता है।

सारांश

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

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

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

Digest आज़माएँ →