Phase 0:research.md(10项技术决策,无需澄清项) Phase 1:data-model.md(11张表+Redis结构),contracts/(8个模块API契约),quickstart.md(Docker Compose启动+流水线验证) plan.md:宪章11条全部通过,项目结构确认
2.0 KiB
2.0 KiB
API 契约:问答生成阶段
GET /api/qa/{taskId}
权限: ANNOTATOR(且为任务持有者)
描述: 获取候选问答对列表(由提取阶段审批触发 AI 生成)
响应 200:
{
"code": "SUCCESS",
"data": {
"taskId": 202,
"sourceType": "TEXT",
"items": [
{
"id": 1001,
"question": "北京是哪个国家的首都?",
"answer": "中国",
"status": "PENDING_REVIEW"
}
]
}
}
PUT /api/qa/{taskId}
权限: ANNOTATOR(且为任务持有者)
描述: 修改问答对(整体覆盖,PUT 语义,每次提交包含完整 items 数组)
请求体:
{
"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}
失败:
403SELF_REVIEW_FORBIDDEN: 不允许审批自己提交的任务409INVALID_STATE: 任务状态不为 SUBMITTED
POST /api/qa/{taskId}/reject
权限: REVIEWER
描述: 驳回问答对,删除候选记录,任务状态 SUBMITTED → REJECTED
请求体: {"reason": "问题描述不准确,请修改"}
响应 200: {"code": "SUCCESS", "data": null}
失败:
403SELF_REVIEW_FORBIDDEN: 不允许驳回自己提交的任务400REASON_REQUIRED: 驳回原因不能为空