Gemma की मदद से, पर्सनल एआई कोडिंग असिस्टेंट बनाएं

आर्टिफ़िशियल इंटेलिजेंस (एआई) मॉडल से कोड लिखने में मदद पाना बहुत फ़ायदेमंद हो सकता है. हालांकि, अगर कनेक्टिविटी, लागत या डेटा सुरक्षा से जुड़ी पाबंदियों की वजह से, आपको तीसरे पक्ष के होस्ट किए गए जनरेटिव एआई मॉडल का इस्तेमाल करने से रोका गया है, तो क्या होगा? Gemma मॉडल की Google की फ़ैमिली को डाउनलोड किया जा सकता है और अपने हार्डवेयर पर चलाया जा सकता है. इससे, आपके पास सभी डेटा को स्थानीय तौर पर सेव रखने का विकल्प होता है. साथ ही, मॉडल को अपने कोडबेस के साथ बेहतर तरीके से काम करने के लिए ट्यून करने का विकल्प भी होता है.

Gemma या CodeGemma का अपना इंस्टेंस चलाने से, आपको कोडिंग में एआई की मदद मिल सकती है. साथ ही, इसमें कम समय लगता है, यह ज़्यादा उपलब्ध होता है, और इसकी लागत भी कम हो सकती है. इसके अलावा, आपके पास अपने सभी कोडिंग डेटा को अपने नेटवर्क पर रखने की सुविधा होती है. इस प्रोजेक्ट में, Gemma को होस्ट करने के लिए अपनी वेब सेवा सेट अप करने का तरीका बताया गया है. साथ ही, इसे Microsoft Visual Studio Code एक्सटेंशन से कनेक्ट करने का तरीका भी बताया गया है, ताकि कोडिंग के दौरान मॉडल का इस्तेमाल करना ज़्यादा आसान हो. इस प्रोजेक्ट में दो सब-प्रोजेक्ट शामिल हैं: एक प्रोजेक्ट, Gemma को वेब सेवा में सेट अप और रैप करने के लिए है. वहीं, दूसरा प्रोजेक्ट VS Code एक्सटेंशन के लिए है, जो वेब सेवा से कनेक्ट होता है और उसका इस्तेमाल करता है.

इस प्रोजेक्ट और इसे बढ़ाने के तरीके के बारे में वीडियो की खास जानकारी पाने के लिए, निजी एआई कोड असिस्टेंट के बारे में जानकारी देने वाला 'Google के एआई की मदद से बनाएं' वीडियो देखें. इसमें, इसे बनाने वाले लोगों से मिली अहम जानकारी भी शामिल है. इस प्रोजेक्ट के कोड की समीक्षा, Gemma Cookbook की कोड रिपॉज़िटरी में जाकर भी की जा सकती है. इसके अलावा, प्रोजेक्ट को बढ़ाने के लिए यहां दिए गए निर्देशों का पालन करें.

खास जानकारी

इस ट्यूटोरियल में, दो प्रोजेक्ट सेट अप करने और उन्हें बढ़ाने का तरीका बताया गया है: Gemma के लिए एक वेब सेवा और उस सेवा का इस्तेमाल करने के लिए एक VS Code एक्सटेंशन. वेब सेवा, Gemma मॉडल को उपलब्ध कराने और अनुरोधों को मैनेज करने के लिए, Python, Keras, JAX, और FastAPI लाइब्रेरी का इस्तेमाल करती है. VS Code एक्सटेंशन, जिसे Pipet कहा जाता है, कमांड पैलेट में कमांड जोड़ता है. इससे, कोड में बदलाव करने वाली विंडो में कोड, टेक्स्ट या टिप्पणियां चुनकर, Gemma की वेब सेवा से अनुरोध किए जा सकते हैं. जैसा कि पहले फ़िगर में दिखाया गया है.

VS Code एक्सटेंशन के यूज़र इंटरफ़ेस का स्क्रीनशॉट

पहली इमेज. Visual Studio Code में Pipet एक्सटेंशन के लिए प्रोजेक्ट कमांड यूज़र इंटरफ़ेस

