জেমার সাথে একটি ব্যক্তিগত এআই কোডিং সহকারী তৈরি করুন

কৃত্রিম বুদ্ধিমত্তা (AI) মডেলগুলি থেকে কোড সহায়তা পাওয়া খুবই কার্যকর হতে পারে, কিন্তু সংযোগ, খরচ বা ডেটা সুরক্ষার সীমাবদ্ধতার কারণে যদি আপনার তৃতীয় পক্ষের, হোস্টেড জেনারেটিভ AI মডেলগুলি ব্যবহার করা নিষিদ্ধ করা হয়? গুগলের জেমা মডেলগুলির পরিবার আপনার নিজস্ব হার্ডওয়্যারে ডাউনলোড এবং চালানোর জন্য উপলব্ধ, যাতে আপনি সবকিছু স্থানীয় রাখতে পারেন এবং এমনকি আপনার কোডবেসের সাথে আরও ভালভাবে কাজ করার জন্য মডেলটি টিউন করার বিকল্পও পাবেন।

আপনার নিজস্ব Gemma বা CodeGemma ইন্সট্যান্স চালানোর মাধ্যমে আপনি কম লেটেন্সি, উচ্চ প্রাপ্যতা, সম্ভাব্য কম খরচ এবং আপনার সমস্ত কোডিং ডেটা আপনার নিজস্ব নেটওয়ার্কে রাখার ক্ষমতা সহ AI কোডিং সহায়তা পেতে পারেন। এই প্রকল্পটি আপনাকে দেখায় যে কীভাবে Gemma হোস্ট করার জন্য এবং এটিকে একটি Microsoft Visual Studio Code এক্সটেনশনের সাথে সংযুক্ত করার জন্য আপনার নিজস্ব ওয়েব পরিষেবা সেট আপ করবেন, যাতে কোডিং করার সময় মডেলটি ব্যবহার করা আরও সুবিধাজনক হয়। এই প্রকল্পে দুটি উপ-প্রকল্প রয়েছে: একটি প্রকল্প যা Gemma কে একটি ওয়েব পরিষেবাতে সেট আপ এবং মোড়ানোর জন্য, এবং দ্বিতীয়টি একটি VS কোড এক্সটেনশনের জন্য যা ওয়েব পরিষেবাকে সংযুক্ত করে এবং ব্যবহার করে।

এই প্রকল্পের একটি ভিডিও ওভারভিউ এবং এটি কীভাবে সম্প্রসারিত করা যায়, যার মধ্যে এটি তৈরি করা ব্যক্তিদের কাছ থেকে অন্তর্দৃষ্টি অন্তর্ভুক্ত রয়েছে, Google AI সহ ব্যক্তিগত AI কোড সহকারী বিল্ড ভিডিওটি দেখুন। আপনি Gemma Cookbook কোড সংগ্রহস্থলে এই প্রকল্পের কোডটি পর্যালোচনা করতে পারেন। অন্যথায়, আপনি নিম্নলিখিত নির্দেশাবলী ব্যবহার করে প্রকল্পটি সম্প্রসারিত করা শুরু করতে পারেন।

সংক্ষিপ্ত বিবরণ

এই টিউটোরিয়ালটি আপনাকে দেখাবে কিভাবে দুটি প্রজেক্ট সেট আপ এবং এক্সটেন্ড করতে হয়: জেমার জন্য একটি ওয়েব সার্ভিস এবং সেই সার্ভিসে ব্যবহারের জন্য একটি ভিএস কোড এক্সটেনশন। ওয়েব সার্ভিসটি জেমা মডেল পরিবেশন এবং অনুরোধ পরিচালনা করার জন্য পাইথন, কেরাস, জেএক্স এবং ফাস্টএপিআই লাইব্রেরি ব্যবহার করে। ভিএস কোড এক্সটেনশন, যাকে পাইপেট বলা হয়, কমান্ড প্যালেটে কমান্ড যোগ করে যা আপনাকে কোড এডিটিং উইন্ডোতে কোড, টেক্সট বা মন্তব্য নির্বাচন করে জেমা ওয়েব সার্ভিসে অনুরোধ করতে দেয়, যেমনটি চিত্র ১-এ দেখানো হয়েছে।

