rdmgen
Amazon BedrockおよびLangGraph を使用してコード リポジトリ用の高品質のREADME.md
ファイルを自動的に生成する Python CLI ツールです。
このプロジェクトでは、Amazon Bedrock、LangGraph、LangChain AWS ライブラリを使用して、コード リポジトリの構造と内容を分析し、包括的な README.md ファイルを生成します。生成された README には、プロジェクトの概要、インストール手順、使用例、およびリポジトリ内のファイルに基づくその他の関連詳細が記載されています。
rdmgen
面倒な作業を行ってくれます。注意: python >= 3.9
が必要です。これはpython --version
で確認できます。基本環境に必要なバージョンがない場合は、必要なバージョンで仮想環境を作成し、「オプション 1」を使用してインストールします。
リポジトリのクローンを作成した後、pip を使用してパッケージをインストールできます。
pip install .
いくつかのレシピを含む Makefile は Linux/MacOS で利用できます。専用の Python venv を作成し、仮想環境にrdmgen
インストールするには、次のコマンドを実行します。
make all
仮想環境の名前はデフォルトで.venv
で、リポジトリと同じディレクトリにあります。
次に、次のコマンドを実行して環境をアクティブ化します。
source .venv/bin/activate
venv のクリーンアップや削除などの make レシピの詳細については、 make help
の出力を確認してください。
AWS 認証情報: cli コマンドを実行して README ファイルを生成する前に、AWS 認証情報が必要です。これを AWS 環境 (SageMaker Notebook インスタンスなど) 内から実行している場合は、ステップ 2 に進み、アタッチされた IAM ロールに正しいアクセス許可が付与されていることを確認できます。
IAM 権限: IAM ユーザーまたはロールには、選択したモデルに対して少なくとも次の権限が必要です (リソース * をモデル ID に置き換えます)。
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " VisualEditor " ,
"Effect" : " Allow " ,
"Action" : [
" bedrock:InvokeModel " ,
" bedrock:InvokeModelWithResponseStream "
],
"Resource" : " * "
}
]
}
注:このプロジェクトでは、Amazon Bedrock の Claude 3 ソネット: anthropic.claude-3-sonnet-20240229-v1:0
を使用します。アクセスできることを確認してください。モデル ID を変更したい場合は、 src/rdmgen/constants.py
でモデル ID を更新し、パッケージを再インストールしてください。
リポジトリの README.md ファイルを生成するには、cli コマンドを実行します。
rdmgen <REPO_PATH> --out <OUTPUT_FOLDER>
<REPO_PATH>
: ローカル クローン/ディレクトリまたはリモート Git URL を指定できます。<OUTPUT_FOLDER>
: 出力 README.md ファイルを保存するパス。指定しない場合、ファイルはソース コードと同じディレクトリに保存されます。オプションの--diagram
フラグを渡すと、エージェントのフローチャートを作成して、エージェントが実行したステップを確認できます。
次の 2 つの例は、テスト用にこのリポジトリで利用できます。
rdmgen test_data/hello_world
rdmgen test_data/sensor_extraction --out ./output
GitHub 上の小規模なリモート リポジトリの例:
rdmgen https://github.com/pypa/sampleproject --out output/sampleproject --diagram
rdmgen
ユーティリティは現在、小規模から中規模のリポジトリで動作しますが、大規模なリポジトリについては、 src/constants.py
で定義されている次の調整可能な制限を考慮してください。
read-timeout
、設定として Bedrock ランタイムクライアントに渡されます。詳細: https://repost.aws/knowledge-center/bedrock-large-model-read-timeoutsrecursion_limit
、グラフを呼び出すときに構成に渡されます。詳細: https://langchain-ai.github.io/langgraph/how-tos/recursion-limit/?h=recursion 開発と拡張では、このプロジェクトでは依存関係の管理に Poetry を使用します。パッケージと依存関係をインストールするには、詩をインストールしてから次を実行します。
poetry lock
poetry install
詳細については、「貢献」を参照してください。
貢献は大歓迎です!改善やバグ修正がある場合は、問題をオープンするか、プル リクエストを送信してください。
このライブラリは、MIT-0 ライセンスに基づいてライセンスされています。 LICENSE ファイルを参照してください。