git clone https://github.com/LOGIC-10/RepoAgent.git
cd RepoAgentEinrichten mit PDM
Initialisieren Sie die virtuelle Python -Umgebung. Stellen Sie sicher, dass Sie das unten stehende CMD in /RepoAgent -Verzeichnis ausführen:
pdm venv create --name repoagentAktivieren Sie die virtuelle Umgebung
Installieren Sie Abhängigkeiten mit PDM
pdm installStellen Sie vor dem Konfigurieren bestimmter Parameter für Repoagent sicher, dass die OpenAI -API in der Befehlszeile als Umgebungsvariable konfiguriert ist:
export OPENAI_API_KEY=YOUR_API_KEY # on Linux/Mac
set OPENAI_API_KEY=YOUR_API_KEY # on Windows
$Env :OPENAI_API_KEY = " YOUR_API_KEY " # on Windows (PowerShell) Geben Sie das Stammverzeichnis von Repoagent ein und versuchen Sie den folgenden Befehl im Terminal:
repoagent run # this command will generate doc, or update docs(pre-commit-hook will automatically call this)
repoagent run --print-hierarchy # Print how repo-agent parse the target repoDer Befehl Run Run unterstützt die folgenden optionalen Flags (falls festgelegt wird die Konfigurationsstandards überschreiben):
-m , --model Text: Gibt das für die Fertigstellung verwendete Modell an. Standard: gpt-3.5-turbo-t , --temperature Float: Legt die Erzeugungstemperatur für das Modell fest. Niedrigere Werte machen das Modell deterministischer. Standard: 0.2-r , --request-timeout Integer: Definiert die Auszeit in Sekundenschnelle für die API-Anfrage. Standard: 60-b , --base-url -Text: Die Basis-URL für die API-Aufrufe. Standard: https://api.openai.com/v1-tp , --target-repo-path Pfad: Der Dateisystempfad zum Zielrepository. Wird als Root für die Erzeugung von Dokumentationen verwendet. Standard: path/to/your/target/repository-hp , --hierarchy-path -Text: Der Name oder Pfad für die Projekthierarchiedatei, die zur Organisation der Dokumentationsstruktur verwendet wird. Standard: .project_doc_record-mdp , --markdown-docs-path -Text: Der Ordnerpfad, in dem die Markdown-Dokumentation gespeichert oder generiert wird. Standard: markdown_docs-i , --ignore-list -Text: Eine Liste von Dateien oder Verzeichnissen, die während der Erzeugung der Dokumentation ignoriert werden sollen, getrennt durch Kommas.-l , --language Text: Der ISO 639 -Code oder der Sprachname für die Dokumentation. Standard: Chinese-ll , --log-level [Debugg | Info | Warnung | Fehler | kritisch]: Legt die Protokollierungsstufe für die Anwendung fest. Standard: INFOSie können auch die folgende Funktion ausprobieren
repoagent clean # Remove repoagent-related cache
repoagent diff # Check what docs will be updated/generated based on current code changeWenn Sie zum ersten Mal eine Dokumentation für das Ziel -Repository generieren, erstellt Repoagent automatisch eine JSON -Datei, in der die globalen Strukturinformationen und ein Ordner mit dem Namen markdown_docs im Stammverzeichnis des Zielrepositorys zum Speichern von Dokumenten verwaltet werden.
Sobald Sie ursprünglich die globale Dokumentation für das Zielrepository generiert haben oder wenn das von Ihnen angeklontierte Projekt bereits globale Dokumentationsinformationen enthält, können Sie die interne Projektdokumentation mit Ihrem Team nahtlos und automatisch verwalten, indem Sie den Vorkommit-Hook im Ziel-Repository konfigurieren!
pre-commitRepoagent unterstützt derzeit die Generierung von Dokumentationen für Projekte, für die eine gewisse Konfiguration im Zielrepository erforderlich ist.
Stellen Sie zunächst sicher, dass das Ziel -Repository ein Git -Repository ist und initialisiert wurde.
git initInstallieren Sie Pre-Commit im Ziel-Repository, um Änderungen im Git-Repository zu erkennen.
pip install pre-commit Erstellen Sie eine Datei namens .pre-commit-config.yaml im Stammverzeichnis des Ziel-Repositorys. Ein Beispiel ist wie folgt:
repos :
- repo : local
hooks :
- id : repo-agent
name : RepoAgent
entry : repoagent
language : system
pass_filenames : false # prevent from passing filenames to the hook
# You can specify the file types that trigger the hook, but currently only python is supported.
types : [python]Für bestimmte Konfigurationsmethoden von Hooks finden Sie in Pre-Commit. Führen Sie nach dem Konfigurieren der YAML -Datei den folgenden Befehl aus, um den Hook zu installieren.
pre-commit installAuf diese Weise löst jeder Git -Commit den Haken des Repoagenten aus, wobei automatisch Änderungen im Zielrepository erfasst und entsprechende Dokumente generiert werden. Anschließend können Sie einige Änderungen am Zielrepository vornehmen, z. B. das Hinzufügen einer neuen Datei zum Zielrepository oder das Ändern einer vorhandenen Datei. Sie müssen nur den normalen Git -Workflow folgen: Git Add, Git Commit -m "Ihre Commit -Nachricht", Git Push the Repoagent Hook wird automatisch bei Git Commit ausgelöst, die Dateien erkennen, die Sie im vorherigen Schritt hinzugefügt haben, und generieren entsprechende Dokumente.
Nach der Ausführung ändert Repoagent die festgelegten Dateien automatisch im Ziel -Repository und reichen das Commit offiziell ein. Nach Abschluss der Ausführung wird das grüne "übergeben" angezeigt, wie in der folgenden Abbildung gezeigt:
Das generierte Dokument wird im angegebenen Ordner im Stammverzeichnis des Ziellagers gespeichert. Die Darstellung des generierten Dokuments ist wie unten gezeigt:
Wir haben das Standardmodell GPT-3,5-Turbo verwendet, um Dokumentation für das Xagent -Projekt zu generieren, das ungefähr 270.000 Codezeilen umfasst. Sie können die Ergebnisse dieser Generation im Verzeichnis markdown_docs des Xagent -Projekts auf GitHub anzeigen. Für eine verbesserte Dokumentationsqualität empfehlen wir, fortgeschrittenere Modelle wie GPT-4-1106 oder GPT-4-0125-Präview in Betracht zu ziehen.
Am Ende können Sie das Ausgangsformat, die Vorlage und andere Aspekte des Dokuments flexibel einstellen, indem Sie die Eingabeaufforderung anpassen. Wir freuen uns über Ihre Erforschung eines wissenschaftlicheren Ansatzes für automatisiertes technisches Schreiben und Ihre Beiträge zur Gemeinschaft.
Wir konzipieren Chat mit Repo als ein einheitliches Gateway für diese nachgeschalteten Anwendungen und fungieren als Anschluss, der Repoagent mit menschlichen Nutzern und anderen KI -Agenten verknüpft. Unsere zukünftige Forschung wird sich auf die Anpassung der Schnittstelle an verschiedene nachgeschaltete Anwendungen konzentrieren und sie so anpassen, dass sie ihre einzigartigen Merkmale und Implementierungsanforderungen erfüllt.
Hier demonstrieren wir einen vorläufigen Prototyp einer unserer nachgeschalteten Aufgaben: automatische Q & A für Probleme und Codeerklärung. Sie können den Server starten, indem Sie den folgenden Code ausführen.
pip install repoagent[chat-with-repo]
repoagent chat-with-repoHier sind Fälle, die Repoagent übernommen haben.
@misc { luo2024repoagent ,
title = { RepoAgent: An LLM-Powered Open-Source Framework for Repository-level Code Documentation Generation } ,
author = { Qinyu Luo and Yining Ye and Shihao Liang and Zhong Zhang and Yujia Qin and Yaxi Lu and Yesai Wu and Xin Cong and Yankai Lin and Yingli Zhang and Xiaoyin Che and Zhiyuan Liu and Maosong Sun } ,
year = { 2024 } ,
eprint = { 2402.16667 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL }
}