Nov 14, 2024
Gemini API की मदद से, एआई की मदद से काम करने वाले डेवलपर टूल को बेहतर बनाना

पिछले एक साल में, एआई को ज़्यादा से ज़्यादा लोगों के लिए उपलब्ध कराने से, डेवलपर को दो बड़े मौके मिले हैं. पहला, वे अपने प्रोजेक्ट में एआई की नई टेक्नोलॉजी को आसानी से इंटिग्रेट कर सकते हैं. दूसरा, वे डेवलपमेंट प्रोसेस में एआई की मदद से काम को ज़्यादा असरदार बना सकते हैं.
Sublayer, Ruby पर आधारित एक एआई एजेंट फ़्रेमवर्क है. यह Gemini API की क्षमता और असरदार तरीके से काम करने की खूबी को दिखाता है. इसके लिए, यह अपने मुख्य डेवलपर ऑफ़र के साथ-साथ अपने टूलिंग वर्कफ़्लो में हमारे 1.5 मॉडल को इंटिग्रेट करता है.
Gemini की मदद से, Sublayer के दस्तावेज़ को अप-टू-डेट रखना
डेवलपर के लिए, एआई की मदद से मिलने वाले अवसरों में से एक यह है कि वे टीमों को ज़्यादा काम करने में मदद कर सकते हैं. खास तौर पर, शुरुआती दौर के छोटे स्टार्टअप में काम करने वाली टीमों को. कई लोगों के लिए, यह दस्तावेज़ों के तौर पर उपलब्ध हो सकता है. Sublayer ने अपने वर्कफ़्लो में, इस समस्या को हल करने के लिए अपनी लाइब्रेरी को Gemini 1.5 Pro के साथ इंटिग्रेट किया है. साथ ही, एआई ऑटोमेशन की सुविधा बनाई है. इससे उन्हें अपने दस्तावेज़ों को अप-टू-डेट रखने और सुधार के क्षेत्रों की पहचान करने में मदद मिलती है.
“यह सब इसलिए हो पाया, क्योंकि Gemini की कॉन्टेक्स्ट विंडो बहुत बड़ी है. इससे आपको जटिल और ऑप्टिमाइज़ किए गए समाधानों में उलझे बिना, नए आइडिया आज़माने का मौक़ा मिलता है,”
यह प्रोसेस इस तरह काम करती है:
जब भी कोई पीआर, Sublayer की मुख्य रिपॉज़िटरी में मर्ज किया जाता है, तो यह एक एजेंट को दस्तावेज़ अपडेट करने का निर्देश देता है.
एजेंट एक ऐसा प्रॉम्प्ट जनरेट करता है जिसमें लाइब्रेरी का पूरा कॉन्टेंट, दस्तावेज़ का पूरा कॉन्टेंट, और पीआर का ज़रूरी कॉन्टेंट शामिल होता है. साथ ही, इसमें टास्क के बारे में बताने वाले निर्देश भी शामिल होते हैं. इसके बाद, एजेंट इस प्रॉम्प्ट को Gemini को भेजता है.
इसके बाद, Gemini स्ट्रक्चर्ड आउटपुट के साथ जवाब देता है. इसमें फ़ाइल पाथ, नाम, और कॉन्टेंट शामिल होता है. Sublayer लाइब्रेरी, इसका इस्तेमाल करने के लिए इसे ऑब्जेक्ट में बदल देती है.
आखिर में, एजेंट को मिली स्ट्रक्चर्ड जानकारी का इस्तेमाल करके, वह एक नई ब्रांच बनाता है. साथ ही, फ़ाइलों में अनुरोध किए गए बदलाव करता है और एक नया पीआर सबमिट करता है.
# Get the diff from the PR
diff = GithubGetDiffAction.new(repo: repo, pr_number: pr_number).call
# Get the contents of the library repository and docs repository
code_context = GetContextAction.new(path: code_repo_path).call
doc_context = GetContextAction.new(path: doc_repo_path).call
# Use Gemini 1.5 Pro to decide whether this PR requires a documentation update
result = DocUpdateNecessityGenerator.new(
code_context: code_context,
doc_context: doc_context,
diff: diff
).generate
# Use Gemini 1.5 Pro to generate suggested changes to the documentation
doc_update_suggestions = DocUpdateSuggestionGenerator.new(
code_context: code_context,
doc_context: doc_context,
context_ignore_list: context_ignore_list,
diff: diff
).generate
# Use Gemini 1.5 Pro to generate the changes to the suggested files
file_updates = DocUpdateGenerator.new(
code_context: code_context,
suggestions: suggestions,
doc_context: doc_context,
context_ignore_list: context_ignore_list
).generate
# Update each of the files returned by Gemini 1.5 Pro and create a new PR
Sublayer के ओपन सोर्स उदाहरणों में, वर्कफ़्लो का पूरा कोड देखें
इस पहले प्रोजेक्ट के सफल होने के बाद, उन्होंने ऐसे एजेंट बनाए हैं जो अलग-अलग संसाधन रिपॉज़िटरी की निगरानी करते हैं. इससे वे अपने दस्तावेज़ों के किसी खास कैटलॉग पेज को अप-टू-डेट रख पाते हैं. इसी तरह का एक टास्क रात भर चलता है. इसमें Gemini, मौजूदा दस्तावेज़ का विश्लेषण करता है. साथ ही, कुछ ऐसे क्षेत्रों की पहचान करता है जिनमें सुधार किया जा सकता है. इसके बाद, वह इन क्षेत्रों को उनके असर के आधार पर रैंक करता है. साथ ही, Sublayer टीम के लिए एक पीआर जनरेट करता है, ताकि टीम हर सुबह इसे देख सके और इसकी समीक्षा कर सके.
Gemini मॉडल की मदद से, Ruby डेवलपर कम्यूनिटी के लिए एआई की सुविधा उपलब्ध कराना
Sublayer, डेवलपर के अपने इन्फ़्रास्ट्रक्चर और टूल को ज़्यादा बेहतर बनाने के साथ-साथ, अपने मुख्य प्रॉडक्ट की सुविधाओं में Gemini के मॉडल का इस्तेमाल करने की सुविधा भी देता है.
Sublayer का मकसद, व्यक्तिगत डेवलपर और छोटी टीमों को ऐसे मुश्किल प्रोजेक्ट पर काम करने में मदद करना है जिन पर वे पहले लागत या जटिलता की वजह से काम नहीं कर पाती थीं. इनका मकसद, मुश्किल, समय लेने वाले, और बार-बार किए जाने वाले कामों को अपने-आप पूरा करना है. यह एआई के इस्तेमाल का सबसे सही तरीका है. इसमें बड़े पैमाने पर कोड माइग्रेशन शामिल हो सकता है. इसमें एक जैसी कार्रवाइयों को हज़ारों बार दोहराना पड़ता है. साथ ही, इसमें रोज़मर्रा के कामों को ज़्यादा आसानी से करने के लिए, चेकलिस्ट में दिए गए छोटे-छोटे कामों को अपने-आप पूरा होने की सुविधा चालू करना भी शामिल हो सकता है. इन कामों को पूरा करने में काफ़ी समय और ऊर्जा खर्च होती है.
Sublayer के लिए मुख्य चुनौती, Ruby डेवलपर कम्यूनिटी को सपोर्ट करना है. एआई के ईकोसिस्टम में, इस कम्यूनिटी को अब तक ज़्यादा सुविधाएं नहीं मिली हैं. Gemini को इंटिग्रेट करने से, उन्हें अपने टूल में Gemini की सुविधा के लिए बढ़ती मांग को पूरा करने में मदद मिली. Sublayer में Gemini को बहुत ही असरदार तरीके से लागू किया गया है. इसमें सिर्फ़ 60 लाइनों के कोड की ज़रूरत होती है. ऐसा ऐब्स्ट्रैक्शन लेयर की वजह से होता है. ये स्ट्रक्चर्ड आउटपुट का इस्तेमाल करते हैं. साथ ही, एक ही बार में कई बार दोहराई जाने वाली प्रोसेस में मॉडल के साथ इंटरैक्ट करते हैं. इस तरीके से, डेवलपमेंट और डीबगिंग की प्रोसेस आसान हो जाती है. इससे डेवलपर को मज़बूत ऐप्लिकेशन बनाने में मदद मिलती है.
वर्नर का सुझाव है कि "एलएलएम पर आधारित ऐप्लिकेशन बनाते समय, समस्या को छोटे से छोटे कॉम्पोनेंट में तोड़ें." "आपको अपने प्रोग्राम इस तरह से डिज़ाइन करने चाहिए कि वे किसी भी मॉडल के आउटपुट को असरदार तरीके से हैंडल कर सकें. इसका मतलब यह भी हो सकता है कि आपको जान-बूझकर ऐसे चरण जोड़ने पड़ें जिनमें कोई व्यक्ति, आगे बढ़ने से पहले समीक्षा कर सके और बदलाव कर सके."
एलएलएम, एआई इन्फ़्रास्ट्रक्चर के लिए एक अहम हिस्सा है
Sublayer के लिए, Gemini जैसे एलएलएम, बुनियादी ढांचे के ज़रूरी हिस्से हैं. ये डेटाबेस की तरह काम करते हैं. इनका फ़्रेमवर्क, Gemini 1.5 Pro और Gemini 1.5 Flash, दोनों को आसानी से कॉल करने के लिए डिज़ाइन किया गया है. इससे स्ट्रक्चर्ड डेटा मिलता है, जिसे डेवलपर अपने ऐप्लिकेशन में आसानी से इस्तेमाल कर सकते हैं. इस तरीके से, कई तरह के काम किए जा सकते हैं. जैसे, अलग-अलग डेटा सोर्स से अहम जानकारी निकालना, कोड जनरेट करना, और अलग-अलग भाषाओं और लाइब्रेरी में कोडबेस को बदलना. Sublayer, Gemini के मॉडल का इस्तेमाल करता है. इससे उपयोगकर्ताओं को फ़्रेमवर्क में ही नए फ़ंक्शनल कॉम्पोनेंट जनरेट करने की सुविधा मिलती है. "खुद से जुड़ने" की इस सुविधा की वजह से, एक्सपेरिमेंट करने को बढ़ावा मिलता है. साथ ही, उपयोगकर्ता नए विचारों को तेज़ी से एक्सप्लोर कर पाते हैं.
“Gemini उन सभी समस्याओं को हल करने में बहुत अच्छा है जिनके लिए हमारे फ़्रेमवर्क को डिज़ाइन किया गया है. जैसे, कोड जनरेट करना, टास्क को छोटे-छोटे हिस्सों में बाँटना, निर्देशों का पालन करना, और उदाहरणों के आधार पर नए डेटा स्ट्रक्चर जनरेट करना”
आगे क्या करना है
आने वाले समय में, Sublayer Augmentations.ai लॉन्च करने की तैयारी कर रहा है. यह एक ऐसा प्लैटफ़ॉर्म है जो उनकी बनाई गई ऑटोमेशन सुविधाओं को सभी डेवलपमेंट टीमों के लिए उपलब्ध कराता है. इनकी शुरुआती रिलीज़ में, Gemini 1.5 Pro की मदद से काम करने वाले दो टूल शामिल होंगे: सिमैंटिक लिंटिंग. इसकी मदद से टीमें, एआई की मदद से कोड की समीक्षा करने के नियम बना सकती हैं. ये नियम, कॉन्टेक्स्ट को समझते हैं और समय के साथ बेहतर होते जा रहे तरीकों को लागू करते हैं. दूसरा टूल है, हफ़्ते के हिसाब से खास जानकारी देने वाला टूल. यह कई रिपॉज़िटरी और प्रॉडक्ट मैनेजमेंट टूल में डेवलपमेंट से जुड़ी गतिविधि को, लीडरशिप के लिए कार्रवाई की जा सकने वाली अहम जानकारी में बदल देता है.
Augmentations प्लैटफ़ॉर्म पर ज़्यादा टूल रिलीज़ करने के लिए, वे मुश्किल कामों के लिए Gemini 1.5 Pro और कम समय में जवाब देने वाले कामों के लिए Gemini 1.5 Flash का इस्तेमाल जारी रखेंगे. इस काम से, उनके ओपन सोर्स फ़्रेमवर्क को भी फ़ायदा मिलेगा. इससे Ruby कम्यूनिटी, Gemini की नई सुविधाओं का फ़ायदा उठा पाएगी. साथ ही, Sublayer की टीम, असल दुनिया में इसका इस्तेमाल कर पाएगी.
Sublayer की कहानी से पता चलता है कि Gemini API कितना असरदार है. इससे पता चलता है कि डेवलपर, Gemini को अपने वर्कफ़्लो में कितनी आसानी से इंटिग्रेट कर सकते हैं. इससे उन्हें इनोवेशन और ऑटोमेशन के कई अवसर मिलते हैं. Gemini मॉडल का इस्तेमाल शुरू करने के लिए, एपीआई से जुड़ा हमारा दस्तावेज़ पढ़ें.