दोनों प्रोजेक्ट के लिए पूरा सोर्स कोड, Gemma Cookbook के कोड रिपॉज़िटरी में दिया गया है. साथ ही, अपनी ज़रूरतों और पसंद के वर्कफ़्लो के हिसाब से, दोनों प्रोजेक्ट को बढ़ाया जा सकता है.

प्रोजेक्ट सेटअप करना

इन निर्देशों में, इस प्रोजेक्ट को डेवलपमेंट और टेस्टिंग के लिए तैयार करने का तरीका बताया गया है. सेटअप करने के सामान्य चरणों में, ज़रूरी सॉफ़्टवेयर इंस्टॉल करना, कोड रिपॉज़िटरी से प्रोजेक्ट क्लोन करना, कुछ एनवायरमेंट वैरिएबल सेट करना, Python और Node.js लाइब्रेरी इंस्टॉल करना, और वेब ऐप्लिकेशन की जांच करना शामिल है.

ज़रूरी सॉफ़्टवेयर इंस्टॉल करना

यह प्रोजेक्ट, पैकेज मैनेज करने और दोनों प्रोजेक्ट चलाने के लिए Python 3, वर्चुअल एनवायरमेंट (venv), Node.js, और Node Package Manager (npm) का इस्तेमाल करता है.

ज़रूरी सॉफ़्टवेयर इंस्टॉल करने के लिए:

  • Python 3, Python के लिए वर्चुअल एनवायरमेंट (venv) पैकेज, Node.js, और Node.js पैकेज मैनेजर (npm) इंस्टॉल करें:

    sudo apt update
    sudo apt install git pip python3-venv nodejs npm
    

प्रोजेक्ट का क्लोन बनाना

प्रोजेक्ट कोड को अपने डेवलपमेंट कंप्यूटर पर डाउनलोड करें. प्रोजेक्ट का सोर्स कोड पाने के लिए, आपको git सोर्स कंट्रोल सॉफ़्टवेयर की ज़रूरत होगी.

प्रोजेक्ट कोड डाउनलोड करने के लिए:

  1. नीचे दिए गए कमांड का इस्तेमाल करके, git रिपॉज़िटरी को क्लोन करें:

    git clone https://github.com/google-gemini/gemma-cookbook.git
    
  2. ज़रूरी नहीं: स्पार्स चेकआउट का इस्तेमाल करने के लिए, अपनी लोकल Git रिपॉज़िटरी को कॉन्फ़िगर करें, ताकि आपके पास सिर्फ़ प्रोजेक्ट की फ़ाइलें हों:

    cd gemma-cookbook/
    git sparse-checkout set Demos/personal-code-assistant/
    git sparse-checkout init --cone
    

Gemma की वेब सेवा से जुड़ा प्रोजेक्ट

इस प्रोजेक्ट का वेब सेवा वाला हिस्सा (gemma-web-service), Gemma 2 2B का एक ऐसा इंस्टेंस बनाता है जिसे अलग से होस्ट किया जाता है. इसे बुनियादी वेब सेवा के साथ रैप किया जाता है, ताकि जनरेशन के अनुरोधों और जवाबों को मैनेज किया जा सके. VS Code एक्सटेंशन, इस सेवा से कनेक्ट होता है. इस ट्यूटोरियल में इसके बारे में बाद में बताया गया है. यह एक्सटेंशन, कोड से जुड़ी मदद के अनुरोधों को मैनेज करता है.

इन निर्देशों में, इस प्रोजेक्ट को डेवलपमेंट और टेस्टिंग के लिए तैयार करने का तरीका बताया गया है. सेटअप करने के सामान्य चरणों में, ज़रूरी सॉफ़्टवेयर इंस्टॉल करना, कोड रिपॉज़िटरी से प्रोजेक्ट को क्लोन करना, कुछ एनवायरमेंट वैरिएबल सेट करना, Python लाइब्रेरी इंस्टॉल करना, और वेब सेवा की जांच करना शामिल है.

हार्डवेयर की ज़रूरी शर्तें

