# VoyahAgentCode2Doc **Repository Path**: chengyangz/VoyahAgentCode2Doc ## Basic Information - **Project Name**: VoyahAgentCode2Doc - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-21 - **Last Updated**: 2025-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 代码文档生成器 (Code Documenter) 基于LangChain和大语言模型的多Agent协作式代码文档自动生成系统。 ## 项目概述 代码文档生成器是一个能够分析整个代码工程并生成高质量技术文档的工具。系统采用多Agent协作架构,通过RAG增强检索能力,自动构建函数调用关系树,理解代码结构和依赖关系,最终输出一篇全面而精确的代码文档。 ## 核心特性 - **多Agent协作框架**:架构师、程序员、评审员三个专业角色协同工作,各司其职 - **RAG增强理解**:使用嵌入模型索引整个项目代码,增强上下文理解能力 - **调用关系树分析**:自动构建代码调用关系图,理解函数间依赖 - **基于调用关系的代码检索**:根据调用关系精准定位相关代码段 - **Ollama接口集成**:灵活支持不同本地模型的接入 - **分段式文档生成**:按概述、参数、类说明、函数说明等分段生成 - **迭代优化机制**:支持多轮评审改进,不断提高文档质量 - **透明生成过程**:记录每步输入输出便于评估和调试 ## 安装指南 ### 前提条件 - Python 3.8+ - Ollama(用于运行本地模型) ### 安装步骤 1. 克隆仓库 ```bash git clone https://github.com/yourusername/code-documenter.git cd code-documenter ``` 2. 安装依赖 ```bash pip install -r requirements.txt ``` 3. 准备Ollama环境 确保Ollama服务已启动,并已安装所需模型: ```bash ollama pull llama3 # 或其他你希望使用的模型 ollama pull marian # 用于嵌入的模型 ``` ## 使用方法 ### 基本用法 ```bash python main.py --project_path /path/to/your/project --output_path ./output --max_iterations 3 ``` ### 参数说明 - `--project_path`:要分析的项目路径(必需) - `--output_path`:文档输出目录(默认:`./output`) - `--max_iterations`:文档生成的最大迭代次数(默认:3) ### 配置文件 可在`config.py`中修改以下配置: ```python # Ollama配置 OLLAMA_BASE_URL = "http://localhost:11434" # Ollama服务地址 EMBEDDING_MODEL = "marian" # 嵌入模型名称 LLM_MODEL = "llama3" # 大语言模型名称 # 文档生成配置 MAX_ITERATIONS = 3 # 最大迭代次数 CHUNK_SIZE = 1000 # 文本分块大小 CHUNK_OVERLAP = 200 # 文本分块重叠大小 ``` ## 项目结构 ``` /code-documenter/ ├── main.py # 主程序入口 ├── config.py # 系统配置文件 ├── requirements.txt # 项目依赖包 │ ├── agents/ # Agent定义目录 │ ├── __init__.py │ ├── architect.py # 架构师Agent │ ├── programmer.py # 程序员Agent │ ├── reviewer.py # 评审员Agent │ └── coordinator.py # 协调器Agent │ ├── utils/ # 工具函数目录 │ ├── __init__.py │ ├── code_parser.py # 代码解析工具 │ ├── callgraph.py # 调用关系树生成 │ ├── embeddings.py # 嵌入模型设置 │ └── document_builder.py # 文档构建工具 │ ├── prompts/ # 提示词存储目录 │ ├── architect_prompt.txt # 架构师提示词 │ ├── programmer_prompt.txt # 程序员提示词 │ ├── reviewer_prompt.txt # 评审员提示词 │ └── coordinator_prompt.txt # 协调器提示词 │ └── output/ # 生成文档输出目录 ├── documentation_*.md # 生成的文档文件 ├── call_graph.json # 保存的调用关系图 └── steps_log_*.json # 生成过程日志 ``` ## 自定义提示词 系统的提示词存储在`prompts/`目录下的文本文件中,您可以根据需要修改这些文件来自定义生成的文档风格和内容: - `architect_prompt.txt`:指导架构师分析文件的整体作用 - `programmer_prompt.txt`:引导程序员详细分析代码实现细节 - `reviewer_prompt.txt`:指导评审员评估文档质量并提供反馈 - `coordinator_prompt.txt`:协调整个文档生成过程 ## 执行流程 1. **解析代码**:分析项目结构,构建调用关系树 2. **RAG索引**:建立代码库的向量索引,用于检索相关代码段 3. **架构分析**:架构师Agent分析每个文件的整体作用和位置 4. **详细说明**:程序员Agent提供类和函数的详细文档 5. **评审和迭代**:评审员Agent评估文档质量,提供反馈 6. **生成最终文档**:整合所有内容,生成最终Markdown文档 ## 依赖项 - langchain - langchain_community - ollama - numpy - chromadb - pydantic ## 示例输出 生成的文档包含以下部分: - **概述**:工程的整体结构和功能 - **关键参数**:重要配置参数的表格 - **类详细说明**:每个类的功能、方法和属性 - **函数详细说明**:每个函数的功能、参数和返回值 - **调用层次结构**:代码间的调用关系 - **程序框图**:可视化的系统结构图 ## 许可 MIT ## 贡献 欢迎提交问题报告和改进建议!请fork本仓库并提交拉取请求。 --- **备注**:此工具适用于规模中等的代码库。对于特别大型的项目,建议按模块分批处理以获得最佳结果。