ভিএস কোড এক্সটেনশন ইউজার ইন্টারফেসের স্ক্রিনশট

চিত্র ১. ভিজ্যুয়াল স্টুডিও কোডে পাইপেট এক্সটেনশনের জন্য প্রজেক্ট কমান্ড ইউজার ইন্টারফেস

উভয় প্রকল্পের সম্পূর্ণ সোর্স কোড জেমা কুকবুক কোড রিপোজিটরিতে সরবরাহ করা হয়েছে এবং আপনি আপনার চাহিদা এবং পছন্দের কর্মপ্রবাহের সাথে খাপ খাইয়ে নিতে উভয় প্রকল্পই প্রসারিত করতে পারেন।

প্রকল্প সেটআপ

এই নির্দেশাবলী আপনাকে এই প্রকল্পটি ডেভেলপমেন্ট এবং পরীক্ষার জন্য প্রস্তুত করার ক্ষেত্রে সাহায্য করবে। সাধারণ সেটআপ ধাপগুলির মধ্যে রয়েছে পূর্বশর্ত সফ্টওয়্যার ইনস্টল করা, কোড রিপোজিটরি থেকে প্রকল্পটি ক্লোন করা, কয়েকটি পরিবেশ ভেরিয়েবল সেট করা, পাইথন এবং নোড.জেএস লাইব্রেরি ইনস্টল করা এবং ওয়েব অ্যাপ্লিকেশন পরীক্ষা করা।

প্রয়োজনীয় সফ্টওয়্যার ইনস্টল করুন

এই প্রকল্পটি প্যাকেজ পরিচালনা এবং দুটি প্রকল্প চালানোর জন্য Python 3, ভার্চুয়াল এনভায়রনমেন্ট ( venv ), Node.js এবং Node Package Manager ( npm ) ব্যবহার করে।

প্রয়োজনীয় সফটওয়্যার ইনস্টল করতে:

  • Python, Node.js এবং Node.js প্যাকেজ ম্যানেজার ( npm ) এর জন্য ভার্চুয়াল এনভায়রনমেন্ট ( venv ) প্যাকেজ Python 3 ইনস্টল করুন:

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

প্রকল্পটি ক্লোন করুন

আপনার ডেভেলপমেন্ট কম্পিউটারে প্রজেক্ট কোডটি ডাউনলোড করুন। প্রজেক্ট সোর্স কোডটি পুনরুদ্ধার করতে আপনার গিট সোর্স কন্ট্রোল সফটওয়্যারের প্রয়োজন।

প্রকল্প কোড ডাউনলোড করতে:

  1. নিম্নলিখিত কমান্ড ব্যবহার করে গিট রিপোজিটরি ক্লোন করুন:

    git clone https://github.com/google-gemini/gemma-cookbook.git
    
  2. ঐচ্ছিক: স্পার্স চেকআউট ব্যবহার করার জন্য আপনার স্থানীয় গিট রিপোজিটরি কনফিগার করুন, যাতে আপনার কাছে প্রকল্পের জন্য শুধুমাত্র ফাইল থাকে:

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

জেমা ওয়েব সার্ভিস প্রকল্প

এই প্রকল্পের ওয়েব পরিষেবা অংশ ( gemma-web-service ) জেনারেশন অনুরোধ এবং প্রতিক্রিয়া পরিচালনা করার জন্য একটি মৌলিক ওয়েব পরিষেবা দিয়ে মোড়ানো Gemma 2 2B এর একটি স্বাধীনভাবে হোস্ট করা উদাহরণ তৈরি করে। এই টিউটোরিয়ালে পরে আলোচনা করা VS কোড এক্সটেনশনটি কোড সহায়তা অনুরোধ পরিচালনা করার জন্য এই পরিষেবার সাথে সংযোগ স্থাপন করে।

এই নির্দেশাবলী আপনাকে এই প্রকল্পটি ডেভেলপমেন্ট এবং পরীক্ষার জন্য প্রস্তুত করার ক্ষেত্রে সাহায্য করবে। সাধারণ সেটআপ ধাপগুলির মধ্যে রয়েছে পূর্বশর্ত সফ্টওয়্যার ইনস্টল করা, কোড রিপোজিটরি থেকে প্রকল্পটি ক্লোন করা, কয়েকটি পরিবেশ ভেরিয়েবল সেট করা, পাইথন লাইব্রেরি ইনস্টল করা এবং ওয়েব পরিষেবা পরীক্ষা করা।

