जेमिनी सीएलआई का उपयोग: टर्मिनल में कोडिंग एजेंट [0]

thumbnail

1. जेमिनी सीएलआई का परिचय और उपकरण [3]

  1. जेमिनी सीएलआई टर्मिनल के लिए एक कोडिंग एजेंट है [3]।
    1. यह जेमिनी मॉडल का उपयोग करता है [3]।
    2. इसमें स्थानीय मशीन पर उपकरणों तक पहुंच होती है [4]।
    3. जैसे शेल कमांड चलाना [4]।
    4. निर्देशिका में टेक्स्ट खोजना [4]।
    5. फ़ाइल खोलना और उसमें संपादन करना [4]।
    6. यह एक एजेंट है जो LLM को उपकरणों तक पहुंच प्रदान करता है [5]।

2. ब्रेकआउट क्लोन का निर्माण: लाइव डेमो [7]

  1. वक्ता ने एक डायरेक्टरी बनाई और एजेंट शुरू किया [7]।
    1. एजेंट को ब्रेकआउट क्लोन के लिए स्पेसिफिकेशन लिखने को कहा गया [12]।
    2. फिर Node.js सेवा के रूप में गेम बनाने को कहा गया [16]।
    3. कुछ लोगों ने पहले कोडिंग एजेंट का उपयोग किया है [18]।
    4. वक्ता के लिए यह जीवन बदलने वाला अनुभव रहा है [19]।

2.1. जेमिनी सीएलआई की विशिष्ट विशेषताएं [22]

  1. जेमिनी सीएलआई शेल कमांड निष्पादित कर सकता है [23]।
    1. यह टूल कॉल का प्रस्ताव करता है, जिसे उपयोगकर्ता अनुमोदित करता है [23]।
    2. यह कोडिंग से परे कार्य कर सकता है [24]।
    3. G-Cloud का उपयोग करके सेवाओं को डिप्लॉय करना [24]।
    4. क्यूबसीटीएल का उपयोग करके क्लस्टर को डीबग करना [24]।
  2. एजेंट ने npm install चलाने का प्रस्ताव दिया [25]।

2.2. YOLO मोड और सुरक्षा विचार [26]

  1. वक्ता ने एक अलग टैब में पहले से किया गया काम दिखाया [27]।
  2. एक फ्लैग -yolo है जो सब कुछ ऑटो-अप्लाई करता है [36]।
    1. वक्ता ने इसे एक बार इस्तेमाल किया था [37]।
    2. एजेंट ने rm -rf कमांड का प्रस्ताव दिया था [39]।
    3. इसलिए वक्ता अब YOLO मोड में नहीं चलता है [40]।
    4. सैंडबॉक्सिंग उपलब्ध है यदि YOLO मोड का उपयोग करना है [41]।

2.3. डिप्लॉयमेंट और पोर्ट त्रुटि सुधार [43]

  1. एजेंट ने तारीफ की, जिसे वक्ता ने वापस करना शुरू कर दिया [43]।
  2. एजेंट को डॉकर फ़ाइल जोड़ने को कहा गया [45]।
    1. फिर Cloud Run पर डिप्लॉय करने को कहा गया [46]।
    2. डिप्लॉयमेंट विफल हो गया क्योंकि Revision तैयार नहीं थी [47]।
    3. त्रुटि थी कि कंटेनर पोर्ट 8080 पर सुनना चाहिए [50]।
    4. Node.js ऐप पोर्ट 3000 पर सुन रहा था [53]।
    5. जेमिनी सीएलआई ने त्रुटि पढ़ी और परिवर्तन का प्रस्ताव दिया [54]।
    6. यह पोर्ट पर्यावरण चर पर सुनने के लिए बदल गया और काम किया [54]।

2.4. नेटवर्किंग विकल्पों पर चर्चा [55]

  1. ऐप साझा करने के लिए ग्लोबल आईपी और डोमेन पॉइंटिंग के विकल्प पूछे गए [55]।
    1. सर्वरलेस डिप्लॉयमेंट विकल्प सुझाए गए [56]।
    2. वक्ता ने मैन्युअल रूप से दस्तावेज़ पढ़ने की परेशानी पर टिप्पणी की [57]।
    3. एजेंट ने सभी आवश्यक संसाधन बनाए [59]।
  2. यह जेमिनी सीएलआई का डेमो था [60]।

