4.9 KiB
4.9 KiB
开发完成总结
✅ 已完成的工作
1. 解析接口调整
- ✅ 取消
business_type参数 - ✅ 新增
outputData参数(包含需要提取的字段列表) - ✅ 实现根据
fieldCode从数据库查询字段配置 - ✅ 接口路径:
/ai/extract和/api/ai/extract(兼容旧路径)
相关文件修改:
app.py- 解析接口实现已更新services/field_service.py- 新增get_output_fields_by_field_codes方法
2. Excel文件解析
- ✅ 创建了
parse_excel_fields.py脚本 - ✅ 成功解析Excel文件,提取所有字段定义
- ✅ 生成了
parsed_fields.json文件
解析结果:
- 识别了8个模板及其字段关系
- 提取了所有输入字段和输出字段
3. 文档生成接口开发
- ✅ 创建了
services/document_service.py文档服务 - ✅ 实现Word模板填充功能(使用python-docx)
- ✅ 实现MinIO文件上传功能
- ✅ 实现模板下载功能
- ✅ 接口路径:
/ai/generate-document和/api/ai/generate-document(兼容旧路径)
功能特性:
- 从MinIO下载模板
- 填充Word模板中的占位符
{{field_code}} - 上传生成的文件到MinIO
- 返回相对路径(符合新接口要求)
4. 依赖库更新
- ✅ 更新了
requirements.txt,添加了:python-docx==1.1.0- Word文档处理minio==7.2.3- MinIO客户端openpyxl==3.1.2- Excel文件解析
📋 接口变更说明
解析接口 (/ai/extract)
变更前:
{
"businessType": "INVESTIGATION",
"inputData": [
{"fieldCode": "clue_info", "fieldValue": "..."}
]
}
变更后:
{
"inputData": [
{"fieldCode": "clue_info", "fieldValue": "..."}
],
"outputData": [
{"fieldCode": "userName"},
{"fieldCode": "userAge"}
]
}
文档生成接口 (/ai/generate-document)
请求参数:
{
"inputData": [
{"fieldCode": "userName", "fieldValue": "张三"},
{"fieldCode": "userAge", "fieldValue": "30"}
],
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "请示报告卡.doc",
"templateCode": "REPORT_CARD"
}
]
}
返回结果:
filePath返回相对路径(如:/202511261123/请示报告卡.doc)- 不再返回绝对路径
⚠️ 重要变更点
-
数据库字段变更
f_polic_file_config表新增template_code字段- 不再写入
input_data字段(只读取)
-
字段查询逻辑
- 通过
fieldCode从数据库查询字段配置 - 不再依赖
business_type参数
- 通过
-
路径格式
- MinIO路径返回相对路径,以
/开头 - 不再返回绝对路径
- MinIO路径返回相对路径,以
📝 下一步工作建议
1. 数据库初始化脚本(待完成)
需要创建一个完整的脚本,将所有Excel中的字段初始化到数据库:
- 创建所有字段记录(输入字段和输出字段)
- 创建文件配置记录(使用template_code字段)
- 建立文件和字段的关联关系
2. prompt_config.json调整(待完成)
根据新字段更新抽取规则
3. 占位符文档生成(待完成)
创建一个MD文档,列出所有占位符和对应的数据字段
4. 测试验证
- 测试解析接口
- 测试文档生成接口
- 验证MinIO文件上传和下载
🔧 使用说明
启动服务
python app.py
测试解析接口
curl -X POST http://localhost:7500/ai/extract \
-H "Content-Type: application/json" \
-d '{
"inputData": [
{"fieldCode": "clue_info", "fieldValue": "被举报用户名称是张三"}
],
"outputData": [
{"fieldCode": "userName"}
]
}'
测试文档生成接口
curl -X POST http://localhost:7500/ai/generate-document \
-H "Content-Type: application/json" \
-d '{
"inputData": [
{"fieldCode": "userName", "fieldValue": "张三"}
],
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "请示报告卡.doc",
"templateCode": "REPORT_CARD"
}
]
}'
📁 新增/修改的文件
新增文件
services/document_service.py- 文档生成服务parse_excel_fields.py- Excel解析脚本parsed_fields.json- 解析结果文件开发完成总结.md- 本文档
修改文件
app.py- 调整解析接口,新增文档生成接口services/field_service.py- 新增字段查询方法requirements.txt- 添加新依赖库
⚡ 注意事项
-
环境变量配置
- 确保设置了
MINIO_ENDPOINT、MINIO_ACCESS_KEY、MINIO_SECRET_KEY - 确保设置了数据库连接信息
- 确保设置了
-
数据库表结构
- 确保
f_polic_file_config表有template_code字段 - 确保字段表
f_polic_field有正确的字段编码
- 确保
-
MinIO配置
- 确保MinIO服务可访问
- 确保存储桶存在
-
Word模板格式
- 占位符格式:
{{field_code}} - 字段编码需与数据库中的
filed_code一致
- 占位符格式: