requirements.md 3.7 KB

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 输出错误详情并继续执行其他测试