ai-business-write/开发完成总结.md

4.9 KiB
Raw Blame History

开发完成总结

已完成的工作

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
  • 不再返回绝对路径

⚠️ 重要变更点

  1. 数据库字段变更

    • f_polic_file_config 表新增 template_code 字段
    • 不再写入 input_data 字段(只读取)
  2. 字段查询逻辑

    • 通过 fieldCode 从数据库查询字段配置
    • 不再依赖 business_type 参数
  3. 路径格式

    • 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"
      }
    ]
  }'

📁 新增/修改的文件

新增文件

  1. services/document_service.py - 文档生成服务
  2. parse_excel_fields.py - Excel解析脚本
  3. parsed_fields.json - 解析结果文件
  4. 开发完成总结.md - 本文档

修改文件

  1. app.py - 调整解析接口,新增文档生成接口
  2. services/field_service.py - 新增字段查询方法
  3. requirements.txt - 添加新依赖库

注意事项

  1. 环境变量配置

    • 确保设置了 MINIO_ENDPOINTMINIO_ACCESS_KEYMINIO_SECRET_KEY
    • 确保设置了数据库连接信息
  2. 数据库表结构

    • 确保 f_polic_file_config 表有 template_code 字段
    • 确保字段表 f_polic_field 有正确的字段编码
  3. MinIO配置

    • 确保MinIO服务可访问
    • 确保存储桶存在
  4. Word模板格式

    • 占位符格式:{{field_code}}
    • 字段编码需与数据库中的 filed_code 一致