3. जेमिनी सीएलआई की उपलब्धता और लागत [61]

  1. व्यक्तिगत जीमेल खाते के लिए फ्री टियर उपलब्ध है [61]।
    1. प्रतिदिन 1,000 मुफ्त Gemini 2.5 Pro प्रॉम्प्ट मिलते हैं [62]।
    2. Google AI Pro ग्राहकों के लिए सीमाएं अधिक हैं [62]।
  2. भुगतान विकल्प Google Cloud पर सब्सक्रिप्शन हैं [63]।
    1. पे-एज़-यू-गो विकल्प भी है [63]।
    2. इसमें एंटरप्राइज शर्तें शामिल हैं, जो आईपी के लिए महत्वपूर्ण हैं [63]।

4. वक्ता का LLM के प्रति दृष्टिकोण बदलना [64]

  1. वक्ता LLM के बारे में उत्साहित नहीं था [64]।
    1. दो दशकों से सॉफ्टवेयर बना रहा है और एक साल पहले उत्साहित नहीं हुआ [65]।
    2. LLM ने उसे धीमा कर दिया और अवांछित सुझाव दिए [68]।
    3. उसे अपनी शिल्प खोने की चिंता थी [69]।
  2. गूगल में काम करने के कारण AI का उपयोग करना अनुबंधात्मक रूप से अनिवार्य था [70]।
    1. वक्ता का सिद्धांत है मजबूत राय, ढीली पकड़ी [71]।
  3. फरवरी में, उसने Replit का उपयोग करके बच्चों के लिए गेम कोड किया [72]।
    1. यह मनोरंजक कोडिंग के लिए LLM का उपयोग करने का निर्णय था [75]।
  4. मार्च में, उसने Ader का उपयोग करके कपड़े बनाए [76]।
    1. इसका उपयोग टेस्ट डेटा उत्पन्न करने के लिए किया गया था [77]।
  5. मार्च में, उसने Gemini 1.5 Pro पर स्विच किया और शक्ति महसूस की [78]।
  6. जून में, उसने विशेष रूप से जेमिनी सीएलआई का उपयोग करना शुरू कर दिया [79]।

5. टेक्स्ट-आधारित एडवेंचर गेम प्रोजेक्ट [80]

  1. वक्ता ने जेमिनी सीएलआई का उपयोग करके एक टेक्स्ट-आधारित एडवेंचर गेम बनाया [80]।
    1. यह एजेंट विकास सीखने के लिए था [81]।
    2. वक्ता ने शून्य कोड लिखने का वादा किया था [81]।
    3. उसने पायथन को चुना, जिसे वह 20 साल से नहीं सीख रहा था [82]।
  2. टेक्स्ट-आधारित एडवेंचर गेम इंटरैक्टिव फिक्शन है [83]।
    1. उदाहरण: सनस्टोन पिरामिड के चींटी कक्ष में होना [84]।
    2. कमांड: एग्जामिन द पेडस्टल (सादा पत्थर) [87]।
    3. कमांड: गो नॉर्थ (अंधेरा कक्ष, ग्रू द्वारा खाए जाने की संभावना) [89]।
  3. यह गेम Google Cloud बूथ पर प्रदर्शित किया जाएगा [93]।
    1. विचार एक एजेंट बनाना है जो गेम खेले [94]।
  4. वक्ता गूगल में Cloud Run टीम में इंजीनियर है [96]।
    1. वह Gemini CLI योगदानकर्ता भी है [97]।

6. जेमिनी सीएलआई मॉडल के साथ कैसे बात करता है [98]

  1. जेमिनी सीएलआई मॉडल के साथ बातचीत को ऑर्केस्ट्रेट करता है [99]।
    1. यह एक पतली परत है [100]।
  2. बातचीत का प्रवाह [101]:
    1. उपयोगकर्ता का पहला संदेश मॉडल को जाता है (जैसे, ब्रेकआउट क्लोन बनाएं) [101]।
    2. प्रतिक्रिया आती है और संदेशों की सूची में जुड़ जाती है [103]।
    3. नया संदेश (जैसे, प्रोजेक्ट शुरू करें) पूरे वार्तालाप के साथ मॉडल को जाता है [104]।
    4. मॉडल प्रतिक्रिया देता है, शायद एक टूल कॉल का अनुरोध करता है [104]।
    5. सीएलआई उपयोगकर्ता से अनुमोदन प्राप्त करता है [105]।
    6. यह टूल आउटपुट या शेल कमांड का परिणाम लौटाता है [105]।