হার্ডওয়্যারের প্রয়োজনীয়তা

গ্রাফিক্স প্রসেসিং ইউনিট (GPU) অথবা টেনসর প্রসেসিং ইউনিট (TPU) এবং মডেলটি ধরে রাখার জন্য পর্যাপ্ত GPU বা TPU মেমোরি সহ কম্পিউটারে Gemma ওয়েব সার্ভিস প্রজেক্টটি চালান। এই ওয়েব সার্ভিস প্রজেক্টে Gemma 2 2B কনফিগারেশনটি চালানোর জন্য, আপনার প্রায় 16GB GPU মেমোরি, প্রায় একই পরিমাণ নিয়মিত RAM এবং কমপক্ষে 20GB ডিস্ক স্পেস প্রয়োজন।

যদি আপনি একটি Google Cloud VM ইনস্ট্যান্সে Gemma ওয়েব পরিষেবা প্রকল্প স্থাপন করেন, তাহলে এই প্রয়োজনীয়তাগুলি অনুসরণ করে ইনস্ট্যান্সটি কনফিগার করুন:

  • GPU হার্ডওয়্যার : এই প্রকল্পটি চালানোর জন্য একটি NVIDIA T4 প্রয়োজন (NVIDIA L4 বা উচ্চতর সুপারিশকৃত)
  • অপারেটিং সিস্টেম : লিনাক্সে ডিপ লার্নিং বিকল্পটি বেছে নিন, বিশেষ করে CUDA 12.3 M124 সহ ডিপ লার্নিং VM যাতে আগে থেকে ইনস্টল করা GPU সফ্টওয়্যার ড্রাইভার থাকে।
  • বুট ডিস্কের আকার : আপনার ডেটা, মডেল এবং সহায়ক সফ্টওয়্যারের জন্য কমপক্ষে ২০ গিগাবাইট ডিস্ক স্পেসের ব্যবস্থা করুন।

প্রকল্প কনফিগার করুন

এই প্রকল্পটি প্যাকেজ পরিচালনা এবং ওয়েব পরিষেবা চালানোর জন্য Python 3 এবং ভার্চুয়াল পরিবেশ ( venv ) ব্যবহার করে। Python প্যাকেজ এবং নির্ভরতা পরিচালনা করার জন্য venv Python ভার্চুয়াল পরিবেশ সক্রিয় করে Python লাইব্রেরিগুলি ইনস্টল করুন। setup_python স্ক্রিপ্ট বা pip ইনস্টলার দিয়ে Python লাইব্রেরি ইনস্টল করার আগে Python ভার্চুয়াল পরিবেশ সক্রিয় করুন। Python ভার্চুয়াল পরিবেশ ব্যবহার সম্পর্কে আরও তথ্যের জন্য, Python venv ডকুমেন্টেশন দেখুন।

পাইথন লাইব্রেরি ইনস্টল করতে:

  1. একটি টার্মিনাল উইন্ডোতে, gemma-web-service ডিরেক্টরিতে নেভিগেট করুন:

    cd Demos/personal-code-assistant/gemma-web-service/
    
  2. এই প্রকল্পের জন্য একটি পাইথন ভার্চুয়াল পরিবেশ (venv) কনফিগার এবং সক্রিয় করুন:

    python3 -m venv venv
    source venv/bin/activate
    
  3. setup_python স্ক্রিপ্ট ব্যবহার করে এই প্রকল্পের জন্য প্রয়োজনীয় পাইথন লাইব্রেরিগুলি ইনস্টল করুন:

    ./setup_python.sh
    

পরিবেশের ভেরিয়েবল সেট করুন

এই প্রকল্পটি চালানোর জন্য কয়েকটি পরিবেশগত ভেরিয়েবলের প্রয়োজন, যার মধ্যে একটি Kaggle ব্যবহারকারীর নাম এবং একটি Kaggle API টোকেন অন্তর্ভুক্ত। আপনার একটি Kaggle অ্যাকাউন্ট থাকতে হবে এবং Gemma মডেলগুলি ডাউনলোড করতে সক্ষম হওয়ার জন্য অ্যাক্সেসের অনুরোধ করতে হবে। এই প্রকল্পের জন্য, আপনাকে একটি .env ফাইলে আপনার Kaggle ব্যবহারকারীর নাম এবং Kaggle API টোকেন যুক্ত করতে হবে, যা ওয়েব পরিষেবা প্রোগ্রাম দ্বারা মডেলটি ডাউনলোড করার জন্য ব্যবহৃত হয়।

