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