ai-business-write/测试指南.md

6.0 KiB
Raw Blame History

测试指南

前置条件

1. 安装依赖

pip install -r requirements.txt

2. 配置环境变量

创建或更新 .env 文件:

# AI服务配置
SILICONFLOW_API_KEY=your_api_key_here
SILICONFLOW_MODEL=deepseek-ai/DeepSeek-V3.2-Exp

# 数据库配置
DB_HOST=152.136.177.240
DB_PORT=5012
DB_USER=finyx
DB_PASSWORD=6QsGK6MpePZDE57Z
DB_NAME=finyx

# MinIO配置文档生成需要
MINIO_ENDPOINT=minio.datacubeworld.com:9000
MINIO_ACCESS_KEY=JOLXFXny3avFSzB0uRA5
MINIO_SECRET_KEY=G1BR8jStNfovkfH5ou39EmPl34E4l7dGrnd3Cz0I
MINIO_BUCKET=finyx
MINIO_SECURE=true

# 服务配置
PORT=7500
DEBUG=False

3. 初始化数据库

# 初始化所有字段和配置基于Excel解析结果
python init_all_fields_from_excel.py

# 更新现有配置的template_code字段如果有现有数据
python update_template_code_field.py

启动服务

python app.py

服务启动后:


测试步骤

1. 测试解析接口

使用curl命令

curl -X POST http://localhost:7500/ai/extract \
  -H "Content-Type: application/json" \
  -d '{
    "inputData": [
      {
        "fieldCode": "clue_info",
        "fieldValue": "被举报用户名称是张三年龄30岁某公司总经理男性1980年5月出生中共党员"
      }
    ],
    "outputData": [
      {"fieldCode": "target_name"},
      {"fieldCode": "target_gender"},
      {"fieldCode": "target_organization_and_position"}
    ]
  }'

使用测试脚本

python test_api.py

预期结果

{
  "code": 0,
  "data": {
    "outData": [
      {
        "fieldCode": "target_name",
        "fieldValue": "张三"
      },
      {
        "fieldCode": "target_gender",
        "fieldValue": "男"
      },
      {
        "fieldCode": "target_organization_and_position",
        "fieldValue": "某公司总经理"
      }
    ]
  },
  "msg": "ok",
  "isSuccess": true
}

2. 测试文档生成接口

注意: 此接口需要MinIO配置和模板文件在MinIO中存在。

使用curl命令

curl -X POST http://localhost:7500/ai/generate-document \
  -H "Content-Type: application/json" \
  -d '{
    "inputData": [
      {
        "fieldCode": "target_name",
        "fieldValue": "张三"
      },
      {
        "fieldCode": "target_gender",
        "fieldValue": "男"
      }
    ],
    "fpolicFieldParamFileList": [
      {
        "fileId": 1,
        "fileName": "初步核实审批表.doc",
        "templateCode": "PRELIMINARY_VERIFICATION_APPROVAL"
      }
    ]
  }'

预期结果

{
  "code": 0,
  "data": {
    "documentId": "DOC202411260001",
    "documentName": "初步核实审批表_张三.docx",
    "inputData": [...],
    "fpolicFieldParamFileList": [
      {
        "fileId": 1,
        "fileName": "初步核实审批表.doc",
        "filePath": "/202511261123/初步核实审批表.doc"
      }
    ]
  },
  "msg": "ok",
  "isSuccess": true
}

常见问题排查

1. 数据库连接失败

  • 检查数据库配置是否正确
  • 检查网络连接
  • 验证数据库服务是否运行

2. AI解析失败

  • 检查 SILICONFLOW_API_KEY 是否配置
  • 检查API密钥是否有效
  • 查看错误信息中的详细提示

3. 文档生成失败

  • 检查MinIO配置是否正确
  • 检查模板文件是否存在于MinIO
  • 检查 template_code 是否正确
  • 验证数据库中的文件配置是否存在

4. 字段查询失败

  • 运行 init_all_fields_from_excel.py 初始化字段
  • 检查字段编码是否与数据库一致
  • 验证字段类型是否正确(输入字段=1输出字段=2

验证清单

数据库验证

  • 所有字段已初始化
  • 文件配置存在且包含 template_code
  • 文件和字段关联关系正确

接口验证

  • 解析接口可以正常调用
  • 可以正确提取字段值
  • 文档生成接口可以正常调用
  • 生成的文档路径格式正确(相对路径)

功能验证

  • Word模板可以正确填充
  • 文件可以上传到MinIO
  • 返回的路径可以访问文件

测试数据示例

解析接口测试数据

{
  "inputData": [
    {
      "fieldCode": "clue_info",
      "fieldValue": "被举报用户名称是张三年龄30岁某公司总经理男性1980年5月出生中共党员正处级"
    },
    {
      "fieldCode": "target_basic_info_clue",
      "fieldValue": "张三汉族1980年5月出生山西太原人本科学历2000年参加工作2005年加入中国共产党。"
    }
  ],
  "outputData": [
    {"fieldCode": "target_name"},
    {"fieldCode": "target_gender"},
    {"fieldCode": "target_date_of_birth"},
    {"fieldCode": "target_political_status"},
    {"fieldCode": "target_professional_rank"},
    {"fieldCode": "target_organization_and_position"}
  ]
}

文档生成接口测试数据

{
  "inputData": [
    {"fieldCode": "target_name", "fieldValue": "张三"},
    {"fieldCode": "target_gender", "fieldValue": "男"},
    {"fieldCode": "target_organization_and_position", "fieldValue": "某公司总经理"},
    {"fieldCode": "target_date_of_birth", "fieldValue": "198005"},
    {"fieldCode": "target_political_status", "fieldValue": "中共党员"}
  ],
  "fpolicFieldParamFileList": [
    {
      "fileId": 1,
      "fileName": "初步核实审批表.doc",
      "templateCode": "PRELIMINARY_VERIFICATION_APPROVAL"
    }
  ]
}

性能测试

解析接口

  • 平均响应时间:< 5秒
  • 超时设置30秒

文档生成接口

  • 平均响应时间:< 10秒
  • 超时设置60秒

日志查看

服务日志会输出到控制台,包括:

  • 请求信息
  • 错误信息
  • 数据库操作
  • AI调用信息

下一步

  1. 完成所有测试项目
  2. 验证数据库数据完整性
  3. 测试生产环境配置
  4. 准备部署

最后更新: 2025-01-XX