7. सिस्टम निर्देश और संदर्भ [106]

  1. बातचीत सिस्टम निर्देशों से शुरू होती है [107]।
    1. सिस्टम निर्देश बताते हैं कि कोडिंग एजेंट कैसे भिन्न होते हैं [109]।
    2. Gemini CLI के सिस्टम प्रॉम्प्ट में शामिल है [112]:
    3. परिचय: "हाय, मैं जेमिनी सीएलआई हूँ" [112]।
    4. आज की तारीख: 6 अक्टूबर [112]।
    5. ऑपरेटिंग सिस्टम: डार्विन (मैक पर) [112]।
    6. निर्देशिका की पुनरावर्ती फ़ाइल सूची [112]।
    7. यह केवल यही जानता है जब आप इसे शुरू करते हैं [113]।

8. उपयोगकर्ता-निर्दिष्ट संदर्भ: gemini.md [114]

  1. बड़े प्रोजेक्ट में अधिक संदर्भ जोड़ने के लिए gemini.md का उपयोग होता है [114]।
    1. यह प्रोजेक्ट रूट में एक मार्कडाउन फ़ाइल है [115]।
    2. अनुमानी यह है कि सब कुछ यहाँ रखें जिसे एजेंट को याद रखना चाहिए [115]।
    3. यह एजेंट को रैबिट होल में जाने से रोकता है [116]।
    4. यह एजेंट को make file पढ़ने या टेस्ट सूट चलाने का निर्देश दे सकता है [116]।

9. प्रशिक्षण वितरण और इन-कॉन्टेक्स्ट लर्निंग [118]

  1. यह महत्वपूर्ण है कि क्या मॉडल प्रशिक्षण वितरण के भीतर या बाहर है [118]।
    1. यदि मॉडल ने लाइब्रेरी/फ्रेमवर्क के उदाहरण देखे हैं, तो कोड अच्छा होगा [118]।
    2. React with Bootstrap CSS जैसे लोकप्रिय स्टैक के उदाहरण हैं [119]।
  2. यदि परिणाम खराब हैं, तो मॉडल ने शायद अच्छे उदाहरण नहीं देखे हैं [123]।
    1. समाधान इन-कॉन्टेक्स्ट सीखना है [124]।
    2. gemini.md को पसंदीदा कार्य विधियों से भरकर सिखाया जा सकता है [125]।
    3. अतिरिक्त निर्देशिकाएँ भी संदर्भ के रूप में शामिल की जा सकती हैं [125]।
    4. उदाहरण: Google के एजेंट डेवलपमेंट किट (ADK) के लिए स्रोत ट्री शामिल करना [127]।

10. "फाइंडिंग द लूप" तकनीक और टेस्ट कवरेज [129]

  1. फाइंडिंग द लूप एक बहुत अच्छी तकनीक है [129]।
    1. उदाहरण: एक CLI आधारित कैलकुलेटर बनाने के लिए कहा गया [130]।
    2. एजेंट ने कोड को मॉड्यूल में साफ-सुथरा व्यवस्थित किया [136]।
  2. टेस्टिंग का समय आया [139]।
    1. एजेंट से विकल्प देने को कहा गया (जैसे, बिल्ट-इन, मोचा/चाई, जेस्ट) [140]।
    2. टेस्ट कवरेज के लिए Jest का उपयोग करने का सुझाव दिया गया [141]।
    3. वक्ता ने Node.js बिल्ट-इन टेस्ट रनर का चयन किया [143]।
  3. एजेंट ने टेस्ट चलाए और कवरेज देखा [144]।
    1. कवरेज सही न होने पर, एजेंट ने स्वयं सुधार करना शुरू कर दिया [144]।
    2. यह मिसिंग स्टेटमेंट को ठीक करने के लिए कोड पढ़ता है [145]।
    3. यह 100% कवरेज के लिए बार-बार कोशिश करता है [145]।
    4. स्वचालित लूप डिटेक्शन टोकन जलने पर चेतावनी देता है [152]।
  4. लूप में रहने देना ही समाधान है यदि स्वचालित फीडबैक संभव है [155]।
    1. 100% टेस्ट कवरेज बिना अस्तित्वगत भय के प्राप्त किया जा सकता है [158]।
    2. LLM बॉयलरप्लेट कोड लिखने में उत्कृष्ट हैं [159]।
    3. एजेंट को 100% कवरेज तक पहुंचने तक शाखा कवरेज को कवर करने के लिए कहें [160]।

