13 points par GN⁺ 2024-04-11 | 1 commentaires | Partager sur WhatsApp
  • Un outil en ligne de commande qui permet de faire du pair programming avec GPT-3.5/GPT-4 et d’éditer le code stocké dans un dépôt git local
  • aider édite directement le code des fichiers source locaux et commit les modifications dans git avec un message de commit approprié
  • Il est possible de démarrer un nouveau projet ou de travailler dans un dépôt git existant
  • La particularité d’aider est de permettre de demander des modifications sur une grande base de code déjà existante

Fonctionnalités principales

  • Vous pouvez démarrer aider en ligne de commande avec un ensemble de fichiers source à modifier, puis discuter avec GPT à propos du code. Via aider, GPT peut voir et éditer le contenu de ces fichiers
  • GPT peut écrire et éditer du code dans la plupart des langages populaires, comme python, javascript, typescript, php, html et css
  • Vous pouvez demander de nouvelles fonctionnalités, des changements, des améliorations ou des corrections de bugs. Vous pouvez aussi demander de nouveaux cas de test, une documentation mise à jour ou une refactorisation du code
  • aider applique directement aux fichiers source les modifications proposées par GPT
  • aider commit automatiquement chaque ensemble de modifications dans le dépôt git local avec un message de commit descriptif. Ces auto-commits fréquents servent de filet de sécurité. Vous pouvez facilement annuler les changements ou gérer des séquences de modifications plus longues avec un workflow git standard
  • Plusieurs fichiers source peuvent être utilisés avec aider en même temps, ce qui permet à GPT de coordonner des modifications de code sur l’ensemble des fichiers dans un seul ensemble de changements/commit
  • aider peut fournir à GPT-4 une carte de l’ensemble du dépôt git, ce qui l’aide à comprendre et modifier de grandes bases de code
  • Pendant que vous discutez avec aider, vous pouvez aussi éditer manuellement les fichiers avec votre éditeur. aider détecte ces modifications hors bande et maintient GPT à jour avec la version la plus récente des fichiers. Cela permet d’alterner entre le chat avec aider et l’éditeur pour coder en collaboration avec GPT
  • Si vous utilisez directement gpt-4 via openai, vous pouvez ajouter des fichiers image au contexte, ce qui bascule automatiquement vers le modèle gpt-4-vision-preview

Commandes dans le chat

  • aider prend en charge des commandes commençant par / dans le chat. Quelques-unes des plus utiles :
    • /add : ajouter les fichiers correspondants à la session de chat
    • /drop : retirer les fichiers correspondants de la session de chat
    • /undo: annuler le dernier commit git, s’il a été effectué par aider
    • /diff: afficher le diff du dernier commit réalisé par aider
    • /run : exécuter une commande shell et, si souhaité, ajouter la sortie au chat
    • /voice: parler à aider pour demander des modifications du code à la voix
    • /help: afficher l’aide pour toutes les commandes

Conseils

  • Réfléchissez aux fichiers qu’il faut modifier et ajoutez-les au chat. aider est capable, dans une certaine mesure, de déterminer lui-même quels fichiers GPT doit éditer, mais la méthode la plus efficace consiste à ajouter explicitement vous-même les fichiers nécessaires au chat
  • Pour des changements importants, il vaut mieux procéder par une séquence d’étapes réfléchies afin de planifier l’approche et la conception globale. Guidez GPT dans les changements comme vous le feriez avec un développeur junior. Demandez d’abord la refactorisation préparatoire, puis les modifications réelles. Il faut aussi prendre le temps de demander des améliorations de qualité et de structure du code
  • Si GPT ne fournit pas de réponse utile, vous pouvez interrompre en toute sécurité avec Control-C. Les réponses partielles restent dans la conversation et peuvent être référencées lorsque vous répondez à GPT avec plus d’informations ou d’orientation
  • Vous pouvez utiliser la commande /run pour exécuter des tests, des linters, etc., et montrer la sortie à GPT afin de résoudre les problèmes
  • Il est possible de saisir des messages de chat sur plusieurs lignes avec Meta-ENTER (ou, dans certains environnements, Esc+ENTER). Sinon, entrez simplement { sur la première ligne pour commencer un message multiligne, puis } seule sur la dernière ligne pour le terminer
  • Si une erreur survient dans le code, utilisez /run ou collez la sortie de l’erreur dans le chat pour la partager avec GPT. Laissez GPT trouver et corriger le bug
  • GPT connaît de nombreux outils et bibliothèques standards, mais peut parfois mal comprendre certains détails des API et des arguments de fonction. Vous pouvez corriger ce problème en collant des extraits de documentation dans le chat
  • GPT ne peut voir que le contenu des fichiers que vous avez explicitement « ajoutés au chat ». aider envoie aussi à GPT-4 une carte de l’ensemble du dépôt git. GPT peut donc demander à voir des fichiers supplémentaires s’il juge qu’ils sont nécessaires pour répondre à votre demande.

L’avis de GN⁺

  • Sur les grands projets, aider semble permettre d’appliquer facilement des modifications cohérentes à l’échelle de toute la base de code. Combiné aux capacités de GPT-4, cela paraît encore plus puissant
  • Cela dit, plutôt que d’accepter sans réserve les changements proposés par GPT, il semble nécessaire que le développeur les relise et les teste lui-même. Les modèles GPT ne sont pas encore parfaits, donc des bugs peuvent toujours apparaître
  • aider semble aussi utile non seulement pour le code, mais également pour la documentation et la rédaction de cas de test. En tirant parti de la compréhension du langage naturel de GPT, on peut espérer générer plus rapidement de la documentation et du code de test de meilleure qualité
  • L’approche CLI le rend très accessible, mais une intégration plus étroite avec l’environnement de développement, via par exemple des plugins d’éditeur, pourrait beaucoup aider à améliorer la productivité des développeurs
  • Son avantage différenciant face à des outils similaires de pair programming IA comme GitHub Copilot semble être l’usage de GPT-4 et un workflow basé sur git. Une comparaison de ses avantages et limites par rapport aux outils existants serait intéressante

1 commentaires

 
GN⁺ 2024-04-11
Avis de Hacker News

Voici un résumé des commentaires de Hacker News :

  • Lors de l’utilisation d’outils d’IA, la rédaction des prompts et la vérification des résultats peuvent prendre tellement de temps que cela devient moins efficace que de faire le travail soi-même. Pour l’exploration de nouvelles solutions, il semble aussi y avoir des limites en matière de précision.
  • Il existe un projet en terminal appelé Plandex, avec des fonctionnalités similaires à Aider. Il utilise une CLI de style Git et se concentre sur des tâches complexes impliquant plusieurs fichiers.
  • Partage d’une expérience de travail sur le design d’un site web responsive avec Claude. Il conservait bien un contexte long et gérait correctement une base de code mêlant HTML/CSS/JS.
  • Partage d’un cas où l’utilisation d’un outil d’IA dans une application Go a provoqué des erreurs, car il ne comprenait pas correctement des règles comme la portée des variables. Cela soulève des doutes sur sa fiabilité.
  • Certains regrettent le manque d’intégration avec des IDE existants comme JetBrains. Des expériences d’usage conjoint avec des outils existants comme GitHub Copilot ont aussi été partagées.
  • Intérêt pour les résultats de benchmarking des LLM d’Aider. Il en ressort que le modèle GPT-4 Turbo with Vision obtient de moins bonnes performances que les modèles précédents.
  • La qualité des résultats produits par les outils d’IA n’est pas encore parfaite, ce qui limite leur usage réel. Des erreurs subtiles persistent encore.