14 nëntor 2024
Përmirësimi i mjeteve të zhvilluesve të mundësuar nga AI me Gemini API
Demokratizimi i AI gjatë vitit të kaluar ka zhbllokuar dy mundësi të mëdha për zhvilluesit - duke e bërë tepër të lehtë integrimin e inteligjencës artificiale të fundit në projektet e tyre dhe duke sjellë efikasitete të drejtuara nga AI në procesin e tyre të zhvillimit.
Sublayer , një kornizë e agjentëve të AI bazuar në Ruby, demonstron fuqinë dhe efikasitetin e API-së Gemini duke integruar modelet tona 1.5 në ofertën e tyre kryesore të zhvilluesve, si dhe brenda rrjedhave të tyre të punës së veglave.
Mbajtja e përditësuar e dokumentacionit të Nënshtresës me Gemini
Një nga mundësitë me inteligjencën artificiale për zhvilluesit është t'u mundësojë ekipeve, veçanërisht brenda startup-eve të vogla, në fazat e hershme, të bëjnë më shumë me më pak. Për shumë, kjo mund të jetë në diçka aq të thjeshtë por vendimtare sa dokumentacioni. Në rrjedhat e tyre të punës, Sublayer e trajton këtë duke integruar bibliotekën e tyre me Gemini 1.5 Pro dhe duke ndërtuar automatizime të AI për të mbështetur punën e mbajtjes së dokumentacionit të tyre të përditësuar dhe identifikimin e fushave të përmirësimit.
"Gjithçka erdhi sepse dritarja masive e kontekstit të Binjakëve ju jep vërtet hapësirën e frymëmarrjes për të provuar ide të reja pa u zhytur në zbatime komplekse dhe të optimizuara përpara."
Procesi funksionon si ky:
Sa herë që një PR bashkohet në depon kryesore të Nënshtresës, ai nxit një agjent që të fillojë të punojë për përditësimin e dokumentacionit.
Agjenti gjeneron një kërkesë që përmban të gjithë përmbajtjen e bibliotekës, të gjithë përmbajtjen e dokumentacionit dhe të gjitha përmbajtjet përkatëse të PR së bashku me udhëzimet që shpjegojnë detyrën dhe ia dërgon Binjakëve.
Binjakët më pas përgjigjen me dalje të strukturuara që përmbajnë shtigjet e skedarëve, emrat dhe përmbajtjet të cilat biblioteka e Nënshtresës i konverton në një objekt për t'u përdorur.
Së fundi, agjenti merr informacionin e strukturuar që ka marrë dhe e përdor atë për të krijuar një degë të re, për të bërë ndryshimet e kërkuara në skedarë dhe për të paraqitur një PR të re.
# 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
Shihni kodin e plotë të rrjedhës së punës në shembujt me burim të hapur të Sublayer
Pas suksesit të këtij projekti të parë, ata janë zgjeruar më tej në agjentë që monitorojnë depo të veçanta të burimeve për t'u fokusuar në mbajtjen e përditësuar të një faqe katalogu specifik të dokumenteve të tyre. Ekziston edhe një detyrë e ngjashme që funksionon brenda natës, ku Gemini analizon dokumentacionin aktual, identifikon disa fusha përmirësimi, i rendit ato në bazë të ndikimit dhe gjeneron një PR të vetme për ekipin e Sublayer për t'u zgjuar dhe rishikuar çdo mëngjes.
Sjellja e AI në komunitetin e zhvilluesve Ruby me modelet Gemini
Përveç bërjes më efikase të infrastrukturës dhe veglave të veta të zhvilluesve, Sublayer gjithashtu mbështet modelet Gemini brenda funksionalitetit të tyre kryesor të produktit.
Misioni i Sublayer është të fuqizojë zhvilluesit individualë dhe ekipet e vogla për të trajtuar projekte ambicioze që më parë ishin të paarritshme për shkak të kostos ose kompleksitetit. Ata janë të fokusuar në automatizimin e detyrave të lodhshme, që kërkojnë kohë dhe të përsëritura - rasti i përsosur i përdorimit për AI. Kjo mund të variojë nga migrimet e kodeve në shkallë të gjerë, ku operacione të ngjashme duhet të përsëriten mijëra herë, deri te efikasiteti i përditshëm i arritur duke automatizuar detyra të vogla në një listë kontrolli që harxhojnë kohë dhe energji.
Një sfidë kryesore për Sublayer është mbështetja e komunitetit të zhvilluesve Ruby, i cili ka qenë relativisht i pashërbyer në ekosistemin e AI. Integrimi i Binjakëve i lejoi ata të plotësonin kërkesën në rritje për mbështetjen e Binjakëve brenda mjeteve të tyre. Zbatimi i Gemini i Sublayer është shumë efikas, duke kërkuar vetëm rreth 60 rreshta kodi falë shtresës së tyre të abstraksionit. Ata përdorin rezultate të strukturuara, duke ndërvepruar me modelet në një proces përsëritës me një kthesë. Kjo qasje thjeshton zhvillimin dhe korrigjimin, duke ndihmuar zhvilluesit të ndërtojnë aplikacione të fuqishme.
"Kur ndërtoni aplikacione të bazuara në LLM, zbërtheni problemin në komponentët më të vegjël të mundshëm," këshillon Werner. "Ju dëshironi të dizajnoni programet tuaja për të trajtuar në mënyrë efektive çdo produkt të modelit, gjë që mund të nënkuptojë edhe shtimin e qëllimshëm të hapave që një person të rishikojë dhe modifikojë përpara se të vazhdojë."
LLMs, një pjesë thelbësore e enigmës së infrastrukturës së AI
Për Sublayer, LLM si Gemini janë pjesë thelbësore të infrastrukturës, të ngjashme me bazat e të dhënave. Korniza e tyre është krijuar për të integruar pa probleme thirrjet për Gemini 1.5 Pro dhe Gemini 1.5 Flash, duke marrë të dhëna të strukturuara që zhvilluesit mund t'i përdorin lehtësisht në aplikacionet e tyre. Kjo qasje hap një botë mundësish, nga nxjerrja e njohurive nga burime të ndryshme të të dhënave deri te gjenerimi i kodit dhe transformimi i bazave të kodeve nëpër gjuhë dhe biblioteka. Nënshtresa madje përdor modelet Gemini për t'u mundësuar përdoruesve të gjenerojnë komponentë të rinj funksionalë brenda vetë kornizës. Kjo karakteristikë e "vetë-montimit" inkurajon eksperimentimin dhe i lejon përdoruesit të eksplorojnë me shpejtësi idetë e reja.
"Binjakët është i shkëlqyeshëm në zgjidhjen e të gjitha problemeve që korniza jonë është krijuar për t'i bërë të lehta - gjenerimi i kodit, zbërthimi i detyrave, ndjekja e udhëzimeve dhe gjenerimi i strukturave të reja të të dhënave bazuar në shembuj".
Çfarë është më pas
Duke parë përpara, Sublayer po përgatitet të lançojë Augmentations.ai , një platformë që i bën automatizimet që po krijojnë të disponueshme për të gjitha ekipet e zhvillimit. Lëshimi i tyre fillestar do të shfaqë dy mjete të mundësuara nga Gemini 1.5 Pro: Semantic Linting, i cili lejon ekipet të krijojnë rregulla të rishikimit të kodit të fuqizuar nga AI që kuptojnë kontekstin dhe zbatojnë praktikat më të mira në zhvillim, dhe Përmbledhjet javore, të cilat e kthejnë aktivitetin e zhvillimit nëpër depo të shumta dhe menaxhimin e produkteve mjete për njohuri të veprueshme për udhëheqje.
Ata planifikojnë të vazhdojnë të përdorin një përzierje të Gemini 1.5 Pro për detyra më komplekse dhe Gemini 1.5 Flash për funksionalitetin më të ndjeshëm ndaj vonesës, që përballet me përdoruesit, pasi lëshojnë më shumë mjete në platformën Augmentations. Kjo punë do të rikthehet gjithashtu në kuadrin e tyre me burim të hapur, duke i mundësuar komunitetit Ruby të përfitojë nga funksionaliteti i ri i Gemini kur del, ndërkohë që drejtohet nga përdorimi në botën reale nga ekipi i Sublayer.
Historia e Sublayer tregon potencialin transformues të Gemini API. Është një dëshmi se sa lehtë zhvilluesit mund ta integrojnë Gemini në rrjedhat e tyre të punës, duke hapur një botë mundësish për inovacion dhe automatizim. Për të filluar ndërtimin me modelet Gemini, lexoni dokumentacionin tonë API.
Toonsutra
Përdorimi i aftësive kontekstuale të përkthimit shumëgjuhësh të Gemini 2.0 për t'i bërë komike dhe uebtonë të aksesueshme për audiencën në Indi në të gjithë gjuhët rajonale.