Aider - Programación en pareja con IA desde la terminal
(github.com/paul-gauthier)- Herramienta de línea de comandos que permite programar en pareja con GPT-3.5/GPT-4 y editar código almacenado en un repositorio local de git
- aider edita directamente el código de los archivos fuente locales y hace commit de los cambios en git con mensajes de commit apropiados
- Se puede usar para iniciar proyectos nuevos o trabajar en un repositorio git existente
- Lo distintivo de aider es que permite pedir cambios sobre bases de código grandes ya existentes
Funciones principales
- Puedes iniciar aider desde la línea de comandos junto con el conjunto de archivos fuente que quieres editar y chatear con GPT sobre el código. A través de aider, GPT puede ver y editar el contenido de esos archivos
- GPT puede escribir y editar código en la mayoría de los lenguajes populares, como python, javascript, typescript, php, html y css
- Puedes pedir nuevas funciones, cambios, mejoras o corrección de bugs en el código. También puedes pedir nuevos casos de prueba, documentación actualizada o refactorización del código
- aider aplica directamente a los archivos fuente las modificaciones sugeridas por GPT
- aider hace commit automáticamente de cada conjunto de cambios en el repositorio git local con un mensaje de commit descriptivo. Estos commits automáticos frecuentes sirven como red de seguridad. Puedes deshacer cambios fácilmente o gestionar secuencias más largas de cambios usando un flujo de trabajo estándar de git
- Se pueden usar varios archivos fuente al mismo tiempo con aider, de modo que GPT puede coordinar cambios de código entre todos los archivos dentro de un solo conjunto de cambios/commit
- aider puede darle a GPT-4 un mapa de todo el repositorio git, lo que ayuda a entender y modificar bases de código grandes
- Mientras chateas con aider también puedes editar archivos manualmente usando tu editor. aider detecta esas ediciones fuera de banda y mantiene a GPT actualizado con la versión más reciente de los archivos. Esto permite ir y venir entre el chat de aider y el editor para colaborar con GPT mientras programas
- Si usas gpt-4 directamente a través de openai, puedes agregar archivos de imagen al contexto, y en ese caso cambia automáticamente al modelo gpt-4-vision-preview
Comandos dentro del chat
- aider admite comandos dentro del chat que comienzan con
/. Algunos de los más útiles:/add: agrega archivos coincidentes a la sesión de chat/drop: elimina archivos coincidentes de la sesión de chat/undo: deshace el último commit de git si fue realizado por aider/diff: muestra el diff del último commit hecho por aider/run: ejecuta un comando de shell y opcionalmente agrega la salida al chat/voice: habla con aider para pedir cambios en el código por voz/help: muestra ayuda de todos los comandos
Consejos
- Piensa qué archivos necesitas editar para hacer los cambios y agrégalos al chat. aider tiene cierta capacidad para deducir qué archivos debe editar GPT por su cuenta, pero lo más efectivo es agregar explícitamente al chat los archivos necesarios
- Los cambios grandes se manejan mejor como una secuencia cuidadosa de pasos para planear el enfoque y el diseño general. Guía los cambios como si estuvieras trabajando con un desarrollador junior junto a GPT. Primero pide refactorizaciones de preparación y luego los cambios reales. Vale la pena dedicar tiempo a pedir mejoras de calidad y estructura del código
- Si GPT no está dando respuestas útiles, puedes interrumpirlo con Control-C de forma segura. La respuesta parcial queda en la conversación, así que puedes tomarla como referencia al responderle a GPT con más información o dirección
- Puedes usar el comando
/runpara ejecutar pruebas, linters, etc. y mostrarle la salida a GPT para resolver problemas - Puedes escribir mensajes de chat de varias líneas con Meta-ENTER (en algunos entornos, Esc+ENTER). Otra opción es escribir solo
{en la primera línea para iniciar un mensaje multilínea y solo}en la última línea para terminarlo - Si aparece un error en el código, usa
/runo pega la salida del error en el chat para compartirla con GPT. Así GPT podrá encontrar el bug y corregirlo - GPT conoce muchas herramientas y bibliotecas estándar, pero puede malinterpretar algunos detalles sobre APIs y argumentos de funciones. Puedes resolver esos problemas pegando fragmentos de documentación en el chat
- GPT solo puede ver el contenido de los archivos que hayas "agregado al chat" específicamente. aider también envía a GPT-4 un mapa de todo el repositorio git. Por eso, GPT puede pedir ver archivos adicionales si considera que los necesita para la solicitud.
Opinión de GN⁺
- Parece que usar aider en proyectos grandes permitiría aplicar cambios consistentes con facilidad a lo largo de toda la base de código. Sobre todo, combinado con la capacidad de GPT-4, se ve aún más potente
- Aun así, en lugar de aceptar sin más los cambios sugeridos por GPT, parece necesario que el desarrollador los revise y pruebe directamente. Los modelos GPT todavía no son perfectos, así que sigue habiendo posibilidad de bugs
- Parece buena idea usar aider no solo para código, sino también para documentación y creación de casos de prueba. Aprovechando la capacidad de comprensión de lenguaje natural de GPT, se podría generar más rápido documentación y código de pruebas de mejor calidad
- Al estar basado en CLI, tiene buena accesibilidad, pero si se integrara más de cerca con el entorno de desarrollo mediante plugins de editor y similares, probablemente ayudaría mucho a mejorar la productividad de los desarrolladores
- Su ventaja diferenciadora frente a herramientas similares de programación en pareja con IA como GitHub Copilot parece ser el uso de GPT-4 y un flujo de trabajo basado en git. Sería interesante comparar sus ventajas y desventajas frente a las herramientas existentes
1 comentarios
Opiniones en Hacker News
A continuación, un resumen de los comentarios de Hacker News: