⚠️ 自动镜像 · 此页由
docs-site/scripts/mirror-changelog.mjs从docs/changelogs/0.3.x.md生成,请勿直接编辑此处;改源文件后pnpm docs:build会自动同步。
Changelog — 0.3.x
[0.3.0] - 2026-04-28
新增
数据模型重构(P0 — 核心架构升级)
- 新增
organizations+organization_members表,为多租户预留 - 新增
ml_backends表,模型即 HTTP 服务(对标 Label Studio ML Backend 协议) - 新增
predictions表,与annotations彻底分离(核心架构决定) - 新增
prediction_metas表,记录推理耗时 / token 数 / 成本(LLM 时代记账基础) - 新增
failed_predictions表,失败推理也留痕 - 新增
task_locks表(防止多人同时标同一题)+annotation_drafts表(自动保存草稿) projects扩展 7 个字段:organization_id、label_config、sampling、maximum_annotations、show_overlap_first、model_version、task_lock_ttl_secondstasks扩展 5 个字段:is_labeled(索引)、overlap、total_annotations、total_predictions、precomputed_agreementannotations扩展 6 个字段:project_id、parent_prediction_id(AI 接管率追踪核心)、parent_annotation_id、lead_time、was_cancelled、ground_truth- Alembic 迁移
0002_p0_restructuring:含角色/状态数据迁移 + 8 张新表 + 3 张表扩展
枚举系统
- 新增
app/db/enums.py:UserRole / ProjectStatus / TaskStatus / MLBackendState / AnnotationSource / OrgMemberRole - 角色从中文字符串迁移为英文枚举(
"超级管理员"→"super_admin"等) - 项目状态从中文迁移为英文枚举(
"进行中"→"in_progress"等) - 种子脚本
seed.py同步更新为英文枚举值
后端服务层(7 个新 service)
StorageService:MinIO presigned URL 上传/下载(boto3 S3 兼容协议)MLBackendClient:ML 模型服务 HTTP 客户端(health / predict / predict_interactive / setup / versions)MLBackendService:ML Backend CRUD + 健康检查 + 获取项目交互式后端PredictionService:预测创建(含 PredictionMeta 成本记录)+ 失败记录 + 查询AnnotationService:标注 CRUD + accept_prediction(从预测派生标注)+ 草稿管理 + 统计更新TaskLockService:任务锁获取/释放/心跳续约/过期清理TaskScheduler(get_next_task):Next-task 调度,支持 sequence / uniform / uncertainty 三种采样策略
API 层
- 新增 5 组 Pydantic schemas:ml_backend / prediction / task / annotation / organization
- 新增 ML Backend 路由(8 个端点):CRUD + health + predict-test + interactive-annotating
- 新增文件上传路由(3 个端点):upload-init(presigned PUT)+ upload-complete + file-url(presigned GET)
- Tasks 路由从 stub 改为完整实现(14 个端点):包括 GET next、predictions 查询、accept prediction、task lock CRUD
- 新增批量预标注端点
POST /projects/{pid}/preannotate(触发 Celery 异步任务) ProjectOutschema 扩展新增字段
Celery 异步任务
celery_app.py配置(broker=Redis,task route: ml queue)batch_predict任务:逐批调用 ML Backend → 创建 Prediction + PredictionMeta → Redis Pub/Sub 进度推送ProgressPublisher服务:Redis 异步发布预标注进度
WebSocket
- 新增
WS /ws/projects/{pid}/preannotate端点,订阅 Redis Pub/Sub 推送预标注实时进度
前端基础设施
- 新增
types/index.ts扩展:Prediction / PredictionShape / MLBackend / TaskLock / TaskResponse / AnnotationResponse 等类型 - 新增
constants/roles.ts:英文枚举 → 中文显示映射(ROLE_LABELS / PROJECT_STATUS_LABELS / TASK_STATUS_LABELS) - 新增 3 个 API 模块:
ml-backends.ts/predictions.ts/files.ts - 新增 3 组 React hooks:
useMLBackends/useCreateMLBackend/useMLBackendHealth/useInteractiveAnnotateusePredictions/useAcceptPredictionusePreannotationProgress(WebSocket 订阅)/useTriggerPreannotation
- WorkbenchPage
Annotation.source对齐新枚举("human"→"manual","ai-accepted"→"prediction_based")
配置与基础设施
config.py新增ml_predict_timeout/ml_health_timeout/celery_broker_urlmain.py版本升至 0.2.0,注册 WebSocket 路由docker-compose.yml新增celery-worker服务
文档
- 调研报告拆分:47KB 单文件 →
docs/research/下 12 个独立文档(README 索引 + 按平台/主题分文件) - 便于持续开发中按需更新单个文档,无需编辑巨型文件
变更
Annotation.source语义变更:"human"/"ai"/"ai-accepted"→"manual"/"prediction_based"(AI 预测不再混入 annotations 表)- 角色字段从中文字符串改为英文枚举(影响 JWT payload、前端显示)
- 项目状态字段从中文改为英文枚举
- 数据库从 4 张表扩展到 12 张表