পরিবেশ ভেরিয়েবল সেট করতে:

  1. Kaggle ডকুমেন্টেশনের নির্দেশাবলী অনুসরণ করে আপনার Kaggle ব্যবহারকারীর নাম এবং আপনার API টোকেন পান।
  2. জেমা সেটআপ পৃষ্ঠায় জেমাতে অ্যাক্সেস পান নির্দেশাবলী অনুসরণ করে জেমা মডেলে অ্যাক্সেস পান।
  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. ওয়েব পরিষেবা শুরু করার পরে, প্রোগ্রাম কোডটি একটি URL তালিকাভুক্ত করে যেখানে আপনি পরিষেবাটি অ্যাক্সেস করতে পারবেন। সাধারণত, এই ঠিকানাটি হল:

    http://localhost:8000/
    
  4. test_post স্ক্রিপ্টটি চালিয়ে পরিষেবাটি পরীক্ষা করুন:

    ./test/test_post.sh
    

এই স্ক্রিপ্টটি ব্যবহার করে পরিষেবাটি সফলভাবে চালানো এবং পরীক্ষা করার পর, এই টিউটোরিয়ালের পরবর্তী অংশে VS কোড এক্সটেনশনের মাধ্যমে সংযোগ করার জন্য আপনার প্রস্তুত থাকা উচিত।

ভিএস কোড এক্সটেনশন প্রকল্প

এই প্রকল্পের VS কোড এক্সটেনশন ( pipet-code-agent-2 ) মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও কোড অ্যাপ্লিকেশনের একটি সফ্টওয়্যার এক্সটেনশন তৈরি করে যা নতুন AI কোডিং কমান্ড যোগ করার জন্য ডিজাইন করা হয়েছে। এই এক্সটেনশনটি এই টিউটোরিয়ালে পূর্বে বর্ণিত Gemma ওয়েব পরিষেবার সাথে যোগাযোগ করে। এক্সটেনশনটি JSON-ফরম্যাট বার্তা ব্যবহার করে http এর মাধ্যমে ওয়েব পরিষেবার সাথে যোগাযোগ করে।

প্রকল্প কনফিগার করুন

এই নির্দেশাবলী আপনাকে Pipet Code Agent v2 প্রকল্পটি ডেভেলপমেন্ট এবং পরীক্ষার জন্য সেট আপ করার ক্ষেত্রে সাহায্য করবে। সাধারণ পদক্ষেপগুলি হল প্রয়োজনীয় সফ্টওয়্যার ইনস্টল করা, কনফিগারেশন ইনস্টলেশন চালানো, একটি এক্সটেনশন সেটিং কনফিগার করা এবং এক্সটেনশনটি পরীক্ষা করা।

প্রয়োজনীয় সফ্টওয়্যার ইনস্টল করুন

পাইপেট কোড এজেন্ট প্রকল্পটি মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও কোডের একটি এক্সটেনশন হিসেবে কাজ করে এবং প্যাকেজ পরিচালনা এবং অ্যাপ্লিকেশন চালানোর জন্য Node.js এবং Node Package Manager ( npm ) টুল ব্যবহার করে।

প্রয়োজনীয় সফটওয়্যার ইনস্টল করতে:

  1. আপনার প্ল্যাটফর্মের জন্য ভিজ্যুয়াল স্টুডিও কোড ডাউনলোড এবং ইনস্টল করুন।
  2. আপনার প্ল্যাটফর্মের ইনস্টলেশন নির্দেশাবলী অনুসরণ করে নিশ্চিত করুন যে Node.js ইনস্টল করা আছে।

প্রকল্প লাইব্রেরি কনফিগার করুন

প্রয়োজনীয় নির্ভরতা ডাউনলোড করতে এবং প্রকল্পটি কনফিগার করতে npm কমান্ড লাইন টুলটি ব্যবহার করুন।

