--- name: complete-example description: AI 增强版 LaTeX 示例智能生成器,实现 AI 与硬编码的有机融合。AI 做"语义理解"(分析章节主题、推理资源相关性、生成连贯叙述),硬编码做"结构保护"(格式验证、哈希校验、访问控制)。用于用户要求"填充示例内容/生成示例/补充 LaTeX 示例"等场景。 metadata: short-description: AI 增强版 LaTeX 示例智能生成器 keywords: - latex - 示例生成 - AI 增强 - 格式保护 - 语义理解 - 资源整合 - nsfc triggers: - 填充示例 - 生成示例 - complete example - 补充示例内容 config: skills/complete_example/config.yaml --- # complete_example Skill - AI 增强版 LaTeX 示例智能生成器 ## 简介 **complete_example** 是一个充分发挥 AI 优势的 LaTeX 示例智能生成器,实现 AI 与硬编码的有机融合。 **核心设计理念**:AI 做"语义理解",硬编码做"结构保护" ## 版本信息 - **版本号**: 1.1.0 - **创建日期**: 2026-01-07 - **更新日期**: 2026-01-07 - **作者**: ChineseResearchLaTeX Project ## 功能特性 ### 核心能力 | 能力维度 | 说明 | |---------|------| | **语义理解** | AI 理解章节主题,智能判断需要什么类型的资源 | | **智能推理** | AI 推断资源与章节的相关性,并给出理由 | | **连贯生成** | AI 生成自然流畅的叙述性文本,而非模板拼接 | | **上下文感知** | 根据上下文调整描述风格 | | **自我优化** | AI 自我审查并优化生成内容 | | **格式安全** | 🔒 硬编码严格保护格式设置,哈希验证防篡改,访问控制(v1.1.0) | ### 用户提示机制(🆕) 支持用户自定义叙事提示(`narrative_hint`),AI 根据提示编造合理的示例内容: - 🏥 **医疗影像**:深度学习在医疗影像分析中的应用 - 🔬 **材料科学**:新型纳米材料合成与表征 - 🧪 **临床试验**:多中心临床试验设计 - 🤖 **传统 ML**:支持向量机分类方法 ## 使用方法 ### 基本语法 ``` /complete_example [options] ``` ### 参数说明 #### 必需参数 | 参数 | 类型 | 说明 | |------|------|------| | `project_name` | string | 项目名称(如 `NSFC_Young`)或项目路径 | #### 可选参数 | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `--content-density` | string | `moderate` | 内容密度:`minimal`(2资源/200字) / `moderate`(4资源/300字) / `comprehensive`(6资源/500字) | | `--output-mode` | string | `preview` | 输出模式:`preview`(预览) / `apply`(应用) / `report`(报告) | | `--target-files` | array | `null` | 目标文件列表(如 `["extraTex/1.2.内容目标问题.tex"]`),null 表示自动检测 | | `--narrative-hint` | string | `null` | 用户自定义叙事提示,指导 AI 生成特定风格的示例内容 | ### 使用示例 #### 示例 1:基本使用(AI 自动推断) ``` /complete_example NSFC_Young --content-density moderate --output-mode preview ``` #### 示例 2:使用用户提示 ``` /complete_example NSFC_Young --narrative-hint "生成一个关于深度学习在医疗影像分析中应用的示例,重点关注 CNN 架构和数据增强策略" ``` #### 示例 3:材料科学场景 ``` /complete_example NSFC_Young --narrative-hint "创建一个关于新型纳米材料合成与表征的示例,包括 XRD、SEM 等表征方法" ``` #### 示例 4:临床试验场景 ``` /complete_example NSFC_Young --narrative-hint "模拟一个多中心临床试验的设计与分析流程,重点描述随机化和盲法实施" ``` ## 输出说明 ### 运行目录结构 所有运行输出都保存在 `skills/complete_example/runs//` 中,不污染项目目录: ``` runs// ├── backups/ # 备份文件 ├── logs/ # 日志文件 ├── analysis/ # AI 分析结果 ├── output/ # 生成内容 └── metadata.json # 运行元数据 ``` ### 质量报告 AI 会自动评估生成内容的质量,包括: - 连贯性评分(0-1) - 学术风格评分(0-1) - 资源整合评价 - 改进建议 ## 工作流程 ``` 1. 🔍 扫描阶段 └─ 扫描 figures/、code/、references/ 资源 2. 🧠 分析阶段 └─ AI 分析章节主题、关键概念、写作风格 3. 💡 推理阶段 └─ AI 推理资源相关性并给出理由 4. ✍️ 生成阶段 └─ AI 生成连贯的叙述性内容(支持用户提示) 5. 🎨 包装阶段 └─ 硬编码包装为 LaTeX 代码 6. 🔍 优化阶段 └─ AI 自我审查和优化 7. ✅ 验证阶段 └─ 格式验证、编译验证 8. 📊 报告阶段 └─ 生成质量报告 ``` ## 架构设计 ### AI 与硬编码职责分工 | 任务类型 | AI 负责 | 硬编码负责 | |---------|--------|-----------| | 文件扫描 | - | ✅ 文件系统操作、元数据提取 | | 语义分析 | ✅ 章节主题理解、关键概念提取 | - | | 资源选择 | ✅ 推理相关性、给出理由 | ✅ 评分排序、Top-K 选择 | | 文本生成 | ✅ 叙述性内容生成 | - | | LaTeX 包装 | - | ✅ 语法正确性、格式规范 | | 格式保护 | ✅ 解释修改意图、诊断问题 | ✅ 严格验证、哈希校验 | ### 分层架构 ``` ┌─────────────────────────────────────────────────────────┐ │ 用户接口层 │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ CLI 命令 │ │ Skill 调用 │ │ Python API │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ AI 增强工作流层 │ │ ┌─────────────────────────────────────────────────┐ │ │ │ CompleteExampleSkill (主控制器) │ │ │ └─────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ AI 智能层(Semantic Layer) │ │ ┌──────────────────┐ ┌──────────────────┐ │ │ │ SemanticAnalyzer │ │ AIContentGenerator│ │ │ └──────────────────┘ └──────────────────┘ │ └─────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────┐ │ 硬编码保护层(Structure Layer) │ │ ┌──────────────────┐ ┌──────────────────┐ │ │ │ ResourceScanner │ │ FormatGuard │ │ │ └──────────────────┘ └──────────────────┘ │ └─────────────────────────────────────────────────────────┘ ``` ## 配置文件 配置文件位于 `skills/complete_example/config.yaml`,包含: - LLM 配置(provider、model、temperature 等) - 参数定义(content_density、output_mode 等) - 运行管理配置(runs_root、retention、backup 等) - 资源扫描配置 - 内容生成配置 - 格式保护配置 - AI 提示词模板 - 质量评估标准 ## 安全机制 ### 🔒 分层安全保护(v1.1.0 增强) #### Layer 1: 系统文件保护(黑名单) **绝对禁止修改的文件**: - `main.tex` - 项目入口文件 - `extraTex/@config.tex` - 格式配置文件 - `@config.tex` - 格式配置文件(别名) **保护机制**: - ✅ 黑名单访问控制:任何对系统文件的修改尝试都会被拒绝 - ✅ SHA256 哈希校验:检测文件是否被外部篡改 - ✅ 自动初始化:首次运行时自动生成哈希指纹 ```python # 示例:尝试修改系统文件会抛出异常 try: skill.generate_content("main.tex", "...") except SystemFileModificationError as e: print(e) # 🚨 禁止访问系统文件:main.tex ``` #### Layer 2: 用户内容文件保护(白名单) **允许编辑的文件模式**: ```yaml editable_patterns: - "^extraTex/\\d+\\.\\d+.*\\.tex$" # 1.1.xxx.tex, 2.3.xxx.tex 等 - "^references/reference\\.tex$" ``` **保护机制**: - ✅ 白名单模式匹配:只允许编辑符合正则表达式的文件 - ⚠️ 警告机制:编辑白名单之外的文件会触发警告 #### Layer 3: 内容安全扫描 **格式注入检测**: - 扫描生成内容中的格式关键词(如 `\geometry`、`\setlength`) - 自动注释掉危险行(可选) - 二次验证确保清理成功 **黑名单关键词**: ```yaml format_keywords_blacklist: - "\\geometry{" - "\\setlength{" - "\\definecolor{" - "\\setCJKfamilyfont" - "\\setmainfont" - "\\titleformat{" - "\\usepackage{" - "\\documentclass" ``` ### 格式保护 - **受保护的文件**:`extraTex/@config.tex`、`main.tex` 等 - **受保护的命令**:`\setlength`、`\geometry`、`\definecolor` 等 - **哈希验证**:计算关键格式文件的 SHA256 哈希值,防止篡改 - **自动备份**:修改前自动备份到 `runs//backups/` - **自动回滚**:格式保护失败或编译失败时自动回滚 - **🆕 访问控制**:黑名单 + 白名单双重保护(v1.1.0) - **🆕 格式注入扫描**:自动检测并清理危险的格式指令(v1.1.0) ### 编译验证 - 修改文件后自动执行 `xelatex` 编译 - 编译失败则自动回滚 - 编译日志保存在 `runs//logs/compile.log` ## 依赖要求 ### Python 依赖 ``` - anthropic (Claude API) - openai (OpenAI API) - PIL (图片元数据提取) - pyyaml (配置文件解析) - jinja2 (模板引擎) ``` ### LaTeX 依赖 ``` - xelatex (编译引擎) - ctex (中文支持) - listings (代码清单) - graphicx (图片支持) ``` ## 最佳实践 ### 1. 优先使用预览模式 首次使用时,建议使用 `--output-mode preview` 查看生成效果: ``` /complete_example NSFC_Young --output-mode preview ``` ### 2. 充分利用用户提示 通过 `--narrative-hint` 指定研究主题,可以获得更符合预期的示例: ``` /complete_example NSFC_Young --narrative-hint "生成一个关于 XXX 的示例" ``` ### 3. 选择合适的内容密度 根据章节重要性选择密度: - `minimal`:快速填充,适合次要章节 - `moderate`:平衡选择,适合大多数章节 - `comprehensive`:详细示例,适合核心章节 ### 4. 定期清理运行记录 使用 `--auto-cleanup` 配置自动清理过期运行记录: ```yaml run_management: retention: max_runs: 50 max_age_days: 30 auto_cleanup: true ``` ## 故障排除 ### 问题 1:格式被意外修改 **原因**:AI 生成内容时破坏了格式定义 **解决方案**: 1. 检查 `runs//logs/format_check.log` 2. 查看备份文件 `runs//backups/` 3. 手动恢复或调整提示后重试 ### 问题 2:编译失败 **原因**:生成的 LaTeX 代码有语法错误 **解决方案**: 1. 检查 `runs//logs/compile.log` 2. 查看具体错误信息 3. 调整 AI 温度参数或修改提示 ### 问题 3:生成质量不理想 **原因**:AI 理解偏差或温度参数过高 **解决方案**: 1. 使用更明确的 `--narrative-hint` 2. 降低 `temperature` 参数 3. 使用更强大的 LLM 模型 ## 更新日志 版本变更历史记录在项目根目录的 [CHANGELOG.md](../../CHANGELOG.md) 中。 ## 许可证 与主项目保持一致。 --- **提示**:详细的设计文档请参考 [plans/v202601071300.md](../../plans/v202601071300.md)