Gemma वेब सेवा प्रोजेक्ट को ऐसे कंप्यूटर पर चलाएं जिसमें ग्राफ़िक्स प्रोसेसिंग यूनिट (जीपीयू) या टेंसर प्रोसेसिंग यूनिट (टीपीयू) हो. साथ ही, मॉडल को सेव करने के लिए, जीपीयू या टीपीयू की मेमोरी काफ़ी हो. इस वेब सेवा प्रोजेक्ट में Gemma 2 2B कॉन्फ़िगरेशन को चलाने के लिए, आपको करीब 16 जीबी GPU मेमोरी, इतनी ही रेगुलर रैम, और कम से कम 20 जीबी डिस्क स्पेस की ज़रूरत होगी.

अगर आपको Google Cloud के वीएम इंस्टेंस पर Gemma की वेब सेवा प्रोजेक्ट को डिप्लॉय करना है, तो इन ज़रूरी शर्तों के मुताबिक इंस्टेंस को कॉन्फ़िगर करें:

  • जीपीयू हार्डवेयर: इस प्रोजेक्ट को चलाने के लिए, NVIDIA T4 की ज़रूरत होती है. हालांकि, NVIDIA L4 या इसके बाद के वर्शन का इस्तेमाल करने का सुझाव दिया जाता है
  • ऑपरेटिंग सिस्टम: Linux पर डीप लर्निंग का विकल्प चुनें. खास तौर पर, पहले से इंस्टॉल किए गए जीपीयू सॉफ़्टवेयर ड्राइवर के साथ CUDA 12.3 M124 के साथ डीप लर्निंग वीएम चुनें.
  • बूट डिस्क का साइज़: अपने डेटा, मॉडल, और सॉफ़्टवेयर के लिए, डिस्क में कम से कम 20 जीबी जगह उपलब्ध कराएं.

प्रोजेक्ट कॉन्फ़िगर करना

यह प्रोजेक्ट, पैकेज मैनेज करने और वेब सेवा चलाने के लिए Python 3 और वर्चुअल एनवायरमेंट (venv) का इस्तेमाल करता है. Python पैकेज और डिपेंडेंसी मैनेज करने के लिए, venv Python वर्चुअल एनवायरमेंट चालू करके Python लाइब्रेरी इंस्टॉल करें. setup_python स्क्रिप्ट या pip इंस्टॉलर का इस्तेमाल करके Python लाइब्रेरी इंस्टॉल करने से पहले, Python वर्चुअल एनवायरमेंट को चालू करना न भूलें. Python वर्चुअल एनवायरमेंट इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, Python venv का दस्तावेज़ देखें.

Python लाइब्रेरी इंस्टॉल करने के लिए:

  1. टर्मिनल विंडो में, gemma-web-service डायरेक्ट्री पर जाएं:

    cd Demos/personal-code-assistant/gemma-web-service/
    
  2. इस प्रोजेक्ट के लिए, Python का वर्चुअल एनवायरमेंट (venv) कॉन्फ़िगर करें और उसे चालू करें:

    python3 -m venv venv
    source venv/bin/activate
    
  3. setup_python स्क्रिप्ट का इस्तेमाल करके, इस प्रोजेक्ट के लिए ज़रूरी Python लाइब्रेरी इंस्टॉल करें:

    ./setup_python.sh
    

एनवायरमेंट वैरिएबल सेट करना

इस प्रोजेक्ट को चलाने के लिए, कुछ एनवायरमेंट वैरिएबल की ज़रूरत होती है. इनमें Kaggle का उपयोगकर्ता नाम और Kaggle का एपीआई टोकन शामिल है. Gemma मॉडल डाउनलोड करने के लिए, आपके पास Kaggle खाता होना चाहिए. साथ ही, आपको Gemma मॉडल के ऐक्सेस का अनुरोध करना होगा. इस प्रोजेक्ट के लिए, आपको .env फ़ाइल में अपना Kaggle उपयोगकर्ता नाम और Kaggle API टोकन जोड़ना होगा. इस फ़ाइल का इस्तेमाल वेब सेवा प्रोग्राम, मॉडल को डाउनलोड करने के लिए करता है.

