Requirements Document
Introduction
本文档定义了标注平台外部API增强功能的需求,包括:
- 项目初始化接口增加标签传入功能
- 增加多边形标注类型支持
- 创建长期有效的管理员Token脚本
- 编写API测试脚本验证5种标注项目类型
Glossary
- External_API: 标注平台提供给外部系统(如样本中心)调用的API接口
- Tag: 标注标签,包含标签名称和可选的颜色属性
- Polygon_Annotation: 多边形标注类型,用于标注不规则形状区域
- Admin_Token: 管理员认证令牌,用于外部系统调用API
- Task_Type: 任务类型,定义标注项目的类型(文本分类、图像分类、目标检测、NER、多边形标注)
Requirements
Requirement 1: 项目初始化接口增加标签传入
User Story: As a 外部系统开发者, I want to 在创建项目时传入预定义的标签和颜色, so that 标注平台可以自动配置好标签选项,减少管理员手动配置工作。
Acceptance Criteria
- WHEN 外部系统调用项目初始化接口时传入tags参数, THE External_API SHALL 接受并存储标签列表
- WHEN tags参数中的标签包含color字段, THE External_API SHALL 使用指定的颜色
- WHEN tags参数中的标签不包含color字段, THE External_API SHALL 自动生成随机颜色
- WHEN 项目创建成功后, THE External_API SHALL 根据传入的tags自动生成对应的XML配置
- WHEN 管理员配置项目时, THE System SHALL 允许修改已传入的标签名称和颜色
- IF tags参数为空或未传入, THEN THE External_API SHALL 使用默认的空标签配置(与现有行为一致)
Requirement 2: 增加多边形标注类型支持
User Story: As a 标注人员, I want to 使用多边形工具标注不规则形状, so that 我可以精确标注非矩形的目标区域。
Acceptance Criteria
- THE External_API SHALL 支持新的任务类型 "polygon"
- WHEN 创建polygon类型项目时, THE External_API SHALL 生成包含PolygonLabels的XML配置
- WHEN 导出polygon类型标注数据时, THE Export_Service SHALL 正确处理多边形坐标数据
- THE System SHALL 在COCO和YOLO导出格式中支持多边形标注数据
Requirement 3: 创建长期管理员Token脚本
User Story: As a 系统管理员, I want to 生成一个长期有效的管理员Token, so that 外部系统可以使用该Token进行数据导入而无需频繁更新。
Acceptance Criteria
- THE Script SHALL 创建一个有效期为99999天的管理员Token
- THE Script SHALL 输出生成的Token到控制台
- THE Script SHALL 验证Token的有效性
- IF 管理员用户不存在, THEN THE Script SHALL 提示创建管理员用户
Requirement 4: 编写API测试脚本
User Story: As a 开发者, I want to 运行测试脚本验证所有标注类型的API功能, so that 我可以确保外部API接口正常工作。
Acceptance Criteria
- THE Test_Script SHALL 测试text_classification类型项目的创建、进度查询和导出
- THE Test_Script SHALL 测试image_classification类型项目的创建、进度查询和导出
- THE Test_Script SHALL 测试object_detection类型项目的创建、进度查询和导出
- THE Test_Script SHALL 测试ner类型项目的创建、进度查询和导出
- THE Test_Script SHALL 测试polygon类型项目的创建、进度查询和导出
- WHEN 测试包含tags参数时, THE Test_Script SHALL 验证标签是否正确应用到项目配置中
- THE Test_Script SHALL 输出每个测试的结果(成功/失败)和详细信息
- IF 任何测试失败, THEN THE Test_Script SHALL 输出错误详情并继续执行其他测试