Requirements Document
Introduction
本文档定义了标注平台的任务分配与模板管理功能需求。该功能将完善现有平台的工作流程,实现从管理员(数据源)→ 任务派发 → 人员标注任务分配 → 数据收集 → 数据导出的完整闭环。主要包含两大模块:
- 人员分配管理:支持管理员将任务分配给特定标注人员,标注人员只能看到分配给自己的任务
- 标注模板管理:提供类似 LabelStudio 的模板选择界面和自定义 XML 配置编辑器
Glossary
- Task_Assignment_System: 任务分配系统,负责将标注任务分配给特定用户
- Template_Manager: 模板管理器,提供预设模板和自定义配置功能
- Annotator: 标注人员,负责执行具体的标注工作
- Admin: 管理员,负责创建项目、分配任务和管理用户
- Label_Config: 标注配置,使用 XML 格式定义标注界面和工具
- Template: 预设模板,包含常用的标注配置(如图像分类、文本标注等)
- Config_Editor: 配置编辑器,支持可视化编辑和代码编辑两种模式
- Assignment_Batch: 批量分配,支持一次性将多个任务分配给多个用户
- User_Workload: 用户工作量,统计用户的任务分配和完成情况
- Data_Export: 数据导出,将标注结果导出为标准格式
Requirements
Requirement 1: 用户管理与角色权限
User Story: 作为管理员,我想要管理系统用户和查看用户列表,以便我可以将任务分配给合适的标注人员。
Acceptance Criteria
- WHEN 管理员访问用户管理页面 THEN THE Task_Assignment_System SHALL 显示所有用户列表,包括用户名、邮箱、角色和创建时间
- WHEN 管理员筛选用户角色 THEN THE Task_Assignment_System SHALL 只显示匹配角色的用户
- WHEN 管理员搜索用户 THEN THE Task_Assignment_System SHALL 支持按用户名或邮箱模糊搜索
- THE Task_Assignment_System SHALL 显示每个用户的任务统计(已分配任务数、已完成任务数)
- WHEN 管理员查看用户详情 THEN THE Task_Assignment_System SHALL 显示该用户的所有任务列表和完成进度
Requirement 2: 任务分配功能
User Story: 作为管理员,我想要将任务分配给特定的标注人员,以便合理分配工作量。
Acceptance Criteria
- WHEN 管理员在任务列表选择任务 THEN THE Task_Assignment_System SHALL 显示分配按钮
- WHEN 管理员点击分配按钮 THEN THE Task_Assignment_System SHALL 显示用户选择对话框,列出所有标注人员
- WHEN 管理员选择用户并确认分配 THEN THE Task_Assignment_System SHALL 更新任务的 assigned_to 字段
- WHEN 任务被分配 THEN THE Task_Assignment_System SHALL 记录分配时间和分配人
- THE Task_Assignment_System SHALL 支持批量选择多个任务进行分配
- WHEN 管理员批量分配任务 THEN THE Task_Assignment_System SHALL 支持平均分配给多个用户
- IF 任务已有分配人员 THEN THE Task_Assignment_System SHALL 显示当前分配人员并允许重新分配
Requirement 3: 标注人员任务视图
User Story: 作为标注人员,我想要只看到分配给我的任务,以便专注于自己的工作。
Acceptance Criteria
- WHEN 标注人员访问任务列表 THEN THE Task_Assignment_System SHALL 只显示分配给该用户的任务
- WHEN 标注人员筛选任务状态 THEN THE Task_Assignment_System SHALL 在已分配任务范围内筛选
- THE Task_Assignment_System SHALL 显示任务的优先级和截止时间(如果设置)
- WHEN 标注人员点击任务 THEN THE Task_Assignment_System SHALL 打开标注界面
- THE Task_Assignment_System SHALL 在任务列表显示每个任务的完成进度
- WHEN 标注人员完成任务 THEN THE Task_Assignment_System SHALL 自动更新任务状态
Requirement 4: 预设模板库
User Story: 作为管理员,我想要从预设模板中选择标注配置,以便快速创建项目。
Acceptance Criteria
- WHEN 管理员创建项目时 THEN THE Template_Manager SHALL 显示模板选择界面
- THE Template_Manager SHALL 提供以下预设模板类别:
- 图像分类(Image Classification)
- 目标检测(Object Detection)
- 图像分割(Image Segmentation)
- 文本分类(Text Classification)
- 命名实体识别(Named Entity Recognition)
- 文本标注(Text Labeling)
- 音频转写(Audio Transcription)
- 视频标注(Video Annotation)
- WHEN 管理员选择模板 THEN THE Template_Manager SHALL 显示模板预览和说明
- WHEN 管理员确认选择模板 THEN THE Template_Manager SHALL 将模板配置填充到项目配置字段
- THE Template_Manager SHALL 支持模板搜索和筛选功能
- WHEN 管理员选择模板后 THEN THE Template_Manager SHALL 允许进一步自定义配置
Requirement 5: 自定义配置编辑器
User Story: 作为管理员,我想要自定义标注配置,以便满足特定的标注需求。
Acceptance Criteria
- THE Config_Editor SHALL 提供代码编辑模式,支持 XML 语法高亮
- THE Config_Editor SHALL 提供可视化编辑模式,通过拖拽组件构建配置
- WHEN 用户编辑配置 THEN THE Config_Editor SHALL 实时验证 XML 语法
- IF XML 语法错误 THEN THE Config_Editor SHALL 显示错误位置和错误信息
- THE Config_Editor SHALL 提供实时预览功能,显示标注界面效果
- WHEN 用户切换编辑模式 THEN THE Config_Editor SHALL 保持配置内容同步
- THE Config_Editor SHALL 提供常用标签的快捷插入功能
- THE Config_Editor SHALL 支持配置的导入和导出
Requirement 6: 可视化配置构建器
User Story: 作为管理员,我想要通过可视化界面构建标注配置,以便无需编写 XML 代码。
Acceptance Criteria
- THE Config_Editor SHALL 提供组件面板,包含所有可用的标注组件
- THE Config_Editor SHALL 支持以下组件类型:
- 数据源组件:Image, Text, Audio, Video, HyperText
- 标注工具:Choices, Labels, Rectangle, Polygon, Brush, KeyPoint
- 布局组件:View, Header, Style
- WHEN 用户拖拽组件到画布 THEN THE Config_Editor SHALL 自动生成对应的 XML 代码
- WHEN 用户选择组件 THEN THE Config_Editor SHALL 显示属性面板,允许编辑组件属性
- THE Config_Editor SHALL 支持组件的复制、删除和重新排序
- WHEN 用户修改组件属性 THEN THE Config_Editor SHALL 实时更新 XML 代码和预览
Requirement 7: 配置预览功能
User Story: 作为管理员,我想要预览标注配置的效果,以便在保存前确认配置正确。
Acceptance Criteria
- THE Config_Editor SHALL 提供预览面板,显示标注界面效果
- WHEN 配置更新 THEN THE Config_Editor SHALL 自动刷新预览
- THE Config_Editor SHALL 支持使用示例数据进行预览
- WHEN 用户提供自定义预览数据 THEN THE Config_Editor SHALL 使用该数据渲染预览
- IF 配置无效 THEN THE Config_Editor SHALL 在预览面板显示错误信息
- THE Config_Editor SHALL 支持预览面板的全屏模式
Requirement 8: 数据导出功能
User Story: 作为管理员,我想要导出标注结果,以便用于模型训练或其他用途。
Acceptance Criteria
- WHEN 管理员在项目详情页点击导出 THEN THE Data_Export SHALL 显示导出选项对话框
- THE Data_Export SHALL 支持以下导出格式:
- JSON(原始格式)
- CSV(表格格式)
- COCO(目标检测格式)
- YOLO(YOLO 格式)
- WHEN 管理员选择导出格式并确认 THEN THE Data_Export SHALL 生成并下载导出文件
- THE Data_Export SHALL 支持筛选导出范围(全部、已完成、指定状态)
- THE Data_Export SHALL 在导出文件中包含任务元数据和标注结果
- WHEN 导出大量数据 THEN THE Data_Export SHALL 显示进度指示器
Requirement 9: 标注进度与完成度统计
User Story: 作为管理员,我想要查看标注工作的进度和完成度统计,以便监控项目进度和人员工作量。
Acceptance Criteria
- THE Task_Assignment_System SHALL 在项目详情页显示统计面板
- THE Task_Assignment_System SHALL 统计以下项目级指标:
- 总任务数、已完成数、进行中数、待处理数
- 项目整体完成进度百分比
- 总标注数据条数、已标注条数、未标注条数
- THE Task_Assignment_System SHALL 统计以下人员级指标:
- 各标注人员的任务分配数和完成数
- 各标注人员的标注数据条数
- 各标注人员的完成率
- WHEN 管理员查看任务详情 THEN THE Task_Assignment_System SHALL 显示该任务的标注进度(已标注/总数)
- THE Task_Assignment_System SHALL 提供进度条可视化展示完成度
- WHEN 标注人员完成一条数据标注 THEN THE Task_Assignment_System SHALL 实时更新进度统计
- THE Task_Assignment_System SHALL 在任务列表显示每个任务的完成进度百分比