एनवायरमेंट वैरिएबल सेट करने के लिए:

  1. Kaggle के दस्तावेज़ में दिए गए निर्देशों का पालन करके, अपना Kaggle उपयोगकर्ता नाम और एपीआई टोकन पाएं.
  2. Gemma Setup पेज पर, Gemma का ऐक्सेस पाएं निर्देशों का पालन करके, Gemma मॉडल का ऐक्सेस पाएं.
  3. प्रोजेक्ट के लिए एनवायरमेंट वैरिएबल फ़ाइल बनाएं. इसके लिए, प्रोजेक्ट के क्लोन में इस जगह पर .env टेक्स्ट फ़ाइल बनाएं:

    personal-code-assistant/gemma-web-service/.env
    
  4. .env टेक्स्ट फ़ाइल बनाने के बाद, इसमें ये सेटिंग जोड़ें:

    KAGGLE_USERNAME=<YOUR_KAGGLE_USERNAME_HERE>
    KAGGLE_KEY=<YOUR_KAGGLE_KEY_HERE>
    

वेब सेवा को चलाएं और उसकी जांच करें

प्रोजेक्ट को इंस्टॉल और कॉन्फ़िगर करने के बाद, वेब ऐप्लिकेशन चलाएं. इससे यह पुष्टि की जा सकेगी कि आपने इसे सही तरीके से कॉन्फ़िगर किया है. आपको अपने इस्तेमाल के लिए प्रोजेक्ट में बदलाव करने से पहले, इसकी जांच करनी चाहिए.

प्रोजेक्ट को चलाने और उसकी जांच करने के लिए:

  1. टर्मिनल विंडो में, gemma-web-service डायरेक्ट्री पर जाएं:

    cd personal-code-assistant/gemma-web-service/
    
  2. run_service स्क्रिप्ट का इस्तेमाल करके, ऐप्लिकेशन चलाएं:

    ./run_service.sh
    
  3. वेब सेवा शुरू करने के बाद, प्रोग्राम कोड एक यूआरएल दिखाता है. इस यूआरएल पर जाकर, सेवा को ऐक्सेस किया जा सकता है. आम तौर पर, यह पता यह होता है:

    http://localhost:8000/
    
  4. test_post स्क्रिप्ट चलाकर, सेवा की जांच करें:

    ./test/test_post.sh
    

जब आपने इस स्क्रिप्ट की मदद से सेवा को सफलतापूर्वक चला लिया हो और उसकी जांच कर ली हो, तब आपको इस ट्यूटोरियल के अगले सेक्शन में VS Code एक्सटेंशन की मदद से इससे कनेक्ट करने के लिए तैयार रहना चाहिए.

VS Code एक्सटेंशन प्रोजेक्ट

इस प्रोजेक्ट का VS Code एक्सटेंशन (pipet-code-agent-2), Microsoft Visual Studio Code ऐप्लिकेशन का एक सॉफ़्टवेयर एक्सटेंशन बनाता है. इसे एआई कोडिंग के नए कमांड जोड़ने के लिए डिज़ाइन किया गया है. यह एक्सटेंशन, इस ट्यूटोरियल में पहले बताई गई Gemma की वेब सेवा से कम्यूनिकेट करता है. यह एक्सटेंशन, JSON फ़ॉर्मैट वाले मैसेज का इस्तेमाल करके, एचटीटीपी पर वेब सेवाओं से कम्यूनिकेट करता है.

प्रोजेक्ट कॉन्फ़िगर करना

इन निर्देशों में, Pipet Code Agent v2 प्रोजेक्ट को डेवलपमेंट और टेस्टिंग के लिए सेट अप करने का तरीका बताया गया है. इसके लिए, ज़रूरी सॉफ़्टवेयर इंस्टॉल करना, कॉन्फ़िगरेशन इंस्टॉल करना, एक्सटेंशन की सेटिंग कॉन्फ़िगर करना, और एक्सटेंशन की जांच करना जैसे सामान्य चरण पूरे करने होते हैं.

ज़रूरी सॉफ़्टवेयर इंस्टॉल करना

Pipet Code Agent प्रोजेक्ट, Microsoft Visual Studio Code के एक्सटेंशन के तौर पर काम करता है. यह पैकेज मैनेज करने और ऐप्लिकेशन चलाने के लिए, Node.js और Node Package Manager (npm) टूल का इस्तेमाल करता है.

