ai-business-write/技术文档/智慧监督AI文书写作接口定义-20251204-2.md

425 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 修订历史
## V 0.3李季修订2025-12-05
### 主要调整内容
#### 1. **文档生成接口优化**
- 返回的 `fileName` 为实际生成的文档名称(.docx格式而不是请求中的原始文件名
- 返回的 `filePath` 指向实际生成的文档路径
- 移除返回数据中的 `inputData`,只返回文档生成相关信息
- 返回的文档数量与请求的文档数量一致
#### 2. **文档名称生成规则**
- 生成的文档名称为:`{基础名称}_{被核查人姓名}.docx`
- 如果没有被核查人姓名,则生成:`{基础名称}.docx`
- 所有生成的文档统一为 `.docx` 格式
## V 0.2,李季修订
### 主要调整内容
#### 1. **接口路径优化**
- `/paras``/ai/extract`
- `/getDocument``/ai/generate-document`
- *理由:更清晰的语义化路径*
#### 2. **字段名修正**
- `filedCode``fieldCode`
- `filedVal``fieldValue`
- *理由:修正拼写错误,保持专业规范*
#### 3. **关键参数补充**
**新增参数:**
- `templateCode`:文档模板标识
- `businessType`:业务类型分类
- `documentId`:文档唯一标识
- `documentName`:生成文档名称
#### 4. **返回结构增强**
- **解析接口**:保持简洁,去除置信度等复杂字段
- **生成接口**:增加`documentId``documentName`,完善文件信息
#### 5. **文件路径调整**
- 返回MinIO相对路径`/202511261123/请示报告卡.doc`
- *理由使用相对路径客户端可根据MinIO配置拼接完整URL*
#### 6. **错误码规范化**
- 明确业务相关错误码(模板不存在、占位符匹配失败等)
## V 0.1,陈涛提供
---
# 1. 解析接口
**地址**: `/ai/extract`
**请求方法**: POST
**请求参数**:
```json
{
"inputData": [
{
"fieldCode": "clue_info",
"fieldValue": "被举报用户名称是张三年龄30岁某公司总经理"
}
],
"outputData": [
{
"fieldCode": "target_name"
},
{
"fieldCode": "target_gender"
}
]
}
```
**返回参数**:
```json
{
"code": 0,
"data": {
"outData": [
{
"fieldCode": "target_name",
"fieldValue": "张三"
},
{
"fieldCode": "target_gender",
"fieldValue": "男"
}
]
},
"msg": "ok",
"path": null,
"extra": null,
"timestamp": "1764204337101",
"errorMsg": "",
"isSuccess": true
}
```
---
# 2. 文档生成接口
**地址**: `/ai/generate-document`
**请求方法**: POST
**请求参数**:
```json
{
"inputData": [
{
"fieldCode": "target_name",
"fieldValue": "张三"
},
{
"fieldCode": "target_gender",
"fieldValue": "男"
},
{
"fieldCode": "target_organization_and_position",
"fieldValue": "某公司总经理"
}
],
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "初步核实审批表.doc",
"templateCode": "PRELIMINARY_VERIFICATION_APPROVAL"
}
]
}
```
**返回参数**:
```json
{
"code": 0,
"data": {
"documentId": "DOC20251205090659148",
"documentName": "初步核实审批表_张三.docx",
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "初步核实审批表_张三.docx",
"filePath": "/615873064429507639/20251205090700/初步核实审批表_张三.docx"
}
]
},
"msg": "ok",
"path": null,
"extra": null,
"timestamp": "1764204337101",
"errorMsg": "",
"isSuccess": true
}
```
## 2.1 多文档生成示例
如果请求多个文档,返回对应数量的文档:
**请求参数**:
```json
{
"inputData": [
{
"fieldCode": "target_name",
"fieldValue": "张三"
},
{
"fieldCode": "target_gender",
"fieldValue": "男"
}
],
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "初步核实审批表.doc",
"templateCode": "PRELIMINARY_VERIFICATION_APPROVAL"
},
{
"fileId": 2,
"fileName": "请示报告卡.doc",
"templateCode": "REPORT_CARD"
}
]
}
```
**返回参数**:
```json
{
"code": 0,
"data": {
"documentId": "DOC20251205090659148",
"documentName": "初步核实审批表_张三.docx",
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "初步核实审批表_张三.docx",
"filePath": "/615873064429507639/20251205090700/初步核实审批表_张三.docx"
},
{
"fileId": 2,
"fileName": "请示报告卡_张三.docx",
"filePath": "/615873064429507639/20251205090700/请示报告卡_张三.docx"
}
]
},
"msg": "ok",
"isSuccess": true
}
```
## 2.2 重要说明
1. **返回的文档数量**: 与请求中的 `fpolicFieldParamFileList` 数量一致
- 请求1个文档返回1个文档
- 请求多个文档,返回多个文档
2. **返回的fileName**:
- 是实际生成的文档名称(.docx格式
- 不是请求中的原始文件名
- 格式:`{基础名称}_{被核查人姓名}.docx``{基础名称}.docx`
3. **返回的filePath**:
- MinIO相对路径
- 指向实际生成的文档文件
- 格式:`/租户ID/时间戳/文档名称.docx`
4. **文档名称生成规则**:
- 基础名称:从请求的 `fileName` 中提取(去掉扩展名)
- 如果 `inputData` 中包含 `target_name` 字段,则添加 `_{target_name}` 后缀
- 最终格式统一为 `.docx`
---
# 3. 错误码定义
| 错误码 | 说明 | 处理建议 |
| :----- | :------------- | :------------------------- |
| 0 | 成功 | - |
| 1001 | 模板不存在 | 检查templateCode是否正确 |
| 1002 | 占位符匹配失败 | 检查字段编码与模板是否匹配 |
| 2001 | AI解析超时 | 重新尝试解析 |
| 2002 | 字段识别失败 | 检查输入文本质量 |
| 3001 | 文件生成失败 | 重新尝试生成 |
| 3002 | 文件保存失败 | 检查存储服务状态 |
---
# 4. 字段说明
## 4.1 公共字段
- `templateCode`: 文档模板编码(必填)
- `fieldCode`: 字段编码需与Word模板中占位符一致
- `fieldValue`: 字段值
## 4.2 文件相关字段
- `fileId`: 文件唯一标识(请求和返回中保持一致)
- `fileName`:
- **请求中**: 原始文件名称(如 `初步核实审批表.doc`
- **返回中**: 实际生成的文档名称(如 `初步核实审批表_张三.docx`
- `filePath`: MinIO存储的相对路径返回中提供
## 4.3 返回字段
- `documentId`: 文档生成批次ID
- `documentName`: 第一个文档的生成名称(用于展示)
---
# 5. 使用流程
1. **解析阶段**: 调用 `/ai/extract`接口输入用户描述文本AI提取结构化数据
2. **生成阶段**: 调用 `/ai/generate-document`接口,传入解析结果和模板信息,生成填充后的文档
3. **下载文档**: 通过返回的filePath使用MinIO预签名URL或客户端拼接完整路径获取生成的文件
---
# 6. 注意事项
1. 字段编码(fieldCode)需与Word模板中的占位符严格对应
2. 未识别的字段在生成文档时会自动留空
3. 返回的filePath为MinIO相对路径需要客户端拼接MinIO访问地址
4. 生成的文档统一为.docx格式即使请求中的文件名为.doc
5. 如果某个文档生成失败,整个请求会返回错误,不会部分成功
6. 返回的文档数量与请求数量一致每个文档都有独立的fileId和filePath
---
# 7. 示例调用顺序
```json
// 1. 解析调用
请求: POST /ai/extract
{
"inputData": [
{"fieldCode": "clue_info", "fieldValue": "被举报用户名称是张三年龄30岁"}
],
"outputData": [
{"fieldCode": "target_name"},
{"fieldCode": "target_gender"}
]
}
响应:
{
"code": 0,
"data": {
"outData": [
{"fieldCode": "target_name", "fieldValue": "张三"},
{"fieldCode": "target_gender", "fieldValue": "男"}
]
},
"isSuccess": true
}
// 2. 生成调用(单文档)
请求: POST /ai/generate-document
{
"inputData": [
{"fieldCode": "target_name", "fieldValue": "张三"},
{"fieldCode": "target_gender", "fieldValue": "男"}
],
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "初步核实审批表.doc",
"templateCode": "PRELIMINARY_VERIFICATION_APPROVAL"
}
]
}
响应:
{
"code": 0,
"data": {
"documentId": "DOC20251205090659148",
"documentName": "初步核实审批表_张三.docx",
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "初步核实审批表_张三.docx",
"filePath": "/615873064429507639/20251205090700/初步核实审批表_张三.docx"
}
]
},
"isSuccess": true
}
// 3. 生成调用(多文档)
请求: POST /ai/generate-document
{
"inputData": [
{"fieldCode": "target_name", "fieldValue": "张三"},
{"fieldCode": "target_gender", "fieldValue": "男"}
],
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "初步核实审批表.doc",
"templateCode": "PRELIMINARY_VERIFICATION_APPROVAL"
},
{
"fileId": 2,
"fileName": "请示报告卡.doc",
"templateCode": "REPORT_CARD"
}
]
}
响应:
{
"code": 0,
"data": {
"documentId": "DOC20251205090659149",
"documentName": "初步核实审批表_张三.docx",
"fpolicFieldParamFileList": [
{
"fileId": 1,
"fileName": "初步核实审批表_张三.docx",
"filePath": "/615873064429507639/20251205090700/初步核实审批表_张三.docx"
},
{
"fileId": 2,
"fileName": "请示报告卡_张三.docx",
"filePath": "/615873064429507639/20251205090700/请示报告卡_张三.docx"
}
]
},
"isSuccess": true
}
```
---
# 8. 版本说明
- **V 0.3**: 优化文档生成接口返回结构,返回实际生成的文档名称和路径
- **V 0.2**: 接口路径优化,字段名修正,参数补充
- **V 0.1**: 初始版本