Condividi

14 novembre 2024

Miglioramento degli strumenti per sviluppatori basati sull'AI con l'API Gemini

Scott Werner

CEO di Sublayer

Paige Bailey

AI Developer Experience Engineer

Vishal Dharmadhikari

Product Solutions Engineer

Immagine hero della vetrina dei livelli secondari

La democratizzazione dell'AI nell'ultimo anno ha aperto due grandi opportunità per gli sviluppatori: integrare facilmente l'AI all'avanguardia nei loro progetti e introdurre efficienze basate sull'AI nel loro processo di sviluppo.

Sublayer, un framework di agenti AI basato su Ruby, dimostra la potenza e l'efficienza dell'API Gemini integrando i nostri modelli 1.5 nella loro offerta principale per sviluppatori e nei loro flussi di lavoro degli strumenti.

Mantenere aggiornata la documentazione di Sublayer con Gemini

Una delle opportunità offerte dall'AI agli sviluppatori è quella di consentire ai team, soprattutto all'interno di piccole startup in fase iniziale, di fare di più con meno risorse. Per molti, potrebbe trattarsi di qualcosa di semplice ma fondamentale come la documentazione. Nei propri workflow, Sublayer affronta questo problema integrando la propria libreria con Gemini 1.5 Pro e creando automazioni AI per supportare il lavoro di aggiornamento della documentazione e identificazione delle aree di miglioramento.

"Tutto è nato perché l'enorme finestra contestuale di Gemini ti dà davvero la possibilità di provare nuove idee senza impantanarti subito in implementazioni complesse e ottimizzate".

"— afferma Scott Werner, CEO di Sublayer, che di recente ha scritto di questo concetto in Waste Inferences!

La procedura funziona nel seguente modo:

  1. Ogni volta che una richiesta pull viene unita al repository principale di Sublayer, viene attivato un agente che inizia ad aggiornare la documentazione.

  2. L'agente genera un prompt che contiene l'intero contenuto della libreria, l'intero contenuto della documentazione e tutti i contenuti pertinenti della richiesta di pull, insieme alle istruzioni che spiegano l'attività, e lo invia a Gemini.

  3. Gemini risponde quindi con output strutturati contenenti i percorsi, i nomi e i contenuti dei file che la libreria Sublayer converte in un oggetto da utilizzare.

  4. Infine, l'agente prende le informazioni strutturate che ha ricevuto e le utilizza per creare un nuovo ramo, apportare le modifiche richieste ai file e inviare una nuova richiesta pull.

            
              
# 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  
          
            
          

Visualizza il codice completo del flusso di lavoro negli esempi open source di Sublayer

Dopo il successo di questo primo progetto, il team ha ampliato ulteriormente il proprio lavoro agli agenti che monitorano repository di risorse separati per concentrarsi sul mantenimento aggiornato di una pagina specifica del catalogo della documentazione. Esiste anche un'attività simile che viene eseguita durante la notte, in cui Gemini analizza la documentazione attuale, identifica alcune aree di miglioramento, le classifica in base all'impatto e genera una singola richiesta pull che il team di Sublayer può esaminare ogni mattina.

Portare l'AI nella community di sviluppatori Ruby con i modelli Gemini

Oltre a rendere più efficienti la propria infrastruttura e i propri strumenti per sviluppatori, Sublayer supporta anche i modelli Gemini all'interno della funzionalità principale del prodotto.

La missione di Sublayer è consentire a singoli sviluppatori e piccoli team di affrontare progetti ambiziosi che in precedenza erano fuori portata a causa di costi o complessità. Si concentrano sull'automazione di attività noiose, dispendiose in termini di tempo e ripetitive, il caso d'uso perfetto per l'AI. Queste possono variare dalle migrazioni di codice su larga scala, in cui operazioni simili devono essere ripetute migliaia di volte, alle efficienze quotidiane ottenute automatizzando piccole attività in una lista di controllo che consumano tempo ed energia.

Una delle sfide principali per Sublayer è supportare la community di sviluppatori Ruby, che è stata relativamente svantaggiata nell'ecosistema dell'AI. L'integrazione di Gemini ha consentito loro di soddisfare la crescente domanda di supporto di Gemini all'interno dei loro strumenti. L'implementazione di Gemini di Sublayer è molto efficiente e richiede solo circa 60 righe di codice grazie al suo livello di astrazione. Utilizzano output strutturati, interagendo con i modelli in un processo iterativo a un solo turno. Questo approccio semplifica lo sviluppo e il debug, aiutando gli sviluppatori a creare applicazioni robuste.

"Quando crei app basate su LLM, suddividi il problema nei componenti più piccoli possibili", consiglia Werner. "Devi progettare i tuoi programmi in modo che gestiscano in modo efficace qualsiasi output del modello, il che potrebbe anche significare aggiungere intenzionalmente passaggi per consentire a una persona di rivedere e modificare prima di procedere."

LLM, un elemento fondamentale del puzzle dell'infrastruttura AI

Per Sublayer, gli LLM come Gemini sono elementi essenziali dell'infrastruttura, simili ai database. Il loro framework è progettato per integrare perfettamente le chiamate a Gemini 1.5 Pro e Gemini 1.5 Flash, recuperando dati strutturati che gli sviluppatori possono utilizzare facilmente nelle loro applicazioni. Questo approccio apre un mondo di possibilità, dall'estrazione di approfondimenti da diverse origini dati alla generazione di codice e alla trasformazione di codebase in più linguaggi e librerie. Sublayer utilizza persino i modelli Gemini per consentire agli utenti di generare nuovi componenti funzionali all'interno del framework stesso. Questa caratteristica di "autoassemblaggio" incoraggia la sperimentazione e consente agli utenti di esplorare rapidamente nuove idee.

"Gemini è ottimo per risolvere tutti i problemi che il nostro framework è progettato per semplificare: generazione di codice, scomposizione delle attività, rispetto delle istruzioni e generazione di nuove strutture di dati basate su esempi"

— Scott Werner, Sublayer

Passaggi successivi

In futuro, Sublayer si sta preparando a lanciare Augmentations.ai, una piattaforma che rende disponibili a tutti i team di sviluppo le automazioni che sta creando. La prima release includerà due strumenti basati su Gemini 1.5 Pro: Semantic Linting, che consente ai team di creare regole di revisione del codice basate sull'AI che comprendono il contesto e applicano le best practice in evoluzione, e Weekly Summaries, che trasforma l'attività di sviluppo in più repository e strumenti di gestione del prodotto in approfondimenti azionabili per la leadership.

Prevedono di continuare a utilizzare un mix di Gemini 1.5 Pro per le attività più complesse e Gemini 1.5 Flash per le funzionalità più sensibili alla latenza e rivolte agli utenti, man mano che vengono rilasciati altri strumenti sulla piattaforma Augmentations. Questo lavoro verrà integrato nel framework open source, consentendo alla community Ruby di sfruttare le nuove funzionalità di Gemini man mano che vengono rilasciate, il tutto guidato dall'utilizzo reale da parte del team di Sublayer.

La storia di Sublayer mostra il potenziale trasformativo dell'API Gemini. È la dimostrazione di quanto sia facile per gli sviluppatori integrare Gemini nei loro flussi di lavoro, aprendo un mondo di opportunità per l'innovazione e l'automazione. Per iniziare a creare con i modelli Gemini, leggi la nostra documentazione dell'API.