# template_generator **Repository Path**: linback/template_generator ## Basic Information - **Project Name**: template_generator - **Description**: 模板生成,方便trae使用rule生成代码 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-11 - **Last Updated**: 2025-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Project Template Generator 基于LangGraph的多智能体模板生成工具,将复杂项目转化为标准化、可复用的AI友好模板。 ## 核心价值 - **标准化**:将不同项目规范化为统一格式的模板 - **可复用性**:生成的模板可以被多个项目共享和复用 - **AI友好**:专为AI辅助编程工具设计的模板结构 - **多智能体协作**:利用LangGraph的多智能体框架实现复杂任务协作 - **全面验证**:对生成的模板进行完整性、规范性和安全性验证 ## 技术栈 - **Python 3.8+** - **LangGraph**: 多智能体框架 - **LangChain**: LLM工具链 - **Pydantic**: 数据验证和设置管理 - **PyYAML**: 配置文件处理 - **GitPython**: Git仓库操作 - **AST**: Python代码解析 - **re**: 正则表达式处理 - **json**: JSON数据处理 ## 项目结构 ``` project_template_generator/ ├── src/ # 源代码目录 │ ├── agents/ # 智能体实现 │ │ ├── project_analyzer.py # 项目分析智能体 │ │ ├── code_analyzer.py # 代码分析智能体 │ │ ├── template_creator.py # 模板创建智能体 │ │ ├── template_validator.py # 模板验证智能体 │ │ ├── template_storage.py # 模板存储智能体 │ │ └── reflection.py # 反射智能体 │ ├── utils/ # 工具函数 │ ├── main.py # 主入口文件 │ ├── state.py # 状态定义 │ └── workflow.py # 工作流定义 ├── tests/ # 测试代码 ├── docs/ # 文档目录 ├── examples/ # 示例模板 ├── requirements.txt # 项目依赖 ├── config.yaml # 配置文件 └── README.md # 项目说明 ``` ## 安装指南 ### 1. 克隆项目 ```bash git clone cd project_template_generator ``` ### 2. 创建虚拟环境 ```bash python3 -m venv .venv source .venv/bin/activate # Linux/Mac .venv\Scripts\activate # Windows ``` ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` ## 配置说明 ### 1. 环境变量配置 (.env文件) 项目根目录下创建`.env`文件,添加以下敏感配置: ```bash # 大语言模型API密钥配置 DEEPSEEK_API_KEY=your_deepseek_api_key_here QWEN_API_KEY=your_qwen_api_key_here # 或QWEN2_API_KEY(两者兼容) # 其他可选配置 TEMPLATE_STORAGE_PATH=./templates TEMPLATE_CACHE_DIR=~/.template_generator/cache LOG_LEVEL=INFO LOG_FILE= ``` ### 2. 非敏感配置 (config.yaml文件) ```yaml # 大语言模型配置 llm: default_provider: qwen2 fallback_provider: deepseek cache_enabled: true cache_dir: ~/.template_generator/cache providers: deepseek: model: deepseek-chat temperature: 0.7 max_tokens: 4096 base_url: https://api.deepseek.com qwen2: model: qwen-plus temperature: 0.7 max_tokens: 4096 base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 # 模板生成配置 template: placeholder_format: ${{}} include_comments: true max_template_size: 50 max_files: 100 include_tests: true min_file_size: 100 max_file_size: 100000 ignore_patterns: - .git - __pycache__ - "*.pyc" - "*.egg-info" - venv - node_modules - .env - .env.local - .DS_Store - Thumbs.db - build - dist # 验证配置 validation: enable_security_check: true enable_style_check: true enable_llm_validation: true severity_threshold: "warning" # 存储配置 storage: default_path: ./templates create_index: true compress_templates: false index_format: "json" ``` ### 配置加载优先级 1. 命令行参数 (最高优先级) 2. 环境变量 (.env 文件) 3. 配置文件 (config.yaml 或指定的配置文件) 4. 默认值 (最低优先级) ## 命令行使用 ```bash python -m src.main [options] ``` ### 参数说明 - ``: 要分析的项目路径(必填) - `-p, --project`: 项目路径(与直接提供相同,二选一) - `-s, --storage`: 存储模板的路径(可选,默认为`./templates`) - `-n, --name`: 自定义模板名称(可选,默认为项目名称) - `-d, --description`: 自定义模板描述(可选) - `-v, --version`: 模板版本号(可选,默认为1.0.0) - `-c, --config`: 配置文件路径(可选,默认为`config.yaml`) - `-e, --export-archive`: 导出模板为压缩包(可选) - `--verbose`: 显示详细日志(可选) - `--force`: 强制覆盖已存在的模板(可选) ### 使用示例 ```bash # 基本用法 python -m src.main /path/to/project # 自定义模板元数据 python -m src.main /path/to/project --name "MyAwesomeTemplate" --description "这是一个自定义模板" --version "1.2.3" # 指定存储路径和配置文件 python -m src.main /path/to/project --storage /path/to/templates --config config.json # 导出为压缩包并显示详细日志 python -m src.main /path/to/project --export-archive --verbose # 使用短选项 python -m src.main -p /path/to/project -s /path/to/templates -n "MyTemplate" -v "1.0.0" ``` ## 作为Python库使用 ```python from src.workflow import run_template_generator_workflow # 运行模板生成器 result = run_template_generator_workflow( project_path="/path/to/your/project", storage_path="/path/to/store/templates", template_name="CustomTemplate", template_description="这是一个自定义模板", template_version="1.0.0", config_path="path/to/config.yaml", export_archive=True, verbose=True, force=True ) # 处理结果 if result.get('is_completed', False): print(f"模板生成成功! 模板ID: {result.get('template_id')}") print(f"模板路径: {result.get('template_path')}") else: print("模板生成失败!") print(f"错误信息: {result.get('errors')}") ``` ## 功能特点 1. **项目结构分析**:递归扫描项目文件和目录结构,识别主要组件 2. **语言和框架识别**:自动识别项目使用的编程语言和框架 3. **依赖分析**:提取项目依赖和版本信息 4. **代码风格分析**:识别代码风格和编码规范 5. **模板生成**:根据分析结果生成标准化模板 6. **元数据生成**:自动生成模板元数据 7. **敏感信息清理**:检测并清理模板中的敏感信息 8. **模板验证**:验证模板的完整性、规范性和安全性 9. **模板存储**:将模板存储到指定位置 10. **模板索引**:创建模板索引,便于管理和检索 ## 工作流程 1. **项目分析阶段**:分析项目结构、语言、框架和依赖 2. **代码分析阶段**:深入分析代码结构、语法和模式 3. **模板创建阶段**:生成标准化的模板文件和元数据 4. **模板验证阶段**:验证模板的完整性、规范性和安全性 5. **反射优化阶段**:自我反思和优化模板质量 6. **模板存储阶段**:将验证通过的模板保存到指定位置 ## 智能体介绍 ### 1. 项目分析智能体 (ProjectAnalyzer) - **功能**:分析输入项目的结构、语言、框架和依赖关系 - **核心方法**:`execute()`、`analyze_project_structure()`、`detect_programming_language()` - **输入**:项目路径、配置信息 - **输出**:项目结构信息、语言/框架识别结果、依赖清单 ### 2. 代码分析智能体 (CodeAnalyzer) - **功能**:深入分析项目代码的结构、语法和模式 - **核心方法**:`execute()`、`_scan_code_structure()`、`_extract_dependencies()` - **输入**:项目路径、配置信息 - **输出**:代码结构信息、依赖分析结果、模式检测结果 ### 3. 模板创建智能体 (TemplateCreator) - **功能**:根据分析结果生成标准化模板文件和元数据 - **核心方法**:`execute()`、`create_template_files()`、`generate_template_metadata()` - **输入**:项目分析结果、配置信息 - **输出**:模板文件集合、模板元数据 ### 4. 模板验证智能体 (TemplateValidator) - **功能**:验证生成的模板是否完整、规范和安全 - **核心方法**:`execute()`、`validate_template_completeness()`、`validate_template_security()` - **输入**:模板文件集合、模板元数据 - **输出**:验证结果、问题列表、建议改进项 ### 5. 模板存储智能体 (TemplateStorage) - **功能**:将验证通过的模板存储到指定位置 - **核心方法**:`execute()`、`store_template()`、`save_template_files()` - **输入**:模板文件集合、模板元数据、存储路径 - **输出**:存储位置、模板ID、访问路径 ### 6. 反射智能体 (Reflection) - **功能**:提供自我反思和改进功能,优化模板生成过程 - **核心方法**:`reflective_improvement_cycle()`、`_has_significant_improvement()` - **输入**:模板生成过程和结果 - **输出**:优化建议、改进后的模板 ## 模板格式规范 ### 目录结构 ``` _/ ├── TEMPLATE.md # 模板说明文档 ├── META.json # 模板元数据 ├── CODE_OF_CONDUCT.md # 代码规范说明(可选) └── template_files/ # 模板文件目录 ├── # 项目结构文件 └── ... ``` ### META.json 格式 ```json { "id": "unique-template-id", "name": "template-name", "description": "template-description", "version": "1.0.0", "created_at": "2023-01-01T12:00:00Z", "updated_at": "2023-01-01T12:00:00Z", "language": "python", "framework": "django", "tags": ["web", "backend", "django"], "dependencies": [ {"name": "django", "version": "4.2.0"} ], "features": ["rest-api", "admin-panel"], "author": "AI Assistant", "source_project": "original-project-path" } ``` ### TEMPLATE.md 格式 TEMPLATE.md文件应包含以下内容: - 模板名称和版本 - 模板简短描述 - 主要功能和特点 - 适用场景 - 如何使用该模板 - 模板结构说明 - 依赖和环境要求 ## 高级配置 ### 模板配置示例 ```json { "placeholder_format": "${{}}", "include_comments": true, "max_template_size": 50, "max_files": 100, "include_tests": true, "ignore_patterns": [ ".git", "__pycache__", "venv", "node_modules" ] } ``` ### 验证配置示例 ```json { "enable_security_check": true, "enable_style_check": true, "enable_llm_validation": true, "severity_threshold": "warning" } ``` ### 存储配置示例 ```json { "default_path": "./templates", "create_index": true, "compress_templates": false, "index_format": "json" } ``` ## 开发环境设置 ### 安装开发依赖 ```bash pip install -e . # 安装测试依赖 pip install pytest pytest-cov ``` ### 运行测试 ```bash # 运行所有测试 pytest tests/ # 运行特定测试 pytest tests/test_agent.py::test_project_analyzer # 生成测试覆盖率报告 pytest --cov=src tests/ ``` ## 详细文档 项目包含更详细的技术文档: - **README_DETAILED.md**:详细的项目文档,包含所有功能的详细说明 - **docs/技术方案文档.md**:系统架构和技术实现细节 - **docs/需求分析文档.md**:项目需求和功能分析 ## 总结 Project Template Generator是一个强大的多智能体工具,能够将复杂项目转换为标准化、可复用的AI友好模板。通过利用LangGraph框架,该工具实现了智能体之间的高效协作,提供了全面的项目分析、模板生成、验证和存储功能,为开发者、技术团队和AI辅助开发提供有力支持。