84 lines
2.0 KiB
Markdown
84 lines
2.0 KiB
Markdown
|
|
# API 契约:问答生成阶段
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## GET /api/qa/{taskId}
|
|||
|
|
|
|||
|
|
**权限**: ANNOTATOR(且为任务持有者)
|
|||
|
|
**描述**: 获取候选问答对列表(由提取阶段审批触发 AI 生成)
|
|||
|
|
|
|||
|
|
**响应** `200`:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": "SUCCESS",
|
|||
|
|
"data": {
|
|||
|
|
"taskId": 202,
|
|||
|
|
"sourceType": "TEXT",
|
|||
|
|
"items": [
|
|||
|
|
{
|
|||
|
|
"id": 1001,
|
|||
|
|
"question": "北京是哪个国家的首都?",
|
|||
|
|
"answer": "中国",
|
|||
|
|
"status": "PENDING_REVIEW"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## PUT /api/qa/{taskId}
|
|||
|
|
|
|||
|
|
**权限**: ANNOTATOR(且为任务持有者)
|
|||
|
|
**描述**: 修改问答对(**整体覆盖,PUT 语义**,每次提交包含完整 items 数组)
|
|||
|
|
|
|||
|
|
**请求体**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"items": [
|
|||
|
|
{
|
|||
|
|
"question": "北京是哪个国家的首都?",
|
|||
|
|
"answer": "中国。北京自1949年起成为中华人民共和国的首都。"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应** `200`: `{"code": "SUCCESS", "data": null}`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## POST /api/qa/{taskId}/submit
|
|||
|
|
|
|||
|
|
**权限**: ANNOTATOR(且为任务持有者)
|
|||
|
|
**描述**: 提交问答对,任务状态 IN_PROGRESS → SUBMITTED
|
|||
|
|
|
|||
|
|
**响应** `200`: `{"code": "SUCCESS", "data": null}`
|
|||
|
|
**失败**: `409` `INVALID_STATE`: 任务当前状态不允许提交
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## POST /api/qa/{taskId}/approve
|
|||
|
|
|
|||
|
|
**权限**: REVIEWER
|
|||
|
|
**描述**: 审批通过。同一事务中:先校验任务 → training_dataset 状态 → 任务状态 SUBMITTED → APPROVED → source_data 状态 → 写任务历史
|
|||
|
|
|
|||
|
|
**响应** `200`: `{"code": "SUCCESS", "data": null}`
|
|||
|
|
**失败**:
|
|||
|
|
- `403` `SELF_REVIEW_FORBIDDEN`: 不允许审批自己提交的任务
|
|||
|
|
- `409` `INVALID_STATE`: 任务状态不为 SUBMITTED
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## POST /api/qa/{taskId}/reject
|
|||
|
|
|
|||
|
|
**权限**: REVIEWER
|
|||
|
|
**描述**: 驳回问答对,删除候选记录,任务状态 SUBMITTED → REJECTED
|
|||
|
|
|
|||
|
|
**请求体**: `{"reason": "问题描述不准确,请修改"}`
|
|||
|
|
**响应** `200`: `{"code": "SUCCESS", "data": null}`
|
|||
|
|
**失败**:
|
|||
|
|
- `403` `SELF_REVIEW_FORBIDDEN`: 不允许驳回自己提交的任务
|
|||
|
|
- `400` `REASON_REQUIRED`: 驳回原因不能为空
|