# AI智能模板处理说明 ## 功能概述 两个脚本已升级为AI智能版本,使用硅基流动大模型API智能分析文档内容,识别需要替换为占位符的位置。 ### 主要特性 1. **AI智能分析** - 使用大模型理解文档语义,识别可替换内容 2. **组合字段识别** - 能够识别组合字段,如"山西XXXX集团有限公司(职务+姓名)" 3. **规则匹配补充** - AI分析后,使用规则匹配作为补充 4. **置信度过滤** - 只应用置信度大于0.7的AI替换建议 ## 脚本说明 ### process_templates.py - 处理原始模板(包含 .doc 转换) - 支持 AI 智能分析 - 适用于需要自动转换 .doc 文件的场景 ### process_templates_docx_only.py - 处理已转换的 .docx 文件 - 支持 AI 智能分析 - 适用于文件已手动转换为 .docx 的场景 ## 环境配置 ### 1. 确保 .env 文件配置正确 ```env SILICONFLOW_API_KEY=你的API密钥 SILICONFLOW_MODEL=deepseek-ai/DeepSeek-V3.2-Exp ``` ### 2. 安装依赖 ```bash pip install python-docx python-dotenv requests ``` ## 使用方法 ### 运行脚本 ```bash # 处理已转换的 .docx 文件(推荐) python process_templates_docx_only.py # 或处理原始模板(包含 .doc 转换) python process_templates.py ``` ## AI分析能力 ### 1. 识别明确的字段值 - 姓名、单位、职务等明确信息 - 示例:`张三` → `{{target_name}}` ### 2. 识别示例值 - XXX、待填等占位符 - 示例:`被核查人姓名: XXX` → `被核查人姓名: {{target_name}}` ### 3. 识别组合字段 - 包含多个字段信息的组合文本 - 示例: - `山西XXXX集团有限公司(职务+姓名)` → `{{target_organization_and_position}}({{target_name}})` - `张三,男,1980年5月` → `{{target_name}},{{target_gender}},{{target_date_of_birth}}` ### 4. 识别格式化值 - 日期、时间等格式化内容 - 示例:`2024年12月7日` → `{{date}}` ### 5. 识别上下文相关字段 - 根据上下文理解字段含义 - 示例:在"被核查人"上下文中,`张三` 会被识别为 `{{target_name}}` ## 处理流程 ### 1. AI分析阶段 - 分析文档段落和表格单元格 - 识别可替换内容 - 生成替换建议(包含置信度) ### 2. 规则匹配阶段 - 使用正则表达式匹配字段名称 - 补充AI可能遗漏的替换 ### 3. 应用替换 - 按置信度排序替换建议 - 只应用置信度 > 0.7 的替换 - 避免重复替换 ## 输出示例 ### 成功处理 ``` 处理: 1.请示报告卡(XXX).docx 类型: REPORT_CARD 输入: 模板\原始模板\...\1.请示报告卡(XXX).docx 输出: 模板\2-初核模版\1.初核请示\1.请示报告卡(XXX).docx ✓ AI分析已启用 处理: 1.请示报告卡(XXX).docx ✓ 处理成功,AI识别 5 处,规则匹配 2 处 ``` ### AI分析失败(自动降级) ``` 处理: 2.初步核实审批表(XXX).docx ⚠ AI分析不可用: 未配置 SILICONFLOW_API_KEY,将使用基础模式 处理: 2.初步核实审批表(XXX).docx ✓ 处理成功,规则匹配 8 处 ``` ## 注意事项 ### 1. API配置 - 确保 `.env` 文件中配置了正确的 API 密钥 - 如果未配置,脚本会自动降级为规则匹配模式 ### 2. API调用限制 - AI分析会增加处理时间(每个段落/单元格需要API调用) - 如果API调用失败,会自动跳过AI分析,使用规则匹配 ### 3. 置信度阈值 - 默认只应用置信度 > 0.7 的替换 - 可以在代码中调整阈值 ### 4. 人工审核 - AI分析结果需要人工审核 - 某些复杂场景可能需要手动调整 ## 常见问题 ### Q1: AI分析失败怎么办? **A:** 脚本会自动降级为规则匹配模式,不会影响处理流程。检查: 1. `.env` 文件中的 API 密钥是否正确 2. 网络连接是否正常 3. API 配额是否充足 ### Q2: 某些内容没有被替换? **A:** 可能原因: 1. AI置信度低于阈值(0.7) 2. 内容不在可用字段列表中 3. 内容格式特殊,AI无法识别 **解决方案:** - 检查生成的模板 - 手动调整未替换的内容 - 可以降低置信度阈值(修改代码) ### Q3: 组合字段替换不正确? **A:** AI会尝试识别组合字段,但可能不够准确。建议: 1. 检查AI识别的替换结果 2. 手动调整不正确的组合字段 3. 提供更多示例帮助AI学习 ### Q4: 处理速度慢? **A:** AI分析需要调用API,会增加处理时间。可以: 1. 只对重要文档使用AI分析 2. 批量处理时考虑API调用限制 3. 使用 `use_ai=False` 参数禁用AI分析 ## 性能优化建议 1. **批量处理** - 一次性处理多个文件,减少API调用开销 2. **缓存结果** - 对于相同内容,可以缓存AI分析结果 3. **选择性使用** - 只对复杂文档使用AI分析,简单文档使用规则匹配 ## 示例场景 ### 场景1: 组合字段替换 ``` 原始文本: 山西XXXX集团有限公司(职务+姓名) AI识别: 包含单位信息和姓名信息 替换结果: {{target_organization_and_position}}({{target_name}}) ``` ### 场景2: 上下文识别 ``` 原始文本: 被核查人:张三 AI识别: 在"被核查人"上下文中,"张三"是姓名 替换结果: 被核查人:{{target_name}} ``` ### 场景3: 格式化日期 ``` 原始文本: 2024年12月7日 AI识别: 日期格式 替换结果: {{date}} 或 {{approval_time}} ``` ## 下一步 1. **检查生成的模板** - 打开处理后的模板文件 2. **审核AI替换结果** - 确认占位符是否正确 3. **手动调整** - 修正不正确的替换 4. **运行初始化脚本** - `python init_all_templates.py` ## 技术支持 如有问题,请检查: 1. `.env` 文件配置 2. API 密钥有效性 3. 网络连接状态 4. 脚本输出日志