AICodeBot ist ein terminalbasierter Codierungsassistent, der Ihnen das Programmieren erleichtern soll. Betrachten Sie es als Ihre KI-Version eines Paarprogrammierers. Führen Sie Codeüberprüfungen durch, erstellen Sie hilfreiche Commit-Nachrichten, beheben Sie Probleme und helfen Sie bei der Entwicklung neuer Funktionen. Ein Teammitglied, das das Entwicklungstempo beschleunigt und Ihnen hilft, besseren Code zu schreiben.
Wir haben geplant, mehrere verschiedene Schnittstellen für die Interaktion mit AICodeBot zu entwickeln. Zunächst handelt es sich um ein Befehlszeilentool, das Sie in Ihrem Terminal installieren und ausführen können, sowie um eine GitHub-Aktion für Codeüberprüfungen.
Status: Dieses Projekt wurde erstellt, bevor AI Coding Assistants cool waren. ? Daher wurde ein Großteil der Funktionalität in verschiedenen IDEs repliziert. AICodeBot glänzt a) dadurch, dass es sich im Terminal und nicht in der GUI befindet und b) es in Prozessen wie GitHub-Aktionen verwendet werden kann.
Wir verwenden AICodeBot, um AICodeBot zu erstellen, und es geht ständig aufwärts. Wir sind auf der Suche nach Mitwirkenden, die uns bei der Entwicklung unterstützen. Weitere Informationen finden Sie unter BEITRAG.
Aufgabe | Status |
---|---|
Generieren hochwertiger Commit-Nachrichten | ✅ |
Durchdenken von Aufgaben als Paarprogrammierer | ✅ |
Codierung mit einer kleinen Anzahl von Dateien | ✅ |
Debuggen | ✅ |
Codeüberprüfungen durchführen | ✅ |
Code erklären | ✅ |
Schreibtests | ✅ |
Integration mit GitHub | ✅ |
Lokale Dateien ändern | Frühe Stadien |
Suche im Internet nach Antworten | Im Gange |
Bibliotheksdokumentation lesen | Frühe Stadien |
Codierung mit einer großen Anzahl von Dateien | Da LMs größere Token-Limits erhalten |
Schreiben von Code auf Senior-Entwicklerebene | Letztlich |
Wichtige Refaktoren | Letztlich |
Erstellen Sie komplette Apps | Letztlich |
Ersetzen Sie Entwickler | Nein |
aicodebot sidekick
Ihr KI-gestützter Codierungsassistent. Es soll Sie bei Ihren Codierungsaufgaben unterstützen, indem es kontextbezogene Vorschläge und Lösungen bereitstellt. Denken Sie an ChatGPT mit der Möglichkeit, das lokale Repository für den Kontext zu lesen.
Standardmäßig wird ein Verzeichnis mit Dateien aus dem aktuellen Arbeitsverzeichnis übergeben. Sie können auch eine Liste von Dateien übergeben, die als Kontext für die Aufgabe verwendet werden, an der Sie gerade arbeiten. Zum Beispiel:
aicodebot sidekick file1.py file2.py
In diesem Beispiel liest der Sidekick die Inhalte von file1.py und file2.py und verwendet sie, um kontextbezogene Antworten bereitzustellen.
Profi-Tipps:
Diese Funktion befindet sich derzeit noch in der Anfangsphase, ist aber bereits nützlich. Wir werden Unterstützung für Tools hinzufügen, die der Sidekick verwenden kann, einschließlich der GitHub-Integration, der Aufnahme von Repository-spezifischem Domänenwissen, dem Schreiben lokaler Dateien und mehr. Im Moment werden nur Dateien gelesen und Vorschläge gemacht.
aicodebot commit
verbessert den Git-Commit-Prozess. Es führt einen Pre-Commit durch, damit Sie die Syntax überprüfen können, und generiert dann eine Commit-Nachricht für Sie basierend auf den von Ihnen vorgenommenen Änderungen. Mit etwa so viel Aufwand wie das Eingeben von „Fehler beheben“ für die Commit-Nachricht erhalten Sie eine hochwertige Commit-Nachricht, die die Änderung ausführlich beschreibt.
aicodebot review
führt eine Codeüberprüfung Ihres Codes durch und schlägt Verbesserungen vor. Standardmäßig werden [nicht] bereitgestellte Änderungen untersucht, und Sie können auch einen bestimmten Commit-Hash zur Überprüfung angeben. Sein Ziel ist es, Vorschläge zu machen, wie wir den Code verbessern können, und wir haben festgestellt, dass es uns oft neue Dinge über unseren Code beibringt und uns zu besseren Programmierern macht. Dies ist eine großartige Möglichkeit, einen zweiten Satz Roboteraugen auf Ihren Code zu richten.
aicodebot debug $command
führt den $command aus und erfasst die Protokollausgabe. Es leitet die Fehlermeldung, den Stack-Trace, die Befehlsausgabe usw. an die KI weiter und antwortet mit einigen Vorschlägen zur Behebung des Problems.
Um AICodeBot zu installieren, führen Sie Folgendes aus:
pip install aicodebot
Führen Sie dann aicodebot configure
aus, um zu beginnen.
Usage: aicodebot [OPTIONS] COMMAND [ARGS]...
Options:
-V, --version Show the version and exit.
-h, --help Show this message and exit.
-d, --debug Enable langchain debug output
Commands:
alignment A message from AICodeBot about AI Alignment ❤ + ?.
commit Generate a commit message based on your changes.
configure Create or update the configuration file
debug Run a command and debug the output.
review Do a code review, with [un]staged changes, or a...
sidekick Coding help from your AI sidekick
AICodeBot unterstützt mehrere große Sprachmodelle, darunter Claude 3.x von Anthropic und GPT-3/4x von OpenAI. Pull-Anfragen für Gemini oder Ollama sind willkommen, aber wir glauben, dass diese beiden den Zweck erfüllen.
Wenn Sie AICodeBot zum ersten Mal ausführen, werden Sie aufgefordert, Ihre API-Schlüssel einzugeben
Wie wäre es mit automatisierten Codeüberprüfungen bei jedem Commit? Sie können AICodeBot als GitHub-Aktion in Ihrem Repository ausführen lassen. Weitere Informationen zu Codeüberprüfungen finden Sie unter „Die AICodeBot-GitHub-Aktion“. Es wird sich jede Commit- und Pull-Anfrage ansehen und dann entweder:
aicodebot debug $command
aus pip install aicodebot
installiert werden aicodebot alignment
aus. Technologie selbst ist amoralisch; es durchdringt einfach die Werte der Menschen, die es schaffen. Wir glauben, dass KI so aufgebaut sein sollte, dass sie mit der Menschheit in Einklang steht, und wir entwickeln AICodeBot, um uns dabei zu helfen, genau das zu tun. Wir bauen aus einem herzzentrierten Raum heraus und tragen zu einer gesunden Schnittstelle zwischen KI und Menschlichkeit bei.
aicodebot
ist ein Tool für Entwickler, kein Ersatz für sie. Es wird Ihren Job nicht ersetzen, aber es wird Ihre Arbeit einfacher und unterhaltsamer machen. Es wird nicht die Welt erobern, aber es wird uns helfen, eine bessere Welt aufzubauen. Weitere Informationen finden Sie im Abschnitt „Ausrichtung“ weiter unten.
Es handelt sich auch nicht um ein Tool zum Erstellen einer Website für mich in 5 Minuten, das anhand einer gut konstruierten Eingabeaufforderung ein Gerüst für Sie aufbaut. Dafür gibt es andere Tools. Es handelt sich nicht um eine No-Code-Plattform. Stattdessen ist AICodeBot so konzipiert, dass es mit vorhandenen Codebasen und der Git-Commit-Ebene funktioniert. Es soll die Effektivität fähiger Ingenieure vervielfachen.
Um ein anderes Modell anzugeben, können Sie das language_model
in Ihrer Datei $HOME/.aicodebot.yaml
festlegen. Zum Beispiel:
openai_api_key : sk-*****
language_model : gpt-3.5-turbo
personality : Stewie
version : 1.3
In KI-Modellen wie GPT-4 von OpenAI ist ein „Token“ ein Textstück, so kurz wie ein Zeichen oder so lang wie ein Wort. Die Gesamtzahl der Token in einem API-Aufruf, einschließlich Ein- und Ausgabe, wirkt sich auf die Kosten, die Zeit und darauf aus, ob der Aufruf basierend auf dem Höchstlimit funktioniert.
Jedes Modell hat ein maximales Token-Limit. GPT-3.5 hat beispielsweise ein Limit von 4096 Token und GPT-4 hat ein Token-Limit von 8192 Token. Wenn eine Konversation diese Grenze überschreitet, müssen Sie Ihren Text reduzieren, bis er passt.
Wenn Sie Befehle wie den Sidekick-Befehl in AICodeBot verwenden, mit dem Sie Dateien als Kontext übergeben können, ist es wichtig, Ihre Token effektiv zu verwalten. Aufgrund von Token-Beschränkungen ist es nicht möglich, Ihre gesamte Codebasis zu laden. Stattdessen sollten Sie nur die spezifischen Dateien laden, die für die Aufgabe, an der Sie arbeiten, relevant sind. Dadurch wird sichergestellt, dass das KI-Modell Ihre Anfrage effizient bearbeiten kann und die relevantesten Vorschläge für Ihre aktuelle Aufgabe liefert.
Sie benötigen für Ihre Aufgabe ein größeres Kontextfenster? Stoßen Sie auf Token-Limits und erhalten Sie eine Meldung wie diese?
The context is too large (21414) for any of the models supported by your API key. ?
Es gibt ein paar Dinge, die Sie tun können:
Wir würden uns über Ihre Hilfe freuen! Wenn Sie daran interessiert sind, einen Beitrag zu leisten, erfahren Sie hier, wie Sie loslegen können. Weitere Einzelheiten finden Sie unter BEITRAGEN.
Es wird davon ausgegangen, dass im aktuellen Arbeitsverzeichnis Änderungen vorgenommen wurden, die bereits hinzugefügt wurden.
docker build -t aicodebot .
docker run -v ~ /.aicodebot.yaml:/home/user/.aicodebot.yaml -v .:/app aicodebot commit -y