Compartir

14 de nov de 2024

Mejora de las herramientas para desarrolladores potenciadas por IA con la API de Gemini

Scott Werner

Director general de Sublayer

Paige Bailey

Ingeniero de experiencia del desarrollador de IA

Vishal Dharmadhikari

Ingeniero de soluciones de productos

Imagen hero de la presentación de subcapas

La democratización de la IA durante el último año desbloqueó dos grandes oportunidades para los desarrolladores: integrar fácilmente la IA de vanguardia en sus proyectos y aportar eficiencias basadas en la IA a su proceso de desarrollo.

Sublayer, un framework de agentes de IA basado en Ruby, demuestra la potencia y la eficiencia de la API de Gemini integrando nuestros modelos 1.5 en su oferta principal para desarrolladores, así como en sus propios flujos de trabajo de herramientas.

Mantener actualizada la documentación de Sublayer con Gemini

Una de las oportunidades que ofrece la IA para los desarrolladores es permitir que los equipos, en especial los de las startups pequeñas en etapa inicial, hagan más con menos. Para muchos, esto podría ser algo tan simple como la documentación, pero igual de crucial. En sus propios flujos de trabajo, Sublayer aborda este problema integrando su biblioteca con Gemini 1.5 Pro y creando automatizaciones basadas en IA para respaldar el trabajo de mantener actualizada su documentación y detectar áreas de mejora.

"Todo surgió porque la enorme ventana de contexto de Gemini realmente te da espacio para probar nuevas ideas sin atascarte en implementaciones complejas y optimizadas desde el principio".

—dice Scott Werner, CEO de Sublayer, quien recientemente escribió sobre este concepto en Waste Inferences!

El proceso funciona de la siguiente manera:

  1. Cada vez que se combina una PR en el repositorio principal de Sublayer, se activa un agente para que comience a trabajar en la actualización de la documentación.

  2. El agente genera una instrucción que contiene todo el contenido de la biblioteca, todo el contenido de la documentación y todo el contenido pertinente de la PR, junto con instrucciones que explican la tarea, y se la envía a Gemini.

  3. Luego, Gemini responde con resultados estructurados que contienen las rutas de acceso, los nombres y el contenido de los archivos, que la biblioteca de Sublayer convierte en un objeto para usar.

  4. Por último, el agente toma la información estructurada que recibió y la usa para crear una nueva rama, realizar los cambios solicitados en los archivos y enviar una nueva 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  
          
            
          

Consulta el código completo del flujo de trabajo en los ejemplos de código abierto de Sublayer.

Después del éxito de este primer proyecto, se expandieron aún más a agentes que supervisan repositorios de recursos separados para enfocarse en mantener actualizada una página específica del catálogo de su documentación. Incluso hay una tarea similar que se ejecuta durante la noche en la que Gemini analiza la documentación actual, identifica algunas áreas de mejora, las clasifica según su impacto y genera una sola PR para que el equipo de Sublayer la revise cada mañana.

Llevamos la IA a la comunidad de desarrolladores de Ruby con los modelos de Gemini

Además de hacer que su propia infraestructura y herramientas para desarrolladores sean más eficientes, Sublayer también admite modelos de Gemini en la funcionalidad principal de su producto.

La misión de Sublayer es permitir que los desarrolladores individuales y los equipos pequeños aborden proyectos ambiciosos que antes estaban fuera de su alcance debido al costo o la complejidad. Se enfocan en automatizar tareas tediosas, repetitivas y que consumen mucho tiempo, el caso de uso perfecto para la IA. Esto puede abarcar desde migraciones de código a gran escala, en las que se deben repetir operaciones similares miles de veces, hasta eficiencias diarias que se logran automatizando pequeñas tareas en una lista de verificación que consumen tiempo y energía.

Un desafío principal para Sublayer es brindar asistencia a la comunidad de desarrolladores de Ruby, que ha sido relativamente desatendida en el ecosistema de IA. La integración de Gemini les permitió satisfacer la creciente demanda de asistencia de Gemini en sus herramientas. La implementación de Gemini de Sublayer es muy eficiente y solo requiere alrededor de 60 líneas de código gracias a su capa de abstracción. Utilizan resultados estructurados y se comunican con los modelos en un proceso iterativo de un solo turno. Este enfoque simplifica el desarrollo y la depuración, lo que ayuda a los desarrolladores a crear aplicaciones sólidas.

"Cuando compiles apps basadas en LLM, divide el problema en los componentes más pequeños posibles", aconseja Werner. "Debes diseñar tus programas para que controlen de manera eficaz cualquier resultado del modelo, lo que incluso puede significar agregar intencionalmente pasos para que una persona revise y edite antes de continuar".

Los LLM, una pieza fundamental del rompecabezas de la infraestructura de IA

Para Sublayer, los LLM como Gemini son piezas esenciales de la infraestructura, similares a las bases de datos. Su framework está diseñado para integrar sin problemas las llamadas a Gemini 1.5 Pro y Gemini 1.5 Flash, y recuperar datos estructurados que los desarrolladores pueden utilizar fácilmente en sus aplicaciones. Este enfoque abre un mundo de posibilidades, desde extraer estadísticas de diversas fuentes de datos hasta generar código y transformar bases de código en diferentes lenguajes y bibliotecas. Sublayer incluso usa los modelos de Gemini para permitir que los usuarios generen nuevos componentes funcionales dentro del framework. Esta característica de "autoensamblaje" fomenta la experimentación y permite que los usuarios exploren ideas novedosas rápidamente.

"Gemini es excelente para resolver todos los problemas que nuestro framework está diseñado para facilitar: generación de código, descomposición de tareas, seguimiento de instrucciones y generación de nuevas estructuras de datos basadas en ejemplos".

— Scott Werner, Sublayer

¿Qué sigue?

De cara al futuro, Sublayer se prepara para lanzar Augmentations.ai, una plataforma que pone las automatizaciones que crean a disposición de todos los equipos de desarrollo. En el lanzamiento inicial, se incluirán dos herramientas potenciadas por Gemini 1.5 Pro: Semantic Linting, que permite a los equipos crear reglas de revisión de código potenciadas por IA que comprenden el contexto y aplican las prácticas recomendadas en evolución, y Weekly Summaries, que convierte la actividad de desarrollo en varios repositorios y herramientas de administración de productos en estadísticas prácticas para el liderazgo.

Planean seguir utilizando una combinación de Gemini 1.5 Pro para tareas más complejas y Gemini 1.5 Flash para la funcionalidad más sensible a la latencia y orientada al usuario a medida que lancen más herramientas en la plataforma de Aumentaciones. Este trabajo también se incorporará a su framework de código abierto, lo que permitirá que la comunidad de Ruby aproveche las nuevas funciones de Gemini a medida que se lancen, mientras que el equipo de Sublayer las impulsa con el uso en el mundo real.

La historia de Sublayer muestra el potencial transformador de la API de Gemini. Esto demuestra lo fácil que es para los desarrolladores integrar Gemini en sus flujos de trabajo, lo que abre un mundo de oportunidades para la innovación y la automatización. Para comenzar a compilar con los modelos de Gemini, lee nuestra documentación de la API.