rdmgen
是一个 Python CLI 工具,可使用Amazon Bedrock和LangGraph自动为代码存储库生成高质量的README.md
文件。
该项目使用 Amazon Bedrock、LangGraph 和 LangChain AWS 库来分析代码存储库的结构和内容并生成全面的 README.md 文件。生成的自述文件提供了项目概述、安装说明、使用示例以及基于存储库中的文件的其他相关详细信息。
rdmgen
会为您完成艰苦的工作。请注意:您需要python >= 3.9
。您可以使用python --version
检查这一点。如果您的基础环境没有所需版本,请创建具有所需版本的虚拟环境并使用“选项 1”进行安装。
克隆存储库后,您可以使用 pip 安装该包。
pip install .
包含一些配方的 Makefile 可用于 linux/MacOS。要创建专用的 Python venv 并在虚拟环境中安装rdmgen
,请运行:
make all
虚拟环境默认命名为.venv
,它与存储库位于同一目录中。
现在运行以下命令来激活环境:
source .venv/bin/activate
有关更多 make 方法,例如清理和删除 venv,请检查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 sonnet: anthropic.claude-3-sonnet-20240229-v1:0
。请确保您有权访问它。如果您想更改模型 ID,请在src/rdmgen/constants.py
中更新它并重新安装软件包。
要为您的存储库生成 README.md 文件,请运行 cli 命令:
rdmgen <REPO_PATH> --out <OUTPUT_FOLDER>
<REPO_PATH>
:可以是本地克隆/目录或远程 Git URL。<OUTPUT_FOLDER>
:保存输出 README.md 文件的路径。如果不指定,文件将保存到源代码的同一目录中。您可以传递可选的--diagram
标志来创建代理的流程图以查看其运行的步骤。
此存储库中提供以下两个示例用于测试:
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 许可证获得许可。请参阅许可证文件。