প্রকল্প কোড কনফিগার করতে:

  1. পাইপেট কোড এজেন্ট প্রজেক্ট রুট ডিরেক্টরিতে নেভিগেট করুন।

    cd Demos/personal-code-assistant/pipet-code-agent-2/
    
  2. নির্ভরতা ডাউনলোড করতে এবং প্রকল্পটি কনফিগার করতে ইনস্টল কমান্ডটি চালান:

    npm install
    

এক্সটেনশনটি কনফিগার করুন

এখন আপনার ডিভাইসে VS Code-এ ডেভেলপমেন্ট এক্সটেনশন হিসেবে Pipet Code Agent চালানোর মাধ্যমে আপনার ইনস্টলেশন পরীক্ষা করতে পারবেন। এই পরীক্ষাটি একটি পৃথক VS Code Extension Development Host উইন্ডো খুলবে যেখানে নতুন এক্সটেনশনটি উপলব্ধ থাকবে। এই নতুন উইন্ডোতে, আপনি আপনার ব্যক্তিগত Gemma ওয়েব পরিষেবা অ্যাক্সেস করার জন্য এক্সটেনশনের সেটিংস কনফিগার করবেন।

এক্সটেনশন ডেভেলপমেন্ট হোস্ট উইন্ডোতে চলমান পাইপেট কোড এজেন্ট চিত্র ২। পাইপেট এক্সটেনশন সেটিংস সহ ভিএস কোড এক্সটেনশন ডেভেলপমেন্ট হোস্ট উইন্ডো।

আপনার সেটআপ কনফিগার এবং পরীক্ষা করতে:

  1. ভিএস কোড অ্যাপ্লিকেশনটি শুরু করুন।
  2. VS কোডে, File > New Window নির্বাচন করে একটি নতুন উইন্ডো তৈরি করুন।
  3. ফাইল > ফোল্ডার খুলুন নির্বাচন করে এবং personal-code-assistant/pipet-code-agent-2/ ফোল্ডারটি নির্বাচন করে Pipet Code Agent প্রকল্পটি খুলুন।
  4. pipet-code-agent-2/src/extension.ts ফাইলটি খুলুন।
  5. Run > Start Debugging নির্বাচন করে ডিবাগ মোডে এক্সটেনশনটি চালান এবং প্রয়োজনে VS Code Extension Development Host বিকল্পটি নির্বাচন করুন। এই ধাপটি একটি পৃথক এক্সটেনশন ডেভেলপমেন্ট হোস্ট উইন্ডো খুলবে।
  6. নতুন VS কোড উইন্ডোতে, Code > Settings > Settings নির্বাচন করে VS কোড সেটিংস খুলুন।
  7. আপনার জেমা ওয়েব সার্ভিস সার্ভারের হোস্ট অ্যাড্রেসকে কনফিগারেশন সেটিং হিসেবে সেট করুন। সার্চ সেটিংস ফিল্ডে, Gemma টাইপ করুন, ইউজার ট্যাব নির্বাচন করুন এবং জেমা > সার্ভিস: হোস্ট সেটিংয়ে, Edit in 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 কোড এক্সটেনশন ডেভেলপমেন্ট হোস্ট উইন্ডোতে, এডিটর উইন্ডোতে যেকোনো কোড নির্বাচন করুন।
  2. View > Command Palette নির্বাচন করে কমান্ড প্যালেটটি খুলুন।
  3. কমান্ড প্যালেটে, Pipet টাইপ করুন এবং সেই উপসর্গ সহ একটি কমান্ড নির্বাচন করুন।

বিদ্যমান কমান্ডগুলি পরিবর্তন করুন

পিপেট কোড এজেন্টে প্রদত্ত কমান্ডগুলি পরিবর্তন করা হল এক্সটেনশনের আচরণ এবং ক্ষমতা পরিবর্তন করার সবচেয়ে সহজ উপায়। এই প্রম্পট প্রসঙ্গ তথ্য জেমা জেনারেটিভ মডেলকে প্রতিক্রিয়া তৈরিতে নির্দেশনা দেয়। বিদ্যমান পিপেট কমান্ডগুলিতে প্রম্পট নির্দেশাবলী পরিবর্তন করে, আপনি প্রতিটি কমান্ডের আচরণ পরিবর্তন করতে পারেন।