ज़रूरी सॉफ़्टवेयर इंस्टॉल करने के लिए:

  1. अपने प्लैटफ़ॉर्म के लिए, Visual Studio Code डाउनलोड और इंस्टॉल करें.
  2. पक्का करें कि आपके प्लैटफ़ॉर्म के लिए, इंस्टॉल करने के निर्देशों का पालन करके Node.js इंस्टॉल किया गया हो.

प्रोजेक्ट लाइब्रेरी कॉन्फ़िगर करना

ज़रूरी डिपेंडेंसी डाउनलोड करने और प्रोजेक्ट को कॉन्फ़िगर करने के लिए, npm कमांड लाइन टूल का इस्तेमाल करें.

प्रोजेक्ट कोड को कॉन्फ़िगर करने के लिए:

  1. Pipet Code Agent प्रोजेक्ट की रूट डायरेक्ट्री पर जाएं.

    cd Demos/personal-code-assistant/pipet-code-agent-2/
    
  2. ज़रूरी सॉफ़्टवेयर डाउनलोड करने और प्रोजेक्ट को कॉन्फ़िगर करने के लिए, इंस्टॉल करने का निर्देश चलाएं:

    npm install
    

एक्सटेंशन कॉन्फ़िगर करना

अब आपको अपने डिवाइस पर VS Code में, Pipet Code Agent को डेवलपमेंट एक्सटेंशन के तौर पर चलाकर, इंस्टॉलेशन की जांच करनी चाहिए. यह टेस्ट, VS Code की एक अलग एक्सटेंशन डेवलपमेंट होस्ट विंडो खोलता है. इसमें नया एक्सटेंशन उपलब्ध होता है. इस नई विंडो में, एक्सटेंशन के लिए सेटिंग कॉन्फ़िगर करें. इससे एक्सटेंशन को आपकी निजी Gemma वेब सेवा को ऐक्सेस करने की अनुमति मिलती है.

एक्सटेंशन डेवलपमेंट होस्ट विंडो में चल रहा Pipet Code Agent दूसरी इमेज. VS Code एक्सटेंशन डेवलपमेंट होस्ट विंडो में Pipet एक्सटेंशन की सेटिंग दिखाई गई हैं.

अपने सेटअप को कॉन्फ़िगर करने और उसकी जांच करने के लिए:

  1. VS Code ऐप्लिकेशन शुरू करें.
  2. VS Code में, File > New Window को चुनकर नई विंडो बनाएं.
  3. फ़ाइल > फ़ोल्डर खोलें को चुनकर, Pipet Code Agent प्रोजेक्ट खोलें. इसके बाद, personal-code-assistant/pipet-code-agent-2/ फ़ोल्डर चुनें.
  4. pipet-code-agent-2/src/extension.ts फ़ाइल खोलें.
  5. Run > Start Debugging को चुनकर, एक्सटेंशन को डीबग मोड में चलाएं. अगर ज़रूरी हो, तो VS Code Extension Development Host विकल्प चुनें. इस चरण से, एक्सटेंशन डेवलपमेंट होस्ट की एक अलग विंडो खुलती है.
  6. VS Code की नई विंडो में, VS Code की सेटिंग खोलें. इसके लिए, Code > Settings > Settings को चुनें.
  7. Gemma की वेब सेवा के सर्वर के होस्ट पते को कॉन्फ़िगरेशन सेटिंग के तौर पर सेट करें. खोज सेटिंग फ़ील्ड में Gemma टाइप करें. इसके बाद, उपयोगकर्ता टैब चुनें. अब Gemma > सेवा: होस्ट सेटिंग में जाकर, settings.json में बदलाव करें लिंक पर क्लिक करें. इसके बाद, होस्ट का पता जोड़ें. जैसे, 127.0.0.1, localhost या my-server.my-local-domain.com:

    "gemma.service.host": "your-host-address-here"
    
  8. settings.json फ़ाइल में किए गए बदलावों को सेव करें और सेटिंग टैब बंद करें.

एक्सटेंशन की जांच करना

अब आपको अपने डिवाइस पर VS Code में, Pipet Code Agent को डेवलपमेंट एक्सटेंशन के तौर पर चलाकर, इंस्टॉलेशन की जांच करनी चाहिए. यह टेस्ट, VS Code की एक अलग एक्सटेंशन डेवलपमेंट होस्ट विंडो खोलता है. इसमें नया एक्सटेंशन उपलब्ध होता है.

