14 nëntor 2024
Përmirësimi i Mjeteve të Zhvilluesve të Mundësuara nga IA me Gemini API

Demokratizimi i IA-së gjatë vitit të kaluar ka hapur dy mundësi të mëdha për zhvilluesit - duke e bërë tepër të lehtë integrimin e IA-së së përparuar në projektet e tyre dhe duke sjellë efikasitet të drejtuar nga IA-ja në procesin e tyre të zhvillimit.
Sublayer , një strukturë agjentësh IA e bazuar në Ruby, demonstron fuqinë dhe efikasitetin e Gemini API duke integruar modelet tona 1.5 në ofertën e tyre kryesore për zhvilluesit, si dhe brenda rrjedhave të tyre të punës së mjeteve.
Mbajtja e dokumentacionit të nënshtresës të përditësuar me Gemini
Një nga mundësitë me IA 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ë diçka aq e thjeshtë por thelbësore sa dokumentimi. 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ë IA-së 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.
"E gjitha ndodhi sepse dritarja masive e kontekstit të Gemini ju jep vërtet hapësirë për të provuar ide të reja pa u zhytur në zbatime komplekse dhe të optimizuara që në fillim,"
Procesi funksionon kështu:
Sa herë që një PR bashkohet në depon kryesore të Sublayer, kjo shkakton një agjent që të fillojë punën duke përditësuar dokumentacionin.
Agjenti gjeneron një mesazh që përmban të gjithë përmbajtjen e bibliotekës, të gjithë përmbajtjen e dokumentacionit dhe të gjithë përmbajtjen përkatëse të PR së bashku me udhëzimet që shpjegojnë detyrën dhe ia dërgon atë Gemini-t.
Gemini më pas përgjigjet me rezultate të strukturuara që përmbajnë shtigjet e skedarëve, emrat dhe përmbajtjen të cilat biblioteka Sublayer i konverton në një objekt për t'u përdorur.
Së fundmi, 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ë ri.
# 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 burimesh për t'u përqendruar në mbajtjen e një faqeje specifike të katalogut të dokumenteve të tyre të azhurnuar. Ekziston madje një detyrë e ngjashme që funksionon gjatë natës ku Gemini analizon dokumentacionin aktual, identifikon disa fusha përmirësimi, i rendit ato bazuar në ndikim dhe gjeneron një PR të vetëm për ekipin e Sublayer për t'u zgjuar dhe për ta shqyrtuar çdo mëngjes.
Duke sjellë IA-në në komunitetin e zhvilluesve të Ruby me modelet Gemini
Përveçse e bën infrastrukturën e tyre të zhvilluesve dhe mjetet më efikase, Sublayer mbështet gjithashtu modelet Gemini brenda funksionalitetit të tyre kryesor të produktit.
Misioni i Sublayer është të fuqizojë zhvilluesit individualë dhe ekipet e vogla për të përballuar projekte ambicioze që më parë ishin të paarritshme për shkak të kostos ose kompleksitetit. Ata janë të përqendruar në automatizimin e detyrave të lodhshme, që kërkojnë kohë dhe përsëriten - rasti i përsosur i përdorimit për IA-në. Kjo mund të shkojë nga migrimet e kodit në shkallë të gjerë, ku operacione të ngjashme duhet të përsëriten mijëra herë, deri te efikasitetet e përditshme të arritura 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 të Ruby, i cili ka qenë relativisht i pashërbyer në ekosistemin e IA-së. Integrimi i Gemini u lejoi atyre të përmbushnin kërkesën në rritje për mbështetje të Gemini brenda mjeteve të tyre. Implementimi i Gemini nga 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 bashkëvepruar me modelet në një proces përsëritës me një kthesë të vetme. Kjo qasje thjeshton zhvillimin dhe debugging-un, duke i ndihmuar zhvilluesit të ndërtojnë aplikacione të fuqishme.
"Kur ndërtoni aplikacione të bazuara në LLM, ndani problemin në komponentët më të vegjël të mundshëm", këshillon Werner. "Ju duhet t'i dizajnoni programet tuaja për të trajtuar çdo rezultat të modelit në mënyrë efektive, gjë që mund të nënkuptojë edhe shtimin e qëllimshëm të hapave që një person t'i shqyrtojë dhe modifikojë përpara se të vazhdojë më tej."
LLM, një pjesë thelbësore e enigmës së infrastrukturës së IA-së
Për Sublayer, LLM-të si Gemini janë pjesë thelbësore të infrastrukturës, të ngjashme me bazat e të dhënave. Korniza e tyre është projektuar për të integruar pa probleme thirrjet si në Gemini 1.5 Pro ashtu edhe në 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ë kodit nëpër gjuhë dhe biblioteka. Sublayer 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ë "vetë-montimi" inkurajon eksperimentimin dhe u lejon përdoruesve të eksplorojnë ide të reja me shpejtësi.
"Gemini është i shkëlqyer në zgjidhjen e të gjitha problemeve që kuadri ynë është projektuar t'i bëjë të lehta - gjenerimin e kodit, zbërthimin e detyrave, ndjekjen e udhëzimeve dhe gjenerimin e strukturave të reja të të dhënave bazuar në shembuj"
Çfarë vjen 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. Publikimi i tyre fillestar do të përfshijë dy mjete të mundësuara nga Gemini 1.5 Pro: Semantic Linting, i cili u lejon ekipeve të krijojnë rregulla të rishikimit të kodit të mundësuara nga IA që kuptojnë kontekstin dhe zbatojnë praktikat më të mira në zhvillim, dhe Përmbledhjet Javore, të cilat e shndërrojnë aktivitetin e zhvillimit nëpër depo të shumta dhe mjete të menaxhimit të produkteve në njohuri të zbatueshme për lidershipin.
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 dhe më të fokusuar te përdoruesi, ndërsa publikojnë më shumë mjete në platformën Augmentations. Kjo punë do të ndikojë gjithashtu në strukturën e tyre me burim të hapur, duke i mundësuar komunitetit Ruby të përfitojë nga funksionaliteti i ri Gemini sapo të dalë, ndërkohë që mbështetet 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ë të API-t.
Toonsutra
Duke shfrytëzuar aftësitë e përkthimit kontekstual shumëgjuhësh të Gemini 2.0 për t'i bërë komikët dhe webtoon-et të arritshëm për audiencën në Indi në të gjitha gjuhët rajonale.