13 Punkte von GN⁺ 2024-04-11 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Kommandozeilen-Tool, mit dem man per Pair Programming mit GPT-3.5/GPT-4 Code bearbeiten kann, der in einem lokalen git-Repository gespeichert ist
  • aider bearbeitet den Code in lokalen Quelldateien direkt und committed die Änderungen mit passenden Commit-Messages in git
  • Man kann ein neues Projekt starten oder in einem bestehenden git-Repository arbeiten
  • Das Besondere an aider ist, dass man Änderungen an bereits bestehenden großen Codebasen anfordern kann

Hauptfunktionen

  • Man kann aider in der Kommandozeile zusammen mit einer Menge von Quelldateien starten, die bearbeitet werden sollen, und mit GPT über den Code chatten. Über aider kann GPT den Inhalt dieser Dateien sehen und bearbeiten
  • GPT kann Code in den meisten populären Sprachen schreiben und bearbeiten, darunter python, javascript, typescript, php, html und css
  • Man kann neue Features, Änderungen, Verbesserungen oder Bugfixes für den Code anfordern. Man kann neue Testfälle, aktualisierte Dokumentation oder Refactoring des Codes anfordern
  • aider wendet die von GPT vorgeschlagenen Änderungen direkt auf die Quelldateien an
  • aider committed jeden Änderungssatz automatisch mit einer erklärenden Commit-Message in das lokale git-Repository. Diese häufigen automatischen Commits dienen als Sicherheitsnetz. Man kann Änderungen leicht rückgängig machen oder mit Standard-git-Workflows längere Änderungsfolgen verwalten
  • Mehrere Quelldateien können gleichzeitig mit aider verwendet werden, sodass GPT Codeänderungen über alle Dateien hinweg in einem einzigen Änderungssatz/Commit koordinieren kann
  • aider kann GPT-4 eine Übersicht über das gesamte git-Repository bereitstellen, was beim Verstehen und Ändern großer Codebasen hilft
  • Während des Chats mit aider kann man Dateien auch manuell im Editor bearbeiten. aider erkennt diese Änderungen außerhalb des Chats und hält GPT mit der neuesten Version der Dateien auf dem aktuellen Stand. So kann man zwischen aider-Chat und Editor hin- und herwechseln und beim Coden mit GPT zusammenarbeiten
  • Wenn man gpt-4 über openai direkt nutzt, kann man Bilddateien zum Kontext hinzufügen; dann wird automatisch auf das Modell gpt-4-vision-preview umgeschaltet

Befehle im Chat

  • aider unterstützt im Chat Befehle, die mit / beginnen. Einige der nützlichsten Befehle im Chat:
    • /add : passende Dateien zur Chat-Sitzung hinzufügen
    • /drop : passende Dateien aus der Chat-Sitzung entfernen
    • /undo: den letzten git-Commit rückgängig machen, wenn er von aider ausgeführt wurde
    • /diff: den Diff des letzten aider-Commits anzeigen
    • /run : einen Shell-Befehl ausführen und optional die Ausgabe dem Chat hinzufügen
    • /voice: mit aider sprechen, um Codeänderungen per Sprache anzufordern
    • /help: Hilfe zu allen Befehlen anzeigen

Tipps

  • Überlege, welche Dateien für die gewünschten Änderungen bearbeitet werden müssen, und füge sie dem Chat hinzu. aider kann bis zu einem gewissen Grad selbst herausfinden, welche Dateien GPT bearbeiten sollte, aber am effektivsten ist es, die benötigten Dateien explizit selbst zum Chat hinzuzufügen
  • Größere Änderungen lassen sich am besten als Folge durchdachter Schritte umsetzen, bei denen Ansatz und Gesamtdesign geplant werden. Leite die Änderungen an, als würdest du mit einem Junior-Entwickler arbeiten. Bitte zuerst um vorbereitendes Refactoring und dann um die eigentlichen Änderungen. Es lohnt sich, Zeit in Verbesserungen von Codequalität und Struktur zu investieren
  • Wenn GPT keine hilfreiche Antwort liefert, kann man den Vorgang mit Control-C sicher abbrechen. Teilantworten bleiben in der Unterhaltung erhalten und können referenziert werden, wenn man GPT mit mehr Informationen oder klarerer Richtung antwortet
  • Mit dem Befehl /run kann man Tests, Linter usw. ausführen und die Ausgabe GPT zeigen, um Probleme zu beheben
  • Mit Meta-ENTER (in manchen Umgebungen Esc+ENTER) kann man mehrzeilige Chat-Nachrichten eingeben. Alternativ beginnt eine mehrzeilige Nachricht, wenn man in der ersten Zeile nur { eingibt, und endet, wenn man in der letzten Zeile nur } eingibt
  • Wenn im Code Fehler auftreten, verwende /run oder füge die Fehlermeldung in den Chat ein, um die Ausgabe mit GPT zu teilen. So kann GPT den Bug finden und beheben
  • GPT kennt viele Standard-Tools und Bibliotheken, kann aber Details zu APIs und Funktionsargumenten teilweise missverstehen. Solche Probleme lassen sich beheben, indem man Ausschnitte aus der Dokumentation in den Chat einfügt
  • GPT kann nur den Inhalt von Dateien sehen, die ausdrücklich „zum Chat hinzugefügt“ wurden. aider sendet außerdem eine Übersicht des gesamten git-Repositories an GPT-4. Daher kann GPT bei Bedarf darum bitten, zusätzliche Dateien sehen zu dürfen.