एक्सटेंशन कमांड की जांच करने के लिए:

  1. VS Code की Extension Development Host विंडो में, एडिटर विंडो में मौजूद कोई भी कोड चुनें.
  2. व्यू > कमांड पैलेट को चुनकर, कमांड पैलेट खोलें.
  3. कमांड पैलेट में, Pipet टाइप करें. इसके बाद, उस प्रीफ़िक्स वाला कोई निर्देश चुनें.

मौजूदा कमांड में बदलाव करना

Pipet Code Agent में दी गई कमांड में बदलाव करना, एक्सटेंशन के व्यवहार और क्षमताओं को बदलने का सबसे आसान तरीका है. इस प्रॉम्प्ट कॉन्टेक्स्ट की जानकारी से, Gemma जनरेटिव मॉडल को जवाब बनाने में मदद मिलती है. Pipet की मौजूदा कमांड में प्रॉम्प्ट के निर्देशों में बदलाव करके, यह बदला जा सकता है कि हर कमांड कैसे काम करेगी.

निर्देशों के इस सेट में, review.ts कमांड में बदलाव करने का तरीका बताया गया है. इसके लिए, कमांड के प्रॉम्प्ट टेक्स्ट में बदलाव करना होगा.

review.ts निर्देश में बदलाव करने के लिए:

  1. VS Code ऐप्लिकेशन शुरू करें.
  2. VS Code में, File > New Window को चुनकर नई विंडो बनाएं.
  3. फ़ाइल > फ़ोल्डर खोलें को चुनकर, Pipet Code Agent प्रोजेक्ट खोलें. इसके बाद, pipet-code-agent/ फ़ोल्डर चुनें.
  4. pipet-code-agent/src/review.ts फ़ाइल खोलें.

review.ts कमांड के व्यवहार में बदलाव करने के लिए:

  1. review.ts फ़ाइल में, PROMPT_INSTRUCTIONS कॉन्स्टेंट की आखिरी से दूसरी लाइन में बदलाव करके Also note potential performance improvements जोड़ें.

    const PROMPT_INSTRUCTIONS = `
    Reviewing code involves finding bugs and increasing code quality. Examples of
    bugs are syntax errors or typos, out of memory errors, and boundary value
    errors. Increasing code quality entails reducing complexity of code, eliminating
    duplicate code, and ensuring other developers are able to understand the code.
    Also note potential performance improvements.
    
    Write a review of the following code:
    `;
    
  2. review.ts फ़ाइल में किए गए बदलाव सेव करें.

बदले गए निर्देश की जांच करने के लिए:

  1. VS Code के Pipet एक्सटेंशन की प्रोजेक्ट विंडो में, src/extension.ts फ़ाइल खोलें.
  2. टर्मिनल > रन बिल्ड टास्क... और फिर npm: कंपाइल करें विकल्प चुनकर, अपडेट किया गया कोड बनाएं.
  3. चलाएं > डीबगिंग फिर से शुरू करें को चुनकर, डीबगर को रीस्टार्ट करें.
  4. VS Code की Extension Development Host विंडो में, एडिटर विंडो में मौजूद कोई भी कोड चुनें.
  5. व्यू > कमांड पैलेट को चुनकर, कमांड पैलेट खोलें.
  6. कमांड पैलेट में, Pipet टाइप करें. इसके बाद, Pipet: Review the selected code कमांड चुनें.

नए निर्देश बनाना

Gemma मॉडल के साथ पूरी तरह से नए टास्क करने वाली नई कमांड बनाकर, Pipet को बढ़ाया जा सकता है. हर कमांड फ़ाइल, जैसे कि comment.ts या review.ts, में ज़्यादातर जानकारी मौजूद होती है. इसमें चालू एडिटर से टेक्स्ट इकट्ठा करने, प्रॉम्प्ट लिखने, Gemma की वेब सेवा से कनेक्ट करने, प्रॉम्प्ट भेजने, और जवाब को मैनेज करने का कोड शामिल होता है.

