Marrja e ndihmës për kodin nga modelet e inteligjencës artificiale (IA) mund të jetë shumë e dobishme, por çfarë ndodh nëse jeni të kufizuar në përdorimin e modeleve të IA-së gjeneruese të hostuara nga palë të treta për shkak të lidhjes, kostos ose kufizimeve të sigurisë së të dhënave? Familja e modeleve Gemma të Google është e disponueshme për t'u shkarkuar dhe ekzekutuar në harduerin tuaj, kështu që mund ta mbani gjithçka lokale dhe madje të keni mundësinë ta akordoni modelin që të funksionojë më mirë me bazën tuaj të kodit.
Ekzekutimi i instancës suaj të Gemma ose CodeGemma mund t'ju ofrojë ndihmë në kodim me inteligjencë artificiale me vonesë të ulët, disponueshmëri të lartë, kosto potencialisht më të ulët dhe mundësinë për të mbajtur të gjitha të dhënat tuaja të kodimit në rrjetin tuaj. Ky projekt ju tregon se si të konfiguroni shërbimin tuaj web për të pritur Gemma dhe për ta lidhur atë me një zgjerim të Microsoft Visual Studio Code, për ta bërë përdorimin e modelit më të përshtatshëm gjatë kodimit. Ky projekt përfshin dy nënprojekte: Një projekt për të konfiguruar dhe mbështjellë Gemma në një shërbim web, dhe një projekt të dytë për një zgjerim të VS Code që lidh dhe përdor shërbimin web.
Për një përmbledhje video të këtij projekti dhe si ta zgjeroni atë, duke përfshirë njohuri nga njerëzit që e ndërtuan, shikoni videon Personal AI Code Assistant Build with Google AI. Gjithashtu mund ta rishikoni kodin për këtë projekt në deponë e kodit Gemma Cookbook . Përndryshe, mund të filloni zgjerimin e projektit duke përdorur udhëzimet e mëposhtme.
Përmbledhje
Ky tutorial ju tregon se si të konfiguroni dhe zgjeroni dy projekte: një shërbim web për Gemma dhe një zgjerim VS Code për t'u përdorur në atë shërbim. Shërbimi web përdor Python, Keras, JAX dhe bibliotekat FastAPI për të shërbyer modelin Gemma dhe për të trajtuar kërkesat. Zgjerimi VS Code, i quajtur Pipet, shton komanda në Paletën e Komandave që ju lejojnë të bëni kërkesa në shërbimin web Gemma duke zgjedhur kod, tekst ose komente në një dritare redaktimi kodi, siç tregohet në Figurën 1.

