14 नवंबर, 2024
Gemini API की मदद से, एआई की मदद से काम करने वाले डेवलपर टूल को बेहतर बनाना
पिछले साल एआई (AI) को सभी के लिए उपलब्ध कराने से, डेवलपर के लिए दो बड़े अवसर खुले हैं. अब वे अपने प्रोजेक्ट में, एआई (AI) के सबसे नए वर्शन को आसानी से इंटिग्रेट कर सकते हैं. साथ ही, एआई (AI) की मदद से, डेवलपमेंट प्रोसेस को बेहतर बना सकते हैं.
Sublayer, Ruby पर आधारित एआई एजेंट फ़्रेमवर्क है. यह Gemini API की बेहतरीन सुविधाओं और परफ़ॉर्मेंस को दिखाता है. इसके लिए, यह हमारे 1.5 मॉडल को डेवलपर के मुख्य ऑफ़र के साथ-साथ अपने टूलिंग वर्कफ़्लो में इंटिग्रेट करता है.
Gemini की मदद से, सबलेयर के दस्तावेज़ों को अप-टू-डेट रखना
डेवलपर के लिए, एआई का इस्तेमाल करने का एक फ़ायदा यह है कि इससे टीमों को कम संसाधनों में ज़्यादा काम करने में मदद मिलती है. खास तौर पर, शुरुआती दौर में चल रहे छोटे स्टार्टअप के लिए यह फ़ायदा काफ़ी अहम है. कई लोगों के लिए, यह दस्तावेज़ों की तरह ही आसान और ज़रूरी हो सकता है. Sublayer, अपने वर्कफ़्लो में Gemini 1.5 Pro के साथ अपनी लाइब्रेरी को इंटिग्रेट करके और एआई ऑटोमेशन बनाकर इस समस्या को हल करता है. इससे, दस्तावेज़ों को अप-टू-डेट रखने और सुधार के लिए ज़रूरी चीज़ों की पहचान करने में मदद मिलती है.
“यह सब इसलिए हुआ, क्योंकि Gemini की बड़ी कॉन्टेक्स्ट विंडो में आपको नए आइडिया आज़माने के लिए ज़रूरत के मुताबिक जगह मिलती है. साथ ही, आपको शुरुआत में ही मुश्किल और ऑप्टिमाइज़ किए गए तरीके आज़माने की ज़रूरत नहीं पड़ती,”
यह प्रोसेस इस तरह काम करती है:
जब भी किसी पीआर को मुख्य सबलेयर रिपॉज़िटरी में मर्ज किया जाता है, तो यह दस्तावेज़ को अपडेट करने के लिए किसी एजेंट को ट्रिगर करता है.
एजेंट एक प्रॉम्प्ट जनरेट करता है. इसमें लाइब्रेरी का पूरा कॉन्टेंट, दस्तावेज़ का पूरा कॉन्टेंट, और टास्क के बारे में बताने वाले निर्देशों के साथ-साथ, पीआर का पूरा कॉन्टेंट शामिल होता है. इसके बाद, एजेंट इसे 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 डेवलपर कम्यूनिटी की मदद करना है. एआई (AI) नेटवर्क में, इस कम्यूनिटी को ज़्यादा फ़ायदा नहीं मिला है. Gemini को इंटिग्रेट करने से, उन्हें अपने टूल में Gemini की सहायता की बढ़ती मांग को पूरा करने में मदद मिली. Sublayer में Gemini को लागू करना काफ़ी आसान है. इसकी एब्स्ट्रैक्शन लेयर की मदद से, सिर्फ़ 60 लाइनों के कोड की ज़रूरत होती है. ये स्ट्रक्चर्ड आउटपुट का इस्तेमाल करते हैं. साथ ही, एक बार में कई बार दोहराए जाने वाले प्रोसेस में मॉडल के साथ इंटरैक्ट करते हैं. इस तरीके से, डेवलपमेंट और डीबग करने की प्रोसेस आसान हो जाती है. इससे डेवलपर को बेहतर ऐप्लिकेशन बनाने में मदद मिलती है.
वेर्नर का सुझाव है कि "एलएलएम पर आधारित ऐप्लिकेशन बनाते समय, समस्या को छोटे-छोटे कॉम्पोनेंट में बांटें." "आपको अपने प्रोग्राम को इस तरह से डिज़ाइन करना है कि वे किसी भी मॉडल के आउटपुट को असरदार तरीके से मैनेज कर सकें. इसका मतलब यह भी हो सकता है कि किसी व्यक्ति को आगे बढ़ने से पहले, समीक्षा करने और बदलाव करने के लिए जान-बूझकर चरण जोड़े जाएं."
एलएलएम, एआई इंफ़्रास्ट्रक्चर की पहेली का मुख्य हिस्सा
सबलेयर के लिए, Gemini जैसे एलएलएम, डेटाबेस की तरह बुनियादी ढांचे के ज़रूरी हिस्से हैं. इस फ़्रेमवर्क को Gemini 1.5 Pro और Gemini 1.5 Flash, दोनों के साथ कॉल को आसानी से इंटिग्रेट करने के लिए डिज़ाइन किया गया है. इससे, डेवलपर अपने ऐप्लिकेशन में आसानी से स्ट्रक्चर्ड डेटा का इस्तेमाल कर सकते हैं. इस तरीके से, कई काम किए जा सकते हैं. जैसे, अलग-अलग डेटा सोर्स से अहम जानकारी हासिल करना, कोड जनरेट करना, और अलग-अलग भाषाओं और लाइब्रेरी में कोडबेस को बदलना. Sublayer, Gemini मॉडल का इस्तेमाल करके, उपयोगकर्ताओं को फ़्रेमवर्क में ही नए फ़ंक्शनल कॉम्पोनेंट जनरेट करने की सुविधा देता है. "खुद से जुड़ने" की यह सुविधा, प्रयोग करने के लिए बढ़ावा देती है. साथ ही, इससे उपयोगकर्ताओं को नए आइडिया को तेज़ी से एक्सप्लोर करने में मदद मिलती है.
“Gemini, उन सभी समस्याओं को हल करने में बहुत अच्छा है जिन्हें हमारे फ़्रेमवर्क को आसान बनाने के लिए डिज़ाइन किया गया है. जैसे, कोड जनरेट करना, टास्क को अलग-अलग हिस्सों में बांटना, निर्देशों का पालन करना, और उदाहरणों के आधार पर नए डेटा स्ट्रक्चर जनरेट करना”
आगे क्या करना है
आने वाले समय में, Sublayer Augmentations.ai लॉन्च करने जा रहा है. यह एक ऐसा प्लैटफ़ॉर्म है जिस पर Sublayer, डेवलपमेंट टीमों के लिए ऑटोमेशन बनाता है. शुरुआती रिलीज़ में, Gemini 1.5 Pro के साथ काम करने वाले दो टूल शामिल होंगे: सेमेंटिक लिंटिंग, जिसकी मदद से टीमें एआई की मदद से कोड की समीक्षा करने के नियम बना सकती हैं. ये नियम, कॉन्टेक्स्ट को समझते हैं और सबसे सही तरीकों को लागू करते हैं. साथ ही, इसमें हर हफ़्ते की खास जानकारी देने वाला टूल भी शामिल है. यह टूल, कई रिपॉज़िटरी और प्रॉडक्ट मैनेजमेंट टूल में डेवलपमेंट गतिविधि को, लीडरशिप के लिए काम की अहम जानकारी में बदल देता है.
वे ज़्यादा मुश्किल टास्क के लिए, Gemini 1.5 Pro और उपयोगकर्ताओं के लिए, ज़्यादा इंतज़ार वाले फ़ंक्शन के लिए, Gemini 1.5 Flash का इस्तेमाल करना जारी रखेंगे. ऐसा इसलिए, क्योंकि वे Augmentations प्लैटफ़ॉर्म पर ज़्यादा टूल रिलीज़ करेंगे. यह काम, उनके ओपन सोर्स फ़्रेमवर्क में भी फ़ीड होगा. इससे Ruby कम्यूनिटी, Gemini की नई सुविधाओं का फ़ायदा ले पाएगी. साथ ही, Sublayer टीम को असल दुनिया में इन सुविधाओं का इस्तेमाल करने में मदद मिलेगी.
Sublayer की कहानी से, Gemini API की बदलाव करने की क्षमता का पता चलता है. इससे पता चलता है कि डेवलपर अपने वर्कफ़्लो में Gemini को आसानी से इंटिग्रेट कर सकते हैं. इससे, इनोवेशन और ऑटोमेशन के लिए कई मौके मिलते हैं. Gemini मॉडल का इस्तेमाल करके मशीन लर्निंग मॉडल बनाने के लिए, हमारा एपीआई दस्तावेज़ पढ़ें.