निर्देशों के इस सेट में, मौजूदा कमांड question.ts के कोड का इस्तेमाल करके, नई कमांड बनाने का तरीका बताया गया है.

फ़ंक्शन के लिए नामों का सुझाव देने वाली कमांड बनाने के लिए:

  1. src/ डायरेक्ट्री में, pipet-code-agent-2/src/question.ts फ़ाइल की new-service.ts नाम वाली कॉपी बनाएं.
  2. VS Code में, src/new-service.ts फ़ाइल खोलें.
  3. PROMPT_INSTRUCTIONS वैल्यू में बदलाव करके, नई फ़ाइल में प्रॉम्प्ट के निर्देशों में बदलाव करें.

    // Provide instructions for the AI model
    const PROMPT_INSTRUCTIONS = `
    Build a Python web API service using FastAPI and uvicorn.
    - Just output the code, DO NOT include any explanations.
    - Do not include an 'if __name__ == "__main__":' statement.
    - Do not include a '@app.get("/")' statement
    - Do not include a '@app.get("/info")' statement
    `;
    
  4. एक नया BOILERPLATE_CODE कॉन्स्टेंट बनाकर, सेवा का बॉयलरप्लेट जोड़ें.

    const BOILERPLATE_CODE = `
    # the following code for testing and diagnosis:
    @app.get("/")
    async def root():
        return "Server: OK"
    
    @app.get("/info")
    async def info():
        return "Service using FastAPI version: " + fastapi.__version__
    
    # Run the service
    if __name__ == "__main__":
        # host setting makes service available to other devices
        uvicorn.run(app, host="0.0.0.0", port=8000)
    `;
    
  5. कमांड फ़ंक्शन का नाम बदलकर newService() करें और इसकी जानकारी देने वाला मैसेज अपडेट करें.

    export async function newService() {
      vscode.window.showInformationMessage('Building new service from template...');
    ...
    
  6. प्रॉम्प्ट असेंबली कोड को अपडेट करें, ताकि एडिटर में चुना गया टेक्स्ट और PROMPT_INSTRUCTIONS शामिल किया जा सके.

    // Build the full prompt using the template.
      const promptText = `${selectedCode}${PROMPT_INSTRUCTIONS}`;
    
  7. जवाब डालने वाले कोड में बदलाव करके, जवाब और बॉयलरप्लेट कोड शामिल करें.

    // Insert answer after selection.
    editor.edit((editBuilder) => {
        editBuilder.insert(selection.end, "\n\n" + responseText);
        editBuilder.insert(selection.end, "\n" + BOILERPLATE_CODE);
    });
    
  8. new-service.ts फ़ाइल में किए गए बदलाव सेव करें.

नए निर्देश को इंटिग्रेट करना

नई कमांड के लिए कोड लिखने के बाद, आपको इसे एक्सटेंशन के बाकी हिस्से के साथ इंटिग्रेट करना होगा. extension.ts और package.json फ़ाइलों को अपडेट करें, ताकि नई कमांड को एक्सटेंशन का हिस्सा बनाया जा सके. साथ ही, VS Code को नई कमांड शुरू करने की अनुमति दी जा सके.

new-service कमांड को एक्सटेंशन कोड के साथ इंटिग्रेट करने के लिए:

  1. VS Code में, pipet-code-agent-2/src/extension.ts फ़ाइल खोलें.
  2. नया इंपोर्ट स्टेटमेंट जोड़कर, एक्सटेंशन में नई कोड फ़ाइल जोड़ें.

    import { newService } from './new-service';
    
  3. activate() फ़ंक्शन में यह कोड जोड़कर, नई कमांड रजिस्टर करें.

    export function activate(context: vscode.ExtensionContext) {
        ...
        vscode.commands.registerCommand('pipet-code-agent.newService', newService);
    }
    
  4. extension.ts फ़ाइल में किए गए बदलाव सेव करें.

name कमांड को एक्सटेंशन पैकेज के साथ इंटिग्रेट करने के लिए:

  1. VS Code में, pipet-code-agent/package.json फ़ाइल खोलें.
  2. नई कमांड को पैकेज फ़ाइल के commands सेक्शन में जोड़ें.

    "contributes": {
      "commands": [
        ...
        {
          "command": "pipet-code-agent.newService",
          "title": "Pipet: Generate a FastAPI service."
        }
      ],
    
  3. package.json फ़ाइल में किए गए बदलाव सेव करें.

नए कमांड को टेस्ट करना

कमांड को कोड करने और उसे एक्सटेंशन के साथ इंटिग्रेट करने के बाद, इसे टेस्ट किया जा सकता है. आपकी नई कमांड सिर्फ़ VS Code Extension Development Host विंडो में उपलब्ध है. यह उस VS Code विंडो में नहीं दिखती है जहां आपने एक्सटेंशन के कोड में बदलाव किया था.

बदले गए निर्देश की जांच करने के लिए:

  1. VS Code के Pipet एक्सटेंशन की प्रोजेक्ट विंडो में, src/extension.ts फ़ाइल खोलें.
  2. टर्मिनल > रन बिल्ड टास्क... और फिर npm: कंपाइल करें विकल्प चुनकर, अपडेट किया गया कोड बनाएं.
  3. VS Code Pipet एक्सटेंशन प्रोजेक्ट विंडो में, डीबगर को फिर से शुरू करें. इसके लिए, Run > Restart Debugging को चुनें. इससे एक अलग Extension Development Host विंडो फिर से शुरू हो जाती है.
  4. VS Code की Extension Development Host विंडो में, एडिटर विंडो में मौजूद कुछ कोड चुनें.
  5. व्यू > कमांड पैलेट को चुनकर, कमांड पैलेट खोलें.
  6. कमांड पैलेट में, Pipet टाइप करें. इसके बाद, Pipet: Generate a FastAPI service कमांड चुनें.

अब आपने VS Code एक्सटेंशन कमांड बना ली है, जो Gemma AI मॉडल के साथ काम करती है! अलग-अलग निर्देशों और कमांड का इस्तेमाल करके, एआई की मदद से कोड बनाने का ऐसा वर्कफ़्लो तैयार करें जो आपके लिए काम करे!

एक्सटेंशन को पैकेज करें और इंस्टॉल करें

अपने एक्सटेंशन को .vsix फ़ाइल के तौर पर पैकेज किया जा सकता है, ताकि इसे VS Code इंस्टेंस में स्थानीय तौर पर इंस्टॉल किया जा सके. vsce कमांड लाइन टूल का इस्तेमाल करके, अपने एक्सटेंशन प्रोजेक्ट से .vsix पैकेज फ़ाइल जनरेट करें. इसके बाद, इसे अपने VS Code इंस्टेंस में इंस्टॉल किया जा सकता है. अपने एक्सटेंशन को पैकेज करने के बारे में जानकारी के लिए, VS Code के Publishing Extensions दस्तावेज़ देखें. एक्सटेंशन को VSIX फ़ाइल के तौर पर पैकेज करने के बाद, इसे VS Code में मैन्युअल तरीके से इंस्टॉल किया जा सकता है.

VSIX पैकेज वाला एक्सटेंशन इंस्टॉल करने के लिए:

  1. VS Code इंस्टेंस में, फ़ाइल > एक्सटेंशन चुनकर, एक्सटेंशन पैनल खोलें.
  2. एक्सटेंशन पैनल में, सबसे ऊपर दाईं ओर मौजूद तीन बिंदु वाला मेन्यू चुनें. इसके बाद, VSIX से इंस्टॉल करें चुनें.
  3. एक्सटेंशन प्रोजेक्ट से जनरेट की गई .vsix पैकेज फ़ाइल खोलें, ताकि उसे इंस्टॉल किया जा सके.

अन्य संसाधन

इस प्रोजेक्ट के कोड के बारे में ज़्यादा जानकारी के लिए, Gemma Cookbook की कोड रिपॉज़िटरी देखें. अगर आपको ऐप्लिकेशन बनाने में मदद चाहिए या आपको अन्य डेवलपर के साथ मिलकर काम करना है, तो Google Developers Community Discord सर्वर पर जाएं. Google के एआई की मदद से बनाए गए अन्य प्रोजेक्ट के बारे में जानने के लिए, वीडियो प्लेलिस्ट देखें.