14 de noviembre de 2024
Mejora las herramientas para desarrolladores impulsadas por IA con la API de Gemini
La democratización de la IA durante el último año abrió dos grandes oportunidades para los desarrolladores: facilita enormemente la integración de IA de vanguardia en sus proyectos y aporta eficiencias impulsadas por 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 y en sus propios flujos de trabajo de herramientas.
Mantén la documentación de la capa secundaria actualizada con Gemini
Una de las oportunidades que ofrece la IA a los desarrolladores es permitir que los equipos, especialmente en 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 crucial. En sus propios flujos de trabajo, Sublayer aborda este problema integrando su biblioteca con Gemini 1.5 Pro y creando automatizaciones de IA para respaldar el trabajo de mantener su documentación actualizada y de identificar áreas de mejora.
“Todo surgió porque la ventana de contexto masiva de Gemini te brinda el espacio necesario para probar nuevas ideas sin enredarte en implementaciones complejas y optimizadas desde el principio”,
El proceso funciona de la siguiente manera:
Cada vez que se combina una PR en el repositorio principal de Sublayer, se activa un agente para que comience a actualizar la documentación.
El agente genera una instrucción que contiene todo el contenido de la biblioteca, de la documentación y de la PR relevante, junto con instrucciones que explican la tarea, y la envía a Gemini.
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.
Por último, el agente toma la información estructurada que recibió y la usa para crear una rama nueva, realizar los cambios solicitados en los archivos y enviar una nueva solicitud de cambios.
# 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 de flujo de trabajo completo en los ejemplos de código abierto de Sublayer.
Después del éxito de este primer proyecto, se expandieron a agentes que supervisan repositorios de recursos independientes para enfocarse en mantener actualizada una página de catálogo específica de sus documentos. 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 en función del impacto y genera una sola PR para que el equipo de Sublayer la revise cada mañana.
Lleva 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 dentro de la funcionalidad principal del producto.
La misión de Sublayer es empoderar a desarrolladores individuales y equipos pequeños para que aborden proyectos ambiciosos que antes estaban fuera de 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 ir 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 tareas pendientes que agotan el tiempo y la energía.
Un desafío principal de Sublayer es brindar asistencia a la comunidad de desarrolladores de Ruby, que ha recibido una atención relativamente baja en el ecosistema de IA. La integración de Gemini les permitió satisfacer la creciente demanda de asistencia para Gemini en sus herramientas. La implementación de Gemini de Sublayer es altamente eficiente y solo requiere alrededor de 60 líneas de código gracias a su capa de abstracción. Usan resultados estructurados que interactúan con modelos en un proceso iterativo de una sola vuelta. Este enfoque simplifica el desarrollo y la depuración, lo que ayuda a los desarrolladores a compilar aplicaciones sólidas.
"Cuando compiles apps basadas en LLM, desglosa el problema en los componentes más pequeños posibles", aconseja Werner. "Quieres diseñar tus programas para que manejen cualquier resultado del modelo de manera eficaz, lo que incluso puede significar agregar pasos intencionalmente para que una persona los revise y edite antes de continuar".
LLM, una pieza clave del rompecabezas de la infraestructura de IA
Para Sublayer, los LLM como Gemini son elementos 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 usar fácilmente en sus aplicaciones. Este enfoque abre un mundo de posibilidades, desde la extracción de estadísticas de diversas fuentes de datos hasta la generación de código y la transformación de bases de código en varios lenguajes y bibliotecas. La capa secundaria 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 a los usuarios explorar ideas novedosas con rapidez.
“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”.
¿Qué sigue?
En el 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. Su lanzamiento inicial incluirá 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 comprendan el contexto y apliquen 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 los líderes.
Planean seguir utilizando una combinación de Gemini 1.5 Pro para las tareas más complejas y Gemini 1.5 Flash para las funciones más sensibles a la latencia y orientadas al usuario a medida que lancen más herramientas en la plataforma de Augmentations. 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 se basará en el uso real.
La historia de Sublayer muestra el potencial transformador de la API de Gemini. Esto demuestra la facilidad con la que los desarrolladores pueden 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 modelos de Gemini, lee nuestra documentación de la API.