14 novembre 2024
Miglioramento degli strumenti per sviluppatori basati sull'IA con l'API Gemini
La democratizzazione dell'AI nell'ultimo anno ha offerto due grandi opportunità agli sviluppatori: semplificare l'integrazione di AI all'avanguardia nei loro progetti e introdurre efficienze basate sull'AI nel processo di sviluppo.
Sublayer, un framework di agenti IA basato su Ruby, dimostra la potenza ed efficienza dell'API Gemini integrando i nostri modelli 1.5 nell'offerta principale per gli sviluppatori e nei flussi di lavoro degli strumenti.
Mantenere aggiornata la documentazione di Sublayer con Gemini
Una delle opportunità offerte dall'IA per gli sviluppatori è consentire ai team, in particolare alle piccole startup in fase iniziale, di fare di più con meno. Per molti, potrebbe trattarsi di qualcosa di semplice, ma fondamentale, come la documentazione. Nei propri flussi di lavoro, Sublayer risolve il problema integrando la propria libreria con Gemini 1.5 Pro e creando automazioni basate sull'IA per supportare il lavoro di aggiornamento della documentazione e l'identificazione delle aree di miglioramento.
"Tutto è nato perché la grande finestra di contesto di Gemini ti offre davvero la possibilità di provare nuove idee senza rimanere bloccato in implementazioni complesse e ottimizzate in anticipo",
La procedura funziona nel seguente modo:
Ogni volta che una PR viene unita al repository principale di Sublayer, viene attivato un agente che si occupa di aggiornare la documentazione.
L'agente genera un prompt che contiene l'intera raccolta, l'intera documentazione e tutti i contenuti pertinenti della RP, oltre alle istruzioni che spiegano l'attività, e lo invia a Gemini.
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.
Infine, l'agente prende le informazioni strutturate ricevute e le utilizza per creare un nuovo ramo, apportare le modifiche richieste ai file e inviare una nuova PR.
# 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 la sua attività introducendo agenti che monitorano repository di risorse distinti per concentrarsi sul mantenimento aggiornato di una pagina di catalogo specifica dei propri documenti. Esiste anche un'attività simile che viene eseguita durante la notte, in cui Gemini analizza la documentazione corrente, identifica alcune aree di miglioramento, le classifica in base all'impatto e genera una singola PR che il team di Sublayer deve esaminare ogni mattina.
Portare l'IA alla 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à di base 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 del costo o della complessità. Sono incentrate sull'automazione di attività noiose, dispendiose in termini di tempo e ripetitive, il caso d'uso perfetto per l'IA. Possono essere migrazioni di codice su larga scala, in cui operazioni simili devono essere ripetute migliaia di volte, fino a efficienze quotidiane ottenute automatizzando piccole attività in una lista di controllo che richiedono tempo ed energia.
Una delle principali sfide di Sublayer è supportare la community di sviluppatori Ruby, che è stata relativamente poco servita nell'ecosistema dell'IA. L'integrazione di Gemini ha permesso a questo brand di soddisfare la crescente domanda di assistenza Gemini all'interno dei propri strumenti. L'implementazione di Gemini di Sublayer è altamente efficiente e richiede solo circa 60 righe di codice grazie al livello di astrazione. Utilizzano output strutturati e interagiscono con i modelli in un processo iterativo di una sola volta. Questo approccio semplifica lo sviluppo e il debug, aiutando gli sviluppatori a creare applicazioni solide.
"Quando crei app basate su LLM, suddividi il problema nei componenti più piccoli possibili", consiglia Werner. "È consigliabile progettare i programmi in modo che gestiscano in modo efficace l'output di qualsiasi modello, il che potrebbe anche significare aggiungere intenzionalmente dei passaggi che una persona deve esaminare e modificare prima di procedere."
LLM, un elemento fondamentale del puzzle dell'infrastruttura di IA
Per Sublayer, gli LLM come Gemini sono componenti 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 i dati strutturati che gli sviluppatori possono utilizzare facilmente nelle loro applicazioni. Questo approccio apre un mondo di possibilità, dall'estrazione di informazioni da diverse origini dati alla generazione di codice e alla trasformazione delle basi di codice in vari 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, decomposizione delle attività, attuazione delle istruzioni e generazione di nuove strutture di dati in base a esempi"
Passaggi successivi
In futuro, Sublayer si prepara a lanciare Augmentations.ai, una piattaforma che rende disponibili a tutti i team di sviluppo le automazioni che sta creando. La versione iniziale includerà due strumenti basati su Gemini 1.5 Pro: il controllo semantico, che consente ai team di creare regole di revisione del codice basate sull'IA che comprendono il contesto e applicano le best practice in evoluzione, e i riepiloghi settimanali, che trasformano l'attività di sviluppo in più repository e strumenti di gestione dei prodotti in approfondimenti strategici per i responsabili.
Hanno intenzione di continuare a utilizzare una combinazione 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 rilasciano altri strumenti sulla piattaforma Augmentations. Questo lavoro verrà riportato anche nel framework open source, consentendo alla community di Ruby di sfruttare le nuove funzionalità di Gemini man mano che vengono rilasciate, il tutto in base all'utilizzo reale da parte del team di Sublayer.
La storia di Sublayer mostra il potenziale trasformativo dell'API Gemini. È la prova 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.