11. रिफैक्टरिंग और योजना निर्माण [162]

  1. 100% कवरेज से तेजी से आगे बढ़ना संभव हुआ [162]।
    1. वक्ता ने वाइल्डेस्ट रिफैक्टरिंग की और भरोसा किया [162]।
    2. एजेंट ने सभी स्तरों के लिए वॉकथ्रू लिखे [162]।
  2. यदि कार्यान्वयन बदलता है, तो एजेंट टेस्ट को फिर से लिख सकता है [165]।
  3. कार्यान्वयन योजना बनाने के लिए साक्षात्कार [166]।
    1. वक्ता ने स्कोरिंग पर काम करने की योजना दिखाई [170]।
    2. योजना में अवलोकन, कोई पूर्वापेक्षाएँ नहीं, और प्रासंगिक फ़ाइलें शामिल हैं [175]।
    3. फेज्ड कार्यान्वयन में तीन चरण थे [177]:
    4. डेटा मॉडल अपडेट करना [177]।
    5. गेम लॉजिक और कॉन्फ़िग जोड़ना [177]।
    6. अधिक व्यापक परीक्षण जोड़ना [177]।
  4. पसंदीदा चाल एजेंट को प्रिंसिपल इंजीनियर की तरह कार्य करने को कहना है [179]।
    1. यह एक समय में एक प्रश्न पूछता है [181]।
    2. प्रश्न पूछने से पहले एजेंट को कोडबेस का पता लगाना चाहिए [181]।
  5. वक्ता ने ऐप को बहुभाषी बनाने की योजना बनाई [184]।
    1. एजेंट ने अनुसंधान किया और टेम्पलेट्स देखे [190]।
    2. एजेंट ने पूछा कि क्या UI और इन-गेम सामग्री दोनों का अनुवाद करना है [193]।
    3. वक्ता ने विकल्प मांगे (मानक लाइब्रेरी, JSON आधारित, तृतीय-पक्ष सेवा) [196]।
  6. एजेंट ने योजना लिखी और सत्र को साफ़ कर दिया गया [198]।
    1. स्लैश इंटरव्यू कस्टम कमांड का उपयोग करके प्रॉम्प्ट को सहेजता है [189]।
    2. टाइपिंग त्रुटियों के प्रति LLM की असंवेदनशीलता सहायक है [199]।
  7. योजना मिलने के बाद, वक्ता ने कार्यान्वयन शुरू करने के लिए कहा [203]।

12. संदर्भ रॉट और सत्र प्रबंधन [204]

  1. वक्ता 79% संदर्भ शेष के प्रति संवेदनशील है [204]।
    1. संदर्भ जितना अधिक होगा, मॉडल के लिए प्रासंगिक जानकारी खोजना उतना ही कठिन होगा [205]।
  2. संदर्भ रॉट को प्रबंधित करने के तरीके [210]:
    1. एक मार्कर दिखाता है कि कितना संदर्भ बचा है [213]।
    2. जब यह 80% तक पहुँच जाता है, तो सफाई की आवश्यकता होती है [214]।
    3. सत्र को पुनः आरंभ करने के लिए सारांश फ़ाइल बनाने को कहें [215]।
    4. यह टोकन और लागत बचाता है [215]।

13. कोड संरचना और अंतिम सीख [216]

  1. कोड को विभाजित करने और संरचना के बारे में सोचने का कोई विकल्प नहीं है [216]।
    1. यदि संरचना खराब है, तो एजेंट बहुत बड़ी फ़ाइलों में संपादन करने में संघर्ष करेगा [217]।
    2. वक्ता ने कोड को विभिन्न मॉड्यूल में पुनर्गठित करने के लिए विकल्प मांगे [218]।
  2. दृष्टिकोण का चयन [221]:
    1. हर चीज के लिए योजना बनाने की जरूरत नहीं है [221]।
    2. CSS बग जैसी छोटी चीजों के लिए, बस प्रॉम्प्ट करें [222]।
  3. सीखी गई बातें [227]:
    1. बातचीत की संरचना समझना सुपर महत्वपूर्ण है [227]।
    2. सिस्टम प्रॉम्प्ट पढ़ें ताकि समझ आए कि यह कुछ कार्य क्यों करता है [229]।
    3. उदाहरण: git commit से पहले यह हमेशा लॉग क्यों पढ़ता है [231]।
    4. प्रशिक्षण वितरण की जाँच करें (Python और Fast API अच्छा काम करते हैं) [232]।
    5. लूप ढूंढना संतोषजनक है [234]।
    6. 100% कवरेज के लिए कोई बहाना नहीं है क्योंकि एजेंट टेस्ट लिखना पसंद करता है [236]।
    7. विकल्प हमेशा पूछें [237]।
    8. संदर्भ रॉट पर ध्यान दें और रणनीतिक रूप से सत्र पुनः आरंभ करें [237]।
    9. निर्दयतापूर्वक रिफैक्टर करते रहें [237]।