এই নির্দেশাবলীর সেটটি ব্যাখ্যা করে যে কীভাবে review.ts কমান্ডের প্রম্পট টেক্সট পরিবর্তন করে পরিবর্তন করতে হয়।

review.ts কমান্ড সম্পাদনা করার জন্য প্রস্তুত হতে:

  1. ভিএস কোড অ্যাপ্লিকেশনটি শুরু করুন।
  2. VS কোডে, File > New Window নির্বাচন করে একটি নতুন উইন্ডো তৈরি করুন।
  3. ফাইল > ফোল্ডার খুলুন নির্বাচন করে এবং 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 কোড পাইপেট এক্সটেনশন প্রজেক্ট উইন্ডোতে, src/extension.ts ফাইলটি খুলুন।
  2. টার্মিনাল > রান বিল্ড টাস্ক... এবং তারপর npm: কম্পাইল বিকল্পটি নির্বাচন করে আপডেট করা কোডটি তৈরি করুন।
  3. Run > Restart Debugging নির্বাচন করে ডিবাগারটি পুনরায় চালু করুন।
  4. VS কোড এক্সটেনশন ডেভেলপমেন্ট হোস্ট উইন্ডোতে, এডিটর উইন্ডোতে যেকোনো কোড নির্বাচন করুন।
  5. View > Command Palette নির্বাচন করে কমান্ড প্যালেটটি খুলুন।
  6. কমান্ড প্যালেটে, Pipet টাইপ করুন এবং Pipet: নির্বাচিত কোড কমান্ডটি পর্যালোচনা করুন নির্বাচন করুন।

নতুন কমান্ড তৈরি করুন

জেমা মডেলের সাথে সম্পূর্ণ নতুন কাজ সম্পাদনকারী নতুন কমান্ড তৈরি করে আপনি পাইপেটকে প্রসারিত করতে পারেন। প্রতিটি কমান্ড ফাইল, যেমন comment.ts বা review.ts , বেশিরভাগই স্বয়ংসম্পূর্ণ, এবং সক্রিয় সম্পাদক থেকে পাঠ্য সংগ্রহ, একটি প্রম্পট রচনা, জেমা ওয়েব পরিষেবার সাথে সংযোগ, একটি প্রম্পট পাঠানো এবং প্রতিক্রিয়া পরিচালনা করার জন্য কোড অন্তর্ভুক্ত করে।

এই নির্দেশাবলীর সেটটি ব্যাখ্যা করে যে কীভাবে একটি বিদ্যমান কমান্ড, question.ts , এর কোডটি একটি টেমপ্লেট হিসাবে ব্যবহার করে একটি নতুন কমান্ড তৈরি করতে হয়।

ফাংশনের নাম সুপারিশ করে এমন একটি কমান্ড তৈরি করতে:

  1. src/ ডিরেক্টরিতে new-service.ts নামক pipet-code-agent-2/src/question.ts ফাইলের একটি কপি তৈরি করুন।
  2. VS কোডে, 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 কোডকে নতুন কমান্ডটি চালু করতে সক্ষম করুন।