Meinung von GN⁺

  • In großen Projekten dürfte es mit aider leicht sein, konsistente Änderungen über die gesamte Codebasis hinweg anzuwenden. Besonders in Kombination mit den Fähigkeiten von GPT-4 wirkt das noch leistungsfähiger
  • Allerdings sollte man die von GPT vorgeschlagenen Änderungen nicht einfach ungeprüft übernehmen; ein Prozess, in dem Entwickler sie selbst reviewen und testen, scheint weiterhin notwendig. GPT-Modelle sind noch nicht perfekt, daher besteht weiterhin die Möglichkeit von Bugs
  • aider dürfte sich nicht nur für Code, sondern auch für Dokumentation und das Schreiben von Testfällen eignen. Mit dem Sprachverständnis von GPT ließen sich qualitativ hochwertige Dokumentation und Testcode voraussichtlich schneller erstellen
  • Die CLI-Basis sorgt für gute Zugänglichkeit, aber eine engere Integration in die Entwicklungsumgebung, etwa durch Editor-Plugins, könnte die Produktivität von Entwicklern deutlich steigern
  • Ein differenzierender Vorteil gegenüber ähnlichen KI-Tools für Pair Programming wie GitHub Copilot scheint die Nutzung von GPT-4 und der git-basierte Workflow zu sein. Ein Vergleich der jeweiligen Vor- und Nachteile mit bestehenden Tools wäre interessant

1 Kommentare

 
GN⁺ 2024-04-11
Hacker-News-Diskussion

Im Folgenden eine Zusammenfassung der Kommentare auf Hacker News:

  • Bei der Nutzung von AI-Tools kann das Schreiben von Prompts und das Überprüfen der Ergebnisse so viel Zeit kosten, dass es ineffizienter ist als die Arbeit direkt selbst zu erledigen. Beim Erkunden neuer Lösungen scheint es zudem Einschränkungen bei der Genauigkeit zu geben.
  • Es gibt ein terminalbasiertes Projekt namens Plandex mit ähnlicher Funktionalität wie Aider. Es verwendet eine Git-ähnliche CLI und konzentriert sich auf komplexe Aufgaben über mehrere Dateien hinweg.
  • Jemand teilte die Erfahrung, mit Claude das Design einer responsiven Website umgesetzt zu haben. Lange Kontexte konnten gut beibehalten werden, und auch mit einer gemischten HTML/CSS/JS-Codebasis kam das Tool gut zurecht.
  • Es wurde ein Fall geschildert, in dem bei der Nutzung von AI-Tools in einer Go-Anwendung Fehler auftraten, weil Regeln zum Gültigkeitsbereich von Variablen nicht richtig verstanden wurden. Das wirft Fragen zur Zuverlässigkeit auf.
  • Bedauert wurde die mangelnde Integration mit bestehenden IDEs wie JetBrains. Außerdem wurden Erfahrungen mit der kombinierten Nutzung bestehender Tools wie GitHub Copilot geteilt.
  • Es besteht Interesse an den LLM-Leistungsbenchmarks von Aider. Dabei zeigte sich, dass das Modell GPT-4 Turbo with Vision schlechter abschnitt als frühere Modelle.
  • Die Qualität der Ergebnisse von AI-Tools ist noch nicht perfekt, weshalb ihre praktische Nutzung weiterhin Grenzen hat. Subtile Fehler treten nach wie vor auf.