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