এক্সটেনশন কোডের সাথে new-service কমান্ড সংহত করতে:

  1. VS কোডে, 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 কোডে, pipet-code-agent/package.json ফাইলটি খুলুন।
  2. প্যাকেজ ফাইলের commands বিভাগে নতুন কমান্ডটি যোগ করুন।

    "contributes": {
      "commands": [
        ...
        {
          "command": "pipet-code-agent.newService",
          "title": "Pipet: Generate a FastAPI service."
        }
      ],
    
  3. পরিবর্তনগুলি package.json ফাইলে সংরক্ষণ করুন।

নতুন কমান্ডটি পরীক্ষা করুন

কমান্ডটি কোডিং করা এবং এক্সটেনশনের সাথে ইন্টিগ্রেট করার পরে, আপনি এটি পরীক্ষা করতে পারেন। আপনার নতুন কমান্ডটি শুধুমাত্র VS কোড এক্সটেনশন ডেভেলপমেন্ট হোস্ট উইন্ডোতে উপলব্ধ, এবং VS কোড উইন্ডোতে নয় যেখানে আপনি এক্সটেনশনের জন্য কোড সম্পাদনা করেছেন।

পরিবর্তিত কমান্ডটি পরীক্ষা করতে:

  1. আপনার VS কোড পাইপেট এক্সটেনশন প্রজেক্ট উইন্ডোতে, src/extension.ts ফাইলটি খুলুন।
  2. টার্মিনাল > রান বিল্ড টাস্ক... এবং তারপর npm: কম্পাইল বিকল্পটি নির্বাচন করে আপডেট করা কোডটি তৈরি করুন।
  3. আপনার VS কোড পাইপেট এক্সটেনশন প্রজেক্ট উইন্ডোতে, Run > Restart Debugging নির্বাচন করে ডিবাগারটি পুনরায় চালু করুন, যা একটি পৃথক এক্সটেনশন ডেভেলপমেন্ট হোস্ট উইন্ডো পুনরায় চালু করে।
  4. VS কোড এক্সটেনশন ডেভেলপমেন্ট হোস্ট উইন্ডোতে, এডিটর উইন্ডোতে কিছু কোড নির্বাচন করুন।
  5. View > Command Palette নির্বাচন করে কমান্ড প্যালেটটি খুলুন।
  6. কমান্ড প্যালেটে, Pipet টাইপ করুন এবং Pipet: Generate a FastAPI service কমান্ডটি নির্বাচন করুন।

আপনি এখন একটি VS কোড এক্সটেনশন কমান্ড তৈরি করেছেন যা একটি Gemma AI মডেলের সাথে কাজ করে! আপনার জন্য কাজ করে এমন একটি AI-সহায়তাপ্রাপ্ত কোড ডেভেলপমেন্ট ওয়ার্কফ্লো তৈরি করতে বিভিন্ন কমান্ড এবং নির্দেশাবলী নিয়ে পরীক্ষা-নিরীক্ষা করার চেষ্টা করুন!

এক্সটেনশনটি প্যাকেজ এবং ইনস্টল করুন

আপনার VS কোড ইনস্ট্যান্সে স্থানীয় ইনস্টলেশনের জন্য আপনি আপনার এক্সটেনশনটিকে .vsix ফাইল হিসেবে প্যাকেজ করতে পারেন। আপনার এক্সটেনশন প্রজেক্ট থেকে একটি .vsix প্যাকেজ ফাইল তৈরি করতে vsce কমান্ড লাইন টুল ব্যবহার করুন, যা আপনি আপনার VS কোড ইনস্ট্যান্সে ইনস্টল করতে পারেন। আপনার এক্সটেনশন প্যাকেজিং সম্পর্কে বিস্তারিত জানার জন্য, VS কোড পাবলিশিং এক্সটেনশন ডকুমেন্টেশন দেখুন। যখন আপনি আপনার এক্সটেনশনটিকে VSIX ফাইল হিসেবে প্যাকেজিং সম্পন্ন করবেন, তখন আপনি এটিকে VS কোডে ম্যানুয়ালি ইনস্টল করতে পারবেন।

VSIX প্যাকেজড এক্সটেনশন ইনস্টল করতে:

  1. আপনার VS কোড ইনস্ট্যান্সে, File > Extensions নির্বাচন করে Extensions প্যানেলটি খুলুন।
  2. এক্সটেনশন প্যানেলে, উপরের ডানদিকে তিনটি ডট মেনু নির্বাচন করুন এবং তারপর VSIX থেকে ইনস্টল করুন
  3. আপনার এক্সটেনশন প্রজেক্ট থেকে তৈরি .vsix প্যাকেজ ফাইলটি ইনস্টল করার জন্য খুলুন।

অতিরিক্ত সম্পদ

এই প্রকল্পের কোড সম্পর্কে আরও বিস্তারিত জানতে, জেমা কুকবুক কোড রিপোজিটরি দেখুন। যদি আপনার অ্যাপ্লিকেশন তৈরিতে সাহায্যের প্রয়োজন হয় অথবা অন্যান্য ডেভেলপারদের সাথে সহযোগিতা করতে চান, তাহলে গুগল ডেভেলপারস কমিউনিটি ডিসকর্ড সার্ভারটি দেখুন। গুগল এআই প্রকল্পের সাথে আরও বিল্ডের জন্য, ভিডিও প্লেলিস্টটি দেখুন।