13 puntos por GN⁺ 2024-04-11 | 1 comentarios | Compartir por WhatsApp
  • 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 /run para 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 /run o 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

 
GN⁺ 2024-04-11
Opiniones en Hacker News

A continuación, un resumen de los comentarios de Hacker News:

  • Al usar herramientas de IA, redactar prompts y revisar los resultados puede consumir mucho tiempo, por lo que podría ser menos eficiente que hacer el trabajo directamente. Al explorar soluciones nuevas, también parece haber limitaciones en cuanto a precisión.
  • Existe un proyecto basado en terminal llamado Plandex, con funciones similares a Aider. Usa una CLI estilo Git y se enfoca en tareas complejas que abarcan múltiples archivos.
  • Se compartió una experiencia usando Claude para diseñar un sitio web responsivo. Pudo mantener bien un contexto largo y manejar correctamente una base de código mixta de HTML/CSS/JS.
  • Se compartió un caso en el que, al usar una herramienta de IA en una aplicación Go, se produjeron errores porque no entendió correctamente reglas como el alcance de las variables. Esto plantea dudas sobre su confiabilidad.
  • Se lamenta la falta de integración con IDEs existentes como JetBrains. También se compartieron experiencias de uso en conjunto con herramientas existentes como GitHub Copilot.
  • Hay interés en los resultados de benchmarking de rendimiento de LLM de Aider. Se observó que el modelo GPT-4 Turbo with Vision rinde peor que modelos anteriores.
  • La calidad de los resultados de las herramientas de IA todavía no es perfecta, por lo que su uso real sigue teniendo limitaciones. Aún persisten errores sutiles.