# 执行解析任务 API 接口说明 ## 1. 接口基本信息 - **接口路径**:`/api/data_parse/execute_parse_task` - **请求方法**:`POST` - **请求类型**:`application/json` --- ## 2. 输入参数说明 | 参数名 | 类型 | 是否必填 | 说明 | | ------------- | ------- | -------- | ------------------------------------------------------------ | | task_type | string | 是 | 任务类型。可选值:`名片`、`简历`、`新任命`、`招聘`、`杂项` | | data | array | 是 | 任务数据列表。每种任务类型的数据结构不同,见下文 | | publish_time | string | 否(新任命必填) | 发布时间,仅`新任命`任务需要 | | process_type | string | 否 | 杂项任务时的处理类型,默认为`table` | | id | int | 是 | 解析任务ID(所有任务都必须传递,用于唯一标识任务) | > **注意:** `id` 字段为所有任务类型必填。 ### 2.1 data 字段结构 - **名片**:图片文件的MinIO路径或Base64字符串等(具体由后端约定) - **简历**:简历文件的MinIO路径或Base64字符串等 - **新任命**:Markdown文本内容数组 - **招聘**:招聘数据对象数组 - **杂项**:图片或表格等文件的MinIO路径或Base64字符串等 --- ## 3. 请求示例 ### 3.1 名片任务 ```json { "task_type": "名片", "data": [ "minio/path/to/card1.jpg", "minio/path/to/card2.jpg" ], "id": 123 } ``` ### 3.2 简历任务 ```json { "task_type": "简历", "data": [ "minio/path/to/resume1.pdf", "minio/path/to/resume2.pdf" ], "id": 124 } ``` ### 3.3 新任命任务 ```json { "task_type": "新任命", "data": [ "# 张三\n\n职位:总经理\n公司:XX酒店", "# 李四\n\n职位:市场总监\n公司:YY酒店" ], "publish_time": "2025-01-15", "id": 125 } ``` ### 3.4 招聘任务 ```json { "task_type": "招聘", "data": [ {"name": "王五", "position": "销售经理"}, {"name": "赵六", "position": "前台主管"} ], "id": 126 } ``` ### 3.5 杂项任务 ```json { "task_type": "杂项", "data": [ "minio/path/to/image1.png", "minio/path/to/image2.png" ], "process_type": "table", "id": 127 } ``` --- ## 4. 前端调用样例代码(JavaScript/axios) ```js import axios from 'axios'; async function executeParseTask() { const payload = { task_type: '名片', data: ['minio/path/to/card1.jpg', 'minio/path/to/card2.jpg'], id: 123 }; try { const response = await axios.post('/api/data_parse/execute_parse_task', payload); if (response.data.success) { console.log('解析成功:', response.data.data); } else { console.error('解析失败:', response.data.message); } } catch (error) { console.error('请求异常:', error); } } ``` --- ## 5. 输出结果说明 - **success**:布尔值,表示是否处理成功 - **message**:字符串,处理结果说明 - **data**:处理结果数据,结构依赖于任务类型 ### 5.1 返回示例(成功) ```json { "success": true, "message": "批量名片解析成功", "data": { "summary": { "total_count": 2, "success_count": 2, "failed_count": 0 }, "results": [ {"name": "张三", "mobile": "13800138000", ...}, {"name": "李四", "mobile": "13900139000", ...} ] } } ``` ### 5.2 返回示例(部分成功) ```json { "success": true, "message": "部分数据处理失败", "data": { "summary": { "total_count": 2, "success_count": 1, "failed_count": 1 }, "results": [ {"name": "张三", "mobile": "13800138000", ...}, {"error": "文件格式不支持"} ] } } ``` ### 5.3 返回示例(失败) ```json { "success": false, "message": "task_type参数不能为空", "data": null } ``` --- ## 6. 状态码说明 | 状态码 | 说明 | | ------ | -------------------------- | | 200 | 处理成功 | | 206 | 部分数据处理成功 | | 400 | 请求参数错误 | | 500 | 服务器内部错误/处理失败 | --- ## 7. 备注 - `task_type` 必须为后端支持的类型,否则会返回 400 错误。 - `data` 字段结构需与任务类型匹配。 - `publish_time` 仅在 `新任命` 任务时必填。 - 返回的 `data` 字段结构会根据任务类型和处理结果有所不同。 - `id` 字段为所有任务类型必填,用于唯一标识和更新任务状态。