rdmgen
ist ein Python-CLI-Tool zum automatischen Generieren hochwertiger README.md
Dateien für Code-Repositorys mit Amazon Bedrock und LangGraph .
Dieses Projekt verwendet die AWS-Bibliotheken Amazon Bedrock, LangGraph und LangChain, um die Struktur und den Inhalt eines Code-Repositorys zu analysieren und eine umfassende README.md-Datei zu generieren. Die generierte README-Datei bietet einen Überblick über das Projekt, Installationsanweisungen, Anwendungsbeispiele und andere relevante Details basierend auf den Dateien im Repository.
rdmgen
erledigt die harte Arbeit für Sie. Bitte beachten Sie: Sie benötigen python >= 3.9
. Sie können dies mit python --version
überprüfen. Wenn Ihre Basisumgebung nicht über die erforderliche Version verfügt, erstellen Sie eine virtuelle Umgebung mit der erforderlichen Version und verwenden Sie „Option 1“ zur Installation.
Sie können das Paket mit pip installieren, nachdem Sie das Repository geklont haben.
pip install .
Für Linux/MacOS ist ein Makefile mit einigen Rezepten verfügbar. Führen Sie Folgendes aus, um ein dediziertes Python-Venv zu erstellen und rdmgen
in der virtuellen Umgebung zu installieren:
make all
Die virtuelle Umgebung heißt standardmäßig .venv
und befindet sich im selben Verzeichnis wie das Repository.
Führen Sie nun den folgenden Befehl aus, um die Umgebung zu aktivieren:
source .venv/bin/activate
Weitere Make-Rezepte wie das Aufräumen und Entfernen des Venv finden Sie in der Ausgabe von make help
.
AWS-Anmeldeinformationen : Vor dem Ausführen der CLI-Befehle zum Generieren einer README-Datei sind AWS-Anmeldeinformationen erforderlich. Wenn Sie dies in einer AWS-Umgebung (z. B. SageMaker Notebook-Instanz) ausführen, können Sie mit Schritt 2 fortfahren, um sicherzustellen, dass der angehängten IAM-Rolle die richtigen Berechtigungen gewährt werden.
IAM-Berechtigungen : Der IAM-Benutzer oder die IAM-Rolle sollte mindestens über die folgenden Berechtigungen für das ausgewählte Modell verfügen (ersetzen Sie die Ressource * durch die Modell-ID(s)):
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " VisualEditor " ,
"Effect" : " Allow " ,
"Action" : [
" bedrock:InvokeModel " ,
" bedrock:InvokeModelWithResponseStream "
],
"Resource" : " * "
}
]
}
Hinweis: Das Projekt verwendet Claude 3 Sonett: anthropic.claude-3-sonnet-20240229-v1:0
von Amazon Bedrock. Bitte stellen Sie sicher, dass Sie Zugriff darauf haben. Wenn Sie die Modell-ID ändern möchten, aktualisieren Sie sie bitte in src/rdmgen/constants.py
und installieren Sie das Paket erneut.
Um eine README.md-Datei für Ihr Repository zu generieren, führen Sie den Befehl cli aus:
rdmgen <REPO_PATH> --out <OUTPUT_FOLDER>
<REPO_PATH>
: kann ein lokaler Klon/Verzeichnis oder eine Remote-Git-URL sein.<OUTPUT_FOLDER>
: Pfad zum Speichern der Ausgabedatei README.md. Wenn nicht angegeben, wird die Datei im selben Verzeichnis wie der Quellcode gespeichert. Sie können das optionale Flag --diagram
übergeben, um das Flussdiagramm des Agenten zu erstellen und die von ihm ausgeführten Schritte anzuzeigen.
Die folgenden zwei Beispiele stehen in diesem Repository zum Testen zur Verfügung:
rdmgen test_data/hello_world
rdmgen test_data/sensor_extraction --out ./output
Beispiel für ein kleines Remote-Repository auf GitHub:
rdmgen https://github.com/pypa/sampleproject --out output/sampleproject --diagram
Das Dienstprogramm rdmgen
funktioniert derzeit für kleine bis mittelgroße Repositorys. Beachten Sie die folgenden einstellbaren Einschränkungen für große Repositorys, die in src/constants.py
definiert sind:
read-timeout
, das als Konfiguration an den Bedrock-Laufzeitclient übergeben wird, weitere Details: https://repost.aws/knowledge-center/bedrock-large-model-read-timeoutsrecursion_limit
, das beim Aufrufen des Diagramms an die Konfiguration übergeben wird. Weitere Details: https://langchain-ai.github.io/langgraph/how-tos/recursion-limit/?h=recursion Für die Entwicklung und Erweiterung verwendet dieses Projekt Poetry für das Abhängigkeitsmanagement. Um das Paket und die Abhängigkeiten zu installieren, installieren Sie Poetry und führen Sie dann Folgendes aus:
poetry lock
poetry install
Weitere Informationen finden Sie unter BEITRAGEN.
Beiträge sind willkommen! Bitte öffnen Sie ein Problem oder senden Sie eine Pull-Anfrage, wenn Sie Verbesserungen oder Fehlerbehebungen haben.
Diese Bibliothek ist unter der MIT-0-Lizenz lizenziert. Siehe die LICENSE-Datei.