Figura 1. Ndërfaqja e përdoruesit të komandës Project për zgjerimin Pipet në Visual Studio Code
Kodi burimor i plotë për të dy projektet është dhënë në deponë e kodit Gemma Cookbook dhe ju mund t'i zgjeroni të dy projektet për t'iu përshtatur nevojave dhe rrjedhës së punës që preferoni.
Konfigurimi i projektit
Këto udhëzime ju udhëzojnë në përgatitjen e këtij projekti për zhvillim dhe testim. Hapat e përgjithshëm të konfigurimit përfshijnë instalimin e softuerit paraprak, klonimin e projektit nga depoja e kodit, vendosjen e disa variablave të mjedisit, instalimin e bibliotekave Python dhe Node.js dhe testimin e aplikacionit web.
Instaloni softuerin e kërkuar
Ky projekt përdor Python 3, Virtual Environments ( venv ), Node.js dhe Node Package Manager ( npm ) për të menaxhuar paketat dhe për të ekzekutuar të dy projektet.
Për të instaluar softuerin e nevojshëm:
Instaloni Python 3, paketën e mjedisit virtual (
venv) për Python, Node.js dhe menaxherin e paketave Node.js (npm):sudo apt update sudo apt install git pip python3-venv nodejs npm
Klono projektin
Shkarko kodin e projektit në kompjuterin tënd të zhvillimit. Ju nevojitet softueri i kontrollit të burimit git për të rikuperuar kodin burimor të projektit.
Për të shkarkuar kodin e projektit:
Klononi repozitorin git duke përdorur komandën e mëposhtme:
git clone https://github.com/google-gemini/gemma-cookbook.gitOpsionale: Konfiguroni repozitorin tuaj lokal git për të përdorur kontrollin e rrallë, në mënyrë që të keni vetëm skedarët për projektin:
cd gemma-cookbook/ git sparse-checkout set Demos/personal-code-assistant/ git sparse-checkout init --cone
Projekti i shërbimit të internetit Gemma
Pjesa e shërbimit web të këtij projekti ( gemma-web-service ) krijon një instancë të Gemma 2 2B të hostuar në mënyrë të pavarur, të mbështjellë me një shërbim web bazë për të trajtuar kërkesat dhe përgjigjet e gjenerimit. Zgjerimi VS Code , i trajtuar më vonë në këtë tutorial, lidhet me këtë shërbim për të trajtuar kërkesat e ndihmës për kodin.
Këto udhëzime ju udhëzojnë në përgatitjen e këtij projekti për zhvillim dhe testim. Hapat e përgjithshëm të konfigurimit përfshijnë instalimin e softuerit paraprak, klonimin e projektit nga depoja e kodit, vendosjen e disa variablave të mjedisit, instalimin e bibliotekave Python dhe testimin e shërbimit web.
Kërkesat e harduerit
Ekzekutoni projektin e shërbimit web Gemma në një kompjuter me një njësi përpunimi grafik (GPU) ose një njësi përpunimi Tensor (TPU) dhe memorie të mjaftueshme GPU ose TPU për të mbajtur modelin. Për të ekzekutuar konfigurimin Gemma 2 2B në këtë projekt shërbimi web, ju nevojiten rreth 16 GB memorie GPU, afërsisht e njëjta sasi RAM të rregullt dhe një minimum prej 20 GB hapësirë në disk.
Nëse po vendosni projektin e shërbimit web Gemma në një instancë të Google Cloud VM , konfiguroni instancën duke ndjekur këto kërkesa:
- Pajisjet GPU : Kërkohet një NVIDIA T4 për të ekzekutuar këtë projekt (rekomandohet NVIDIA L4 ose më i lartë)
- Sistemi Operativ : Zgjidhni një opsion Deep Learning në Linux , konkretisht Deep Learning VM me CUDA 12.3 M124 me drajverë të parainstaluar të softuerit GPU.
- Madhësia e diskut të nisjes : Siguroni të paktën 20 GB hapësirë në disk për të dhënat, modelin dhe softuerin mbështetës.
Konfiguro projektin
Ky projekt përdor Python 3 dhe Mjedise Virtuale ( venv ) për të menaxhuar paketat dhe për të ekzekutuar shërbimin web. Instaloni bibliotekat Python me mjedisin virtual Python venv të aktivizuar për të menaxhuar paketat dhe varësitë Python. Sigurohuni që ta aktivizoni mjedisin virtual Python përpara se të instaloni bibliotekat Python me skriptin setup_python ose me instaluesin pip . Për më shumë informacion rreth përdorimit të mjediseve virtuale Python, shihni dokumentacionin Python venv .
Për të instaluar bibliotekat Python:
Në një dritare terminali, shkoni te direktoria
gemma-web-service:cd Demos/personal-code-assistant/gemma-web-service/Konfiguroni dhe aktivizoni një mjedis virtual Python (venv) për këtë projekt:
python3 -m venv venv source venv/bin/activateInstaloni libraritë e kërkuara Python për këtë projekt duke përdorur skriptin
setup_python:./setup_python.sh
Vendos variablat e mjedisit
Ky projekt kërkon disa variabla mjedisi për t'u ekzekutuar, duke përfshirë një emër përdoruesi Kaggle dhe një token API të Kaggle. Duhet të keni një llogari Kaggle dhe të kërkoni qasje në modelet Gemma për të qenë në gjendje t'i shkarkoni ato. Për këtë projekt, ju shtoni Emrin e Përdoruesit të Kaggle dhe tokenin API të Kaggle në një skedar .env , i cili përdoret nga programi i shërbimit web për të shkarkuar modelin.
Për të vendosur variablat e mjedisit:
- Merrni emrin e përdoruesit të Kaggle dhe tokenin tuaj API duke ndjekur udhëzimet në dokumentacionin e Kaggle .
- Merrni akses në modelin Gemma duke ndjekur udhëzimet " Merrni akses në Gemma" në faqen e Konfigurimit të Gemma-s .
Krijo një skedar të ndryshueshëm mjedisi për projektin, duke krijuar një skedar teksti
.envnë këtë vendndodhje në klonin tënd të projektit:personal-code-assistant/gemma-web-service/.envPasi të krijoni skedarin tekst
.env, shtoni cilësimet e mëposhtme në të:KAGGLE_USERNAME=<YOUR_KAGGLE_USERNAME_HERE> KAGGLE_KEY=<YOUR_KAGGLE_KEY_HERE>
Ekzekutoni dhe testoni shërbimin në internet
Pasi të keni përfunduar instalimin dhe konfigurimin e projektit, ekzekutoni aplikacionin web për të konfirmuar që e keni konfiguruar saktë. Duhet ta bëni këtë si një kontroll bazë përpara se të modifikoni projektin për përdorimin tuaj.
Për të ekzekutuar dhe testuar projektin:
Në një dritare terminali, shkoni te direktoria
gemma-web-service:cd personal-code-assistant/gemma-web-service/Ekzekutoni aplikacionin duke përdorur skriptin
run_service:./run_service.shPas nisjes së shërbimit në internet, kodi i programit rendit një URL ku mund të hyni në shërbim. Zakonisht, kjo adresë është:
http://localhost:8000/Testoni shërbimin duke ekzekutuar skriptin
test_post:./test/test_post.sh
Kur ta keni ekzekutuar dhe testuar me sukses shërbimin me këtë skript, duhet të jeni gati të lidheni me të me zgjerimin VS Code në seksionin tjetër të këtij tutoriali.
Projekti i zgjerimit të Kodit VS
Zgjerimi VS Code i këtij projekti ( pipet-code-agent-2 ) krijon një zgjerim softuerik të aplikacionit Microsoft Visual Studio Code që është projektuar për të shtuar komanda të reja kodimi IA. Ky zgjerim komunikon me shërbimin web Gemma të përshkruar më parë në këtë tutorial. Zgjerimi komunikon me shërbimet web nëpërmjet http duke përdorur mesazhe në format JSON.
Konfiguro projektin
Këto udhëzime ju udhëzojnë në procesin e konfigurimit të projektit Pipet Code Agent v2 për zhvillim dhe testim. Hapat e përgjithshëm janë instalimi i softuerit të nevojshëm, ekzekutimi i instalimit të konfigurimit, konfigurimi i një konfigurimi të zgjerimit dhe testimi i zgjerimit.
Instaloni softuerin e kërkuar
Projekti Pipet Code Agent funksionon si një zgjerim i Microsoft Visual Studio Code dhe përdor Node.js dhe mjetin Node Package Manager ( npm ) për të menaxhuar paketat dhe për të ekzekutuar aplikacionin.
Për të instaluar softuerin e nevojshëm:
- Shkarkoni dhe instaloni Kodin e Visual Studio për platformën tuaj.
- Sigurohuni që Node.js është instaluar duke ndjekur udhëzimet e instalimit për platformën tuaj.
Konfiguro bibliotekat e projektit
Përdorni mjetin e linjës së komandës npm për të shkarkuar varësitë e kërkuara dhe për të konfiguruar projektin.
Për të konfiguruar kodin e projektit:
Shko te direktoria rrënjë e projektit Pipet Code Agent.
cd Demos/personal-code-assistant/pipet-code-agent-2/Ekzekutoni komandën install për të shkarkuar varësitë dhe për të konfiguruar projektin:
npm install
Konfiguro shtesën
Tani duhet të jeni në gjendje ta testoni instalimin tuaj duke ekzekutuar Pipet Code Agent si një zgjerim zhvillimi në VS Code në pajisjen tuaj. Testi hap një dritare të veçantë VS Code Development Host ku zgjerimi i ri është i disponueshëm. Në këtë dritare të re, ju konfiguroni cilësimet për përdorimet e zgjerimit për të hyrë në shërbimin tuaj personal të internetit Gemma.
Figura 2. Dritarja Host e Zhvillimit të Zgjerimit të Kodit VS me Cilësimet e Zgjerimit të Pipetit.
Për të konfiguruar dhe testuar konfigurimin tuaj:
- Hap aplikacionin VS Code.
- Në VS Code, krijoni një dritare të re duke zgjedhur File > New Window .
- Hapni projektin Pipet Code Agent duke zgjedhur Skedar > Hap Dosjen dhe duke zgjedhur dosjen
personal-code-assistant/pipet-code-agent-2/. - Hap skedarin
pipet-code-agent-2/src/extension.ts. - Ekzekutoni shtesën në modalitetin e debugimit duke zgjedhur Ekzekuto > Fillo Debugimin dhe nëse është e nevojshme, zgjidhni opsionin VS Code Extension Development Host . Ky hap hap një dritare të veçantë Extension Development Host .
- Në dritaren e re të Kodit VS, hapni cilësimet e Kodit VS duke zgjedhur Kodi > Cilësimet > Cilësimet .
Caktoni adresën e hostit të serverit tuaj të shërbimit ueb Gemma si një cilësim konfigurimi. Në fushën Cilësimet e Kërkimit , shkruani
Gemma, zgjidhni skedën Përdorues dhe në Gemma > Shërbimi: Cilësimi i hostit , klikoni lidhjen Edit in settings.json dhe shtoni adresën e hostit si p.sh.127.0.0.1,localhostosemy-server.my-local-domain.com:"gemma.service.host": "your-host-address-here"Ruani ndryshimet në skedarin
settings.jsondhe mbyllni skedat e cilësimeve.
Testo shtesën
Tani duhet të jeni në gjendje të testoni instalimin tuaj duke ekzekutuar Pipet Code Agent si një zgjerim zhvillimi në VS Code në pajisjen tuaj. Testi hap një dritare të veçantë të VS Code Extension Development Host ku zgjerimi i ri është i disponueshëm.
Për të testuar komandat e zgjerimit:
- Në dritaren VS Code Extension Development Host , zgjidhni çdo kod në dritaren e redaktuesit.
- Hapni paletën e komandave duke zgjedhur Pamje > Paleta e komandave .
- Në Paletën e Komandave, shkruani
Pipetdhe zgjidhni një nga komandat me atë parashtesë.
Modifiko komandat ekzistuese
Modifikimi i komandave të dhëna në Pipet Code Agent është mënyra më e thjeshtë për të ndryshuar sjelljen dhe aftësitë e zgjerimit. Ky informacion i kontekstit të kërkesës udhëzon modelin gjenerues të Gemma në formimin e një përgjigjeje. Duke ndryshuar udhëzimet e kërkesës në komandat ekzistuese të Pipet, mund të ndryshoni mënyrën se si sillet secila prej komandave.
Ky grup udhëzimesh shpjegon se si të modifikoni komandën review.ts duke ndryshuar tekstin e komandës.
Për t'u përgatitur për të modifikuar komandën review.ts :
- Hap aplikacionin VS Code.
- Në VS Code, krijoni një dritare të re duke zgjedhur File > New Window .
- Hapni projektin Pipet Code Agent duke zgjedhur Skedar > Hap Dosjen dhe duke zgjedhur dosjen
pipet-code-agent/. - Hap skedarin
pipet-code-agent/src/review.ts.
Për të modifikuar sjelljen e komandës review.ts :
Në skedarin
review.ts, ndrysho rreshtin e parafundit të konstantesPROMPT_INSTRUCTIONSpër të shtuarAlso 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: `;Ruani ndryshimet në skedarin
review.ts.
Për të testuar komandën e modifikuar:
- Në dritaren e projektit tuaj të zgjerimit VS Code Pipet, hapni skedarin
src/extension.ts. - Ndërtoni kodin e përditësuar duke zgjedhur Terminal > Run Build Task... dhe pastaj opsionin npm: compile .
- Rinisni debuggerin duke zgjedhur Run > Rinisni Debugging-un .
- Në dritaren VS Code Extension Development Host , zgjidhni çdo kod në dritaren e redaktuesit.
- Hapni paletën e komandave duke zgjedhur Pamje > Paleta e komandave .
- Në Paletën e Komandave, shkruani
Pipetdhe zgjidhni Pipet: Rishikoni komandën e kodit të zgjedhur .
Krijo komanda të reja
Ju mund ta zgjeroni Pipetin duke krijuar komanda të reja që kryejnë detyra krejtësisht të reja me modelin Gemma. Çdo skedar komandash, si p.sh. comment.ts ose review.ts , është kryesisht i pavarur dhe përfshin kod për mbledhjen e tekstit nga redaktori aktiv, hartimin e një mesazhi, lidhjen me shërbimin web Gemma, dërgimin e një mesazhi dhe trajtimin e përgjigjes.
Ky grup udhëzimesh shpjegon se si të ndërtoni një komandë të re duke përdorur kodin e një komande ekzistuese, question.ts , si shabllon.
Për të krijuar një komandë që rekomandon emra për funksione:
- Bëni një kopje të skedarit
pipet-code-agent-2/src/question.tstë quajturnew-service.tsnë direktorinësrc/. - Në VS Code, hapni skedarin
src/new-service.ts. Ndryshoni udhëzimet e kërkesës në skedarin e ri duke redaktuar vlerën
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 `;Shtoni standardin e shërbimit duke krijuar një konstante të re
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) `;Ndryshoni emrin e funksionit të komandës në
newService()dhe përditësoni mesazhin e tij informativ.export async function newService() { vscode.window.showInformationMessage('Building new service from template...'); ...Përditësoni kodin e asamblesë së kërkesës për të përfshirë tekstin e zgjedhur në redaktues dhe
PROMPT_INSTRUCTIONS.// Build the full prompt using the template. const promptText = `${selectedCode}${PROMPT_INSTRUCTIONS}`;Ndrysho kodin e futjes së përgjigjes për të përfshirë përgjigjen dhe kodin standard.
// Insert answer after selection. editor.edit((editBuilder) => { editBuilder.insert(selection.end, "\n\n" + responseText); editBuilder.insert(selection.end, "\n" + BOILERPLATE_CODE); });Ruani ndryshimet në skedarin
new-service.ts.
Integro komandën e re
Pasi të keni përfunduar kodin për komandën e re, duhet ta integroni atë me pjesën tjetër të zgjerimit. Përditësoni skedarët extension.ts dhe package.json për ta bërë komandën e re pjesë të zgjerimit dhe aktivizoni VS Code për të thirrur komandën e re.
Për të integruar komandën new-service me kodin e zgjerimit:
- Në VS Code, hapni skedarin
pipet-code-agent-2/src/extension.ts. Shtoni skedarin e ri të kodit në zgjerim duke shtuar një deklaratë të re importimi.
import { newService } from './new-service';Regjistroni komandën e re duke shtuar kodin e mëposhtëm në funksionin
activate().export function activate(context: vscode.ExtensionContext) { ... vscode.commands.registerCommand('pipet-code-agent.newService', newService); }Ruani ndryshimet në skedarin
extension.ts.
Për të integruar komandën name me paketën e zgjerimit:
- Në VS Code, hapni skedarin
pipet-code-agent/package.json. Shtoni komandën e re në seksionin e
commandstë skedarit të paketës."contributes": { "commands": [ ... { "command": "pipet-code-agent.newService", "title": "Pipet: Generate a FastAPI service." } ],Ruaj ndryshimet në skedarin
package.json.
Testoni komandën e re
Pasi të keni përfunduar kodimin e komandës dhe integrimin e saj me zgjerimin, mund ta testoni atë. Komanda juaj e re është e disponueshme vetëm në dritaren VS Code Extension Development Host , dhe jo në dritaren VS Code ku keni modifikuar kodin për zgjerimin.
Për të testuar komandën e modifikuar:
- Në dritaren e projektit tuaj të zgjerimit VS Code Pipet, hapni skedarin
src/extension.ts. - Ndërtoni kodin e përditësuar duke zgjedhur Terminal > Run Build Task... dhe pastaj opsionin npm: compile .
- Në dritaren e projektit tuaj të zgjerimit VS Code Pipet, rinisni debuggerin duke zgjedhur Run > Restart Debugging , gjë që rinisë një dritare të veçantë të Host-it të Zhvillimit të Zgjerimit .
- Në dritaren VS Code Extension Development Host , zgjidhni pak kod në dritaren e redaktuesit.
- Hapni paletën e komandave duke zgjedhur Pamje > Paleta e komandave .
- Në Paletën e Komandave, shkruani
Pipetdhe zgjidhni komandën Pipet: Gjeneroni një shërbim FastAPI .
Tani ke ndërtuar një komandë zgjerimi VS Code që funksionon me një model Gemma AI! Provo të eksperimentosh me komanda dhe udhëzime të ndryshme për të ndërtuar një rrjedhë pune të zhvillimit të kodit të ndihmuar nga IA që funksionon për ty!
Paketoni dhe instaloni shtesën
Mund ta paketoni shtesën tuaj si një skedar .vsix për instalim lokal në instancën tuaj VS Code. Përdorni mjetin e linjës së komandës vsce për të gjeneruar një skedar pakete .vsix nga projekti juaj i zgjerimit, të cilin më pas mund ta instaloni në instancën tuaj VS Code. Për detaje mbi paketimin e shtesës suaj, shihni dokumentacionin e Zgjerimeve të Publikimit të Kodit VS. Kur të keni përfunduar paketimin e shtesës suaj si një skedar VSIX, mund ta instaloni manualisht atë në VS Code.
Për të instaluar zgjerimin e paketuar VSIX:
- Në instancën tuaj të VS Code, hapni panelin Zgjerime duke zgjedhur Skedar > Zgjerime .
- Në panelin Zgjerime , zgjidhni menunë me tre pika në pjesën e sipërme djathtas dhe pastaj Instalo nga VSIX .
- Hapni skedarin e paketës
.vsixqë keni gjeneruar nga projekti juaj i zgjerimit për ta instaluar atë.
Burime shtesë
Për më shumë detaje mbi kodin për këtë projekt, shihni depozitën e kodit Gemma Cookbook . Nëse ju nevojitet ndihmë për ndërtimin e aplikacionit ose nëse doni të bashkëpunoni me zhvillues të tjerë, shikoni serverin Discord të Komunitetit të Zhvilluesve të Google . Për më shumë projekte Build with Google AI, shikoni listën e videove .