⚠️ 自动镜像 · 此页由
docs-site/scripts/mirror-changelog.mjs从ROADMAP/[archived]0.9.x.md生成,请勿直接编辑此处;改源文件后pnpm docs:build会自动同步。
v0.9.x — Grounded-SAM-2 接入(首版 AI 基座) 🗄️ ARCHIVED
🗄️ 已归档(2026-05-08) — v0.9.x 系列已完整收尾(M0+M1+M2+M3+M4+M5 + chip 包 + ADR-0012/0013)。本文件保留作历史参考与切片依据,不再列入 ROADMAP.md 顶部活跃版本。剩余文档同步(ml-backend-protocol §2 / sam-tool 用户手册 / ai-preannotate 用户手册 / ai-models.md 部署章节)与真实 SAM mask 50 张验收已迁移到 ../ROADMAP.md §A AI/模型 与 §B 文档。后续 SAM 演进见
[archived]0.10.x.md(与 Grounded-SAM-2 并存)。
状态:M0+M1+M2+M3+M4+M5 全落地(M0
01f8d45/ 2026-05-07;M1 v0.9.1 / 2026-05-07;M2 v0.9.2 / 2026-05-07;v0.9.3 phase 1/2/3 / 2026-05-07;v0.9.4 phase 1 / 2026-05-08c5eaf94;v0.9.4 phase 2 Crystal Compass / 2026-05-08;v0.9.4 phase 3 Polished Contour / 2026-05-08;v0.9.5 Async Oasis / 2026-05-08)。v0.9.5 把/ai-pre文本批量 UI + 类别英文 alias + Batch pre_annotated + chip 包 + 运维收口一次性收齐。剩余工具栏 UX(Tooltip / hotkey 角标 / 抽屉 / 数字键 1-4 切工具)+ 截图自动化 14 张实跑回填留 v0.9.6 独立 epic。后续 v0.10.x 在此基础上新增(不替换)SAM 3 backend,详见[archived]0.10.x.md。一期范围:模式 A(文本批量预标)+ 模式 B(点 / 框 → mask 交互式精修)。不做 exemplar prompt(→ v0.10.x)、视频追踪、训练闭环。
版本切片调整记录(2026-05-08):原计划 v0.9.3 = M3、v0.9.4 = M4、v0.9.5 = M5。实施期 v0.9.3 三个 phase 全部用于"前端杂项收口 + 模型市场激活 + ML Backend 注册端到端"(这些发现在 M2 后才浮现),M3-M5 顺势后挪一档:v0.9.4 phase 1 已落 SAM 真接通基础设施,phase 2 落 SAM UX 完善(子工具栏 + text 输出选择),phase 3 落 M3 mask→polygon 调参;v0.9.5 合并 M4 + M5。
1. 链路与硬件
text: GroundingDINO-T → N boxes → SAM 2.1 tiny → masks → polygons
point/bbox: 直接喂 SAM 2.1 image_predictor- 默认变体:
DINO-T + SAM 2.1 tiny(速度优先),运维 envDINO_VARIANT/SAM_VARIANT切大模型。 - License:Grounded-SAM-2 / GroundingDINO / SAM 2 全 Apache 2.0,商用无忧。
- Python 3.10 + PyTorch 2.3 + CUDA 12.1(与 v0.10.x SAM 3 的 3.12 / 2.7 / 12.6 不兼容 → 必须独立服务进程)。
- 文本提示英文为主:中文需翻译层(M2 处理)。
实测延迟(RTX 4060 8GB / driver 580,公交车样图):
| prompt 类型 | 首次延迟 | 召回 |
|---|---|---|
| bbox | 2408ms | 1 polygon, score 0.82 |
| text "person" | 3559ms | 4 polygon, score 0.98(4 人全召回) |
| point | 1602ms | 1 polygon, score 0.84 |
首次延迟含 SAM image embedding 计算;M1 LRU 缓存后同图二次点击应 < 50ms。
2. 平台对接面(v0.9.0 后状态)
已就位
| 组件 | 位置 |
|---|---|
ml_backends 表 + is_interactive | apps/api/app/db/models/ml_backend.py |
MLBackendClient.predict_interactive | apps/api/app/services/ml_client.py |
协议 context.type = "text" | v0.8.6 已扩,ml-backend-protocol.md §2.2 |
apps/_shared/mask_utils/ 共享包骨架 | v0.8.6 已就位 |
| ML Backend 周期健康检查(Celery beat 60s + 抖动) | v0.8.6 |
Project.ml_backend_id + GeneralSection / Wizard 绑定 | v0.8.6 |
| 失败预测重试 UI / 预测成本卡片 | v0.8.6(/admin/failed-predictions + /admin/prediction-cost-stats) |
apps/grounded-sam2-backend/ 容器化(4 端点 + 3 prompt 分流) | v0.9.0 (01f8d45) |
SAM 2 image embedding LRU + Prometheus + /cache/stats | v0.9.1 |
已就位(v0.9.2 后追加)
| 组件 | 位置 |
|---|---|
工作台 S 工具 + 紫虚线候选 + Enter/Esc/Tab | apps/web/src/pages/Workbench/state/useInteractiveAI.ts、stage/tools/SamTool.ts、stage/ImageStage.tsx samProbe |
| AI 助手 SAM 文本入口 | shell/AIInspectorPanel.tsx SamTextPanel |
| DINO 阈值项目级 override | db/models/project.py + 0048_project_dino_thresholds + api/v1/ml_backends.py ctx 注入 |
已就位(v0.9.3 + v0.9.4 phase 1 后追加)
| 组件 | 位置 |
|---|---|
| 前端 ML Backend 注册 / 编辑 / 删除 / 健康检查 UI | apps/web/src/pages/Projects/sections/MlBackendsSection.tsx、components/projects/MlBackendFormModal.tsx、pages/ModelMarket/RegisteredBackendsTab.tsx (v0.9.3 phase 3) |
useUpdateMLBackend / useDeleteMLBackend + 双 invalidate | apps/web/src/hooks/useMLBackends.ts (v0.9.3 phase 3) |
| 后端 task.file_path → SAM 可达 presigned URL 解析 | apps/api/app/api/v1/ml_backends.py _resolve_task_url + Settings.ml_backend_storage_host (v0.9.4 phase 1, c5eaf94) |
| Settings 从 repo root .env 绝对路径加载(修复 cwd 踩坑) | apps/api/app/config.py (v0.9.4 phase 1) |
| 模型市场激活 / 失败预测 Tab 合并 | /model-market 页(v0.9.3 phase 2 Merged Market) |
| API 密钥 + progressive CAPTCHA + IoU rbush + DropdownMenu 收编 | v0.9.3 phase 1 Refactored Lighthouse |
v0.9.x 剩余缺口
| 缺口 | 影响 | 计划 |
|---|---|---|
SAM S 工具点 / 框 prompt 隐式分流 | 新人不可见 Alt+click negative point;三种 prompt UI 上无显式分组 | v0.9.4 phase 2(SAM 子工具栏拆分 P1) |
| SAM text 模式固定输出 polygon | image-det 项目要的是 bbox,拿到 polygon 还得手转;mask 步骤 GPU 时间贵 | v0.9.4 phase 2(box / mask / both 三选一 P1,与子工具栏共用 T 文本 UI) |
mask_to_polygon 仍嵌在 predictor.py | 与 v0.10.x sam3-backend 无法共享 | v0.9.4 phase 3(M3 抽到 apps/_shared/mask_utils/,迁移自旧 v0.9.3 计划) |
/ai-pre 路由仍是 PlaceholderPage | 文本批量预标无入口 | v0.9.5(M4,迁移自旧 v0.9.4 计划) |
| backend 显存监控 / ADR-0012/0013 / 部署文档 | 运维收口 | v0.9.5(M5) |
| SAM E2E 完整路径 | 链路守卫弱(仅靠 vitest) | v0.9.4 phase 3 收口前补 + /_test_seed 加 ML backend 工厂 |
3. 架构要点
3.1 部署拓扑
apps/api (FastAPI 3.11) ──HTTP /predict──▶ grounded-sam2-backend
FastAPI + PyTorch 2.3 + CUDA 12.1
GroundingDINO + SAM 2.1
+ LRU embedding cache(SAM 侧,M1)- 独立 docker-compose service,
profiles: ["gpu"]+ nvidia device reservation + healthcheckstart_period=120s - 镜像基于
pytorch/pytorch:2.3.1-cuda12.1-cudnn8-devel(devel 必需:GroundingDINO Deformable Attention 算子要 nvcc 现场编译) TORCH_CUDA_ARCH_LIST=7.0;7.5;8.0;8.6;8.9;9.0(V100/T4/A100/RTX30/RTX40/H100 全覆盖)
3.2 vendor 策略(已决)
vendor copy 到 apps/grounded-sam2-backend/vendor/grounded-sam-2/(commit b7a9c29),通过 scripts/sync_vendor.sh 一键同步上游;.gitattributes 标 linguist-vendored=true。
3.3 协议扩展(已落)
context.type 加 "text":
{ "type": "point", "points": [[x,y]], "labels": [1] }
{ "type": "bbox", "bbox": [x1,y1,x2,y2] }
{ "type": "text", "text": "ripe apples" } // v0.9.x 新增
// { "type": "exemplar", ... } // v0.10.x SAM 3返回 result[] 数组(多实例多 polygon)。
3.4 mask → polygon
当前 predictor.py 内嵌 cv2.findContours + shapely.simplify(tolerance, preserve_topology=True),目标 50-200 顶点。M3 评估 IoU 后抽到 apps/_shared/mask_utils/,v0.10.x 直接复用。
3.5 image embedding 缓存(M1)
Key: sha1(file_path) + sam2_variant
Value: SAM 2 image embedding tensor
Size: LRU cap = 16(4060)/ 32(3090+)只缓存 SAM 2 侧;GroundingDINO 端不缓存(每次 prompt 不同,命中率低)。
3.6 不做的事
- ❌ exemplar prompt(→ v0.10.x SAM 3)
- ❌ 视频 / Active Learning / 训练闭环
- ❌ 运行时多变体共存 UI(运维改 env 重启即可)
- ❌ Florence-2 / DINO-X 等 Grounded-SAM-2 可选高级模块(一期只走 DINO-T + SAM 2.1 tiny 主链)
4. 版本切片
v0.9.0 — backend 容器化(M0)✅ 已落地(01f8d45,~5 工作日)
apps/grounded-sam2-backend/ 4 端点(/health /setup /versions /predict)+ 三种 prompt 同一端点按 body shape 分流 + checkpoints 启动脚本(HuggingFace 拉 DINO-T + SAM 2.1 tiny)+ docker-compose GPU profile + 协议 text 类型 + 实跑验证。
实跑过程修了 4 个 vendor 接入侧 bug(详见 commit message):SAM 2 hydra config 路径、vendor 内 sys.path 兜底、httpx follow_redirects(MinIO presigned 301)、transformers 版本 pin。
v0.9.1 — embedding 缓存(M1,~3 工作日)✅ 已落地(2026-05-07)
- [x]
embedding_cache.py:LRU(maxsize=16),按sha1(url_path|sam_variant)(剥 query string) - [x]
predictor.py接缓存:三种 prompt 全覆盖;point/bbox 命中可同时跳过_fetch_image() - [x]
/cache/stats端点 - [x] Prometheus metrics:
embedding_cache_hits_total/embedding_cache_misses_total/embedding_cache_size/inference_latency_seconds{prompt_type,cache} - [x]
docs-site/dev/architecture/ai-models.md写缓存策略 + 显存预算 + Prometheus 查询
验收:连续点同图 5 次,第 1 次 ≤ 500ms(4060),第 2-5 次 ≤ 50ms。计划 docs/plans/2026-05-07-v0.9.1-declarative-feather.md。
v0.9.2 — 工作台 S 工具 + 文本入口(M2,~6 工作日)✅ 已落地(2026-05-07)
- [x] 工作台新增工具
S(SAM 模式):点击=positive point / Alt+点击=negative point / 拖框=bbox - [x] 右侧栏 AI 助手新增「文本提示」输入框 + 「找全图」按钮(仅
S模式可见) - [x]
useInteractiveAIhook:按 prompt 类型路由 - [x]
中→英翻译开关→ §5 决策 1:v0.9.2 不做(无 LLM client 基础设施),改为输入框 hint「英文 prompt 召回最佳」 - [x] 返回 polygon 以「待确认紫虚线」叠加在 Konva canvas,
Enter接受 /Esc取消 /Tab切候选 - [x] 防抖:runPoint 80ms 合并;inflight 计数防过期请求覆盖新候选
- [x] 单测:
useInteractiveAI10 case +hotkeysS 键 + 后端interactive-annotating阈值注入 3 case - [x] 额外:DINO
box_threshold/text_threshold项目级 override(§5 决策 2 同窗口完成) - [ ] E2E:
annotation.spec加 SAM 路径 → 推迟到 v0.9.3 / M3 收口前补(需/_test_seedML backend 工厂)
验收:标注员用 SAM 工具 10 分钟内标完 50 张图,AI 接管率 ≥ 60%;文本 "person" 在 3 张含人图都能返回正确 polygon。计划 docs/plans/2026-05-07-v0.9.2-luminous-canvas.md。
v0.9.3 — 前端杂项收口 + ML Backend 全链路注册(三 phase,~3 工作日)✅ 已落地(2026-05-07)
范围调整说明:原计划本版做 M3 mask→polygon 调参,但 M2 落地后实施期发现"前端 ML Backend 注册入口缺失"等几条更紧迫问题(前端注册 UI 缺位让 PROJECT_ADMIN 无法自服务接 backend;提示文案指向不存在的 tab)。本版改做"前端杂项收口 + 模型市场激活 + ML Backend 注册端到端",M3 顺势挪到 v0.9.4 phase 3(在 SAM UX 完善后再调更合理,能拿到真实标注样本数据)。
- [x] phase 1 (Refactored Lighthouse):API 密钥端到端(
api_keys表 +/me/api-keysCRUD +ak_token +ApiKeysModal)+ 超管 ML 集成总览(/admin/ml-integrations)+ 登录 progressive CAPTCHA(Redis IP 计数 + Turnstile 阈值后强制)+ IoU rbush 加速(同类分桶 + 候选裁剪)+ DropdownMenu 收编。计划docs/plans/2026-05-07-v0.9.3-phase1-refactored-lighthouse.md。 - [x] phase 2 (Merged Market):三页合二激活模型市场 — 删
/admin/ml-integrations与/admin/failed-predictions,合并到/model-market(Tabs?tab=backends|failed);Sidebar 「模型市场」失败预测 > 0 时显红色 danger 徽章。计划docs/plans/2026-05-07-v0.9.3-phase2-merged-market.md。 - [x] phase 3 (Happy Meadow):前端接通 ML Backend 注册能力 —
MlBackendsSection(项目设置「ML 模型」选项卡)+MlBackendFormModal(注册 / 编辑 / 删除 / 健康检查)+RegisteredBackendsTab由只读改可写;useUpdateMLBackend/useDeleteMLBackend补齐;四个写 mutation 双 invalidate。计划docs/plans/2026-05-07-v0.9.3-phase3-ml-backend-registration.md。
v0.9.4 — SAM 真接通 + UX 完善 + M3 调参(三 phase,~5 工作日,进行中)
[x] phase 1 (Bridged Pasture):后端 task.file_path → SAM 可达 presigned URL 解析。v0.9.3 phase 3 让 PROJECT_ADMIN 能注册 backend 后第一次实跑
S工具立刻 500 — 根因是ml_backends.py直接透传 MinIO 对象 key,SAM 协议要求http(s)://URL 且 SAM 容器在 docker 网内访问不到 host 的localhost:9000。新增_resolve_task_url(task)helper(generate_download_url()+ 按dataset_item_id自动选 bucket + 按ML_BACKEND_STORAGE_HOST重写 host);predict-test+interactive-annotating两处统一调用;Settings.Config.env_file改 repo root 绝对路径修复 cwd 踩坑。Linux/macOS-Win/K8s 三场景 .env 注释。commitc5eaf94。[x] phase 2 (SAM UX 完善 — 子工具栏 + text 输出选择,~2.5 天) ✅ 已落地(2026-05-08, Crystal Compass):
接 SAM 后第一次实跑暴露的核心 UX 问题:①
S工具点击 / 拖动隐式分流 prompt 类型(单击=点 / Alt+点击=negative / 拖框=bbox),新人不可见;② text 模式永远出 polygon,对 image-det 项目反而是负担。两个改动共用 T 文本子工具的 UI 改动,必须同窗口落。- [x] SAM 子工具栏拆分:
S激活后浮出[· 点 (1)] [□ 框 (2)] [T 文本 (3)]+[+/−]polarity 切换;当前激活子工具决定接受的鼠标行为,消除隐式分流;视觉 active state 标明当前 prompt 类型。 - [x] 数据模型:
Tool联合扩"sam-point" | "sam-bbox" | "sam-text"或加samSubTool子态;SamTool.ts拆三个独立*Toolexport;ImageStage.tsx的samProbe分流逻辑下移到 tool 层。 - [x] 协议扩展(小):
apps/grounded-sam2-backend/schemas.pyContext加output: Literal["box","mask","both"] = "mask"+/setup返回值加supported_prompts: ["point","bbox","text"],前端按 backend 实际能力动态渲染按钮(老 backend 缺字段时走旧路径)。 - [x] text 模式三选一输出:AI 助手面板文本输入框右侧加 segmented control
[□ 框] [○ 掩膜] [⊕ 全部];按项目 type_key 智能默认(image-det → box、image-seg → mask、其它→ both);用户切换写 sessionStoragewb:sam:textOutput:{projectId}记忆。 - [x] 后端 predictor.py text 路径三分支:
box完全跳过set_image()+ SAM 推理(cache 不写入),仅 DINO 出 boxes 直归一化为 rectanglelabels;mask当前行为;bothDINO + SAM 配对返回。 - [x] 前端候选叠加层:按
result[i].type分别渲染 box / polygon;both模式 Tab 切活跃候选 + 对应形态高亮,Enter 接受当前活跃。 - [x] 快捷键:
1/2/3切子工具;+/−切 polarity;Esc退出。 - [x] 截图自动化:新增 1 张子工具栏特写 + 1 张 text 三模式对比图。
验收:① 三种 prompt 在子工具栏明确可见,新人不需文档自行发现 negative point;② image-det 项目用 text "person" 出 box(不出 polygon),单图仅 DINO ~50-100ms(4060 / tiny)相比当前全链路 200-500ms 显著快;③ image-seg 项目 text 仍出 polygon 行为不变。
- [x] SAM 子工具栏拆分:
[x] phase 3 (Polished Contour — mask→polygon 共享化 + tolerance 注入 + SAM E2E,~2 天) ✅ 已落地(2026-05-08):
- [x]
apps/_shared/mask_utils/真接入 grounded-sam2-backend(删 inline_mask_to_polygon;docker-compose context 升 apps/、DockerfileCOPY _shared/mask_utils + pip install -e;polygon.py 补拓扑兜底;normalize.py round(6) 对齐协议精度) - [x]
scripts/eval_simplify.py(mask png 目录 × 5 档 tolerance × IoU + 顶点数 markdown 报告) - [x] 选定默认
DEFAULT_SIMPLIFY_TOLERANCE = 1.0+Context.simplify_tolerancebody 字段注入(改 query string 为 body 字段:schemas.pyContext 加字段,与output同位;query string 不实现,运维 / dev 通过 ctx 注入足够) - [x] 顶点 > 200 触发
logger.warning("polygon vertex count %d > 200 ...")(非阻塞运维信号) - [x] SAM E2E 完整路径(
annotation.spec.ts新 SAM 工具用例 +_test_seed.seed_reset加MLBackend(name="E2E SAM Mock")工厂 +project.ai_enabled=True自动绑定 +SeedReset.ml_backend_id字段;page.route(/\/interactive-annotating/)拦截 mock backend 响应) - [x]
docs/research/13-simplify-tolerance-eval.md首版报告(6 张合成占位 mask × 5 tolerance;真实 SAM mask 由 maintainer 在 GPU 环境采集后重跑) - [x] backend 单测 4 case
test_simplify_tolerance_injection.py(高低 tolerance 顶点数差异 + 默认值 + WARN 触发 / 不触发)
实际验收:mask_utils 9/9 + grounded-sam2-backend 23/23 + api seed/ml_backend 16/16 全绿;6 张合成 mask 100% IoU≥0.95;E2E spec 验证子工具栏可见 + sub 按钮互斥 + page.route mock 命中。真实 SAM mask 50 张验收推迟到 maintainer 倾倒 fixture 后补。
- [x]
v0.9.5 — /ai-pre 文本批量预标 UI + 类别英文 alias + 运维收口(Async Oasis,~3 工作日)✅ 已落地(2026-05-08)
M4 + M5 + chip 包合并版本。原计划 ~6.5 天,实际 ~3 天落地(类别 alias 取代翻译开关 + 既有
/preannotate端点 /batch_predicttask 70% 骨架已就位让前端连接成本骤降)。
- [x]
AIPreAnnotatePage.tsx替 PlaceholderPage:项目下拉 → batch → 文本 prompt(含类别 alias chips 一键填)→ outputMode segmented → WS 实时进度 - [x] 后端
POST /projects/{id}/preannotate扩{prompt, batch_id, output_mode}字段;指定 batch 时校验归属 + active 状态 - [x] Celery
batch_predict扩参 prompt + output_mode + batch_id;prompt 非空时透传 ctx;末尾自动 active → pre_annotated - [x] WebSocket 进度推送(v0.9.0 既有 ws-protocol)
- [x] AdminDashboard 「AI 预标注队列」卡片 + Sidebar 「ai-pre」徽章接真数据(
AdminDashboardStats.pre_annotated_batches) - [x] 跑完后 batch 自动转
pre_annotated(BatchStatus.PRE_ANNOTATED+VALID_TRANSITIONS加合法迁移 +REVERSE_TRANSITIONS加 owner 兜底重置;零迁移 —status是 String(30) 非 enum) - [x] 类别英文 alias(取代中→英翻译开关):
ClassConfigEntry.alias字段(ASCII-only^[a-zA-Z0-9 ,_\-]+$max=50)+ ClassEditor UI + SamTextPanel + AIPreAnnotatePage alias chips。零运行时 LLM 依赖 - [x] backend 显存监控进
/health响应 body(gpu_info+cache子对象,旧字段 backward-compat) - [x] ADR-0012:SAM 系列 backend 独立 GPU 服务化
- [x] ADR-0013:mask→polygon 后端化
- [x]
docs-site/dev/deploy.md§8.5 GPU 节点部署章节 - [x] chip 包:AI 助手「本题花费 X 元」单条透传(
PredictionOut加 cost / inference_time_ms 字段 + outerjoin PredictionMeta);text_output_default项目级字段(迁移 0050 + GeneralSection 下拉,把 v0.9.4 phase 2 的 sessionStorage 兜底转持久化);GeneralSection AI 绑定 UX 解耦(MlBackendsSection 行内「绑定到本项目」按钮);9 处 sparkles 重整 +docs-site/dev/icon-conventions.md
实际验收:后端 303/303 全绿(含新增 17 case:jsonb 4 + batch_pre_annotated 8 + preannotate_text 5)+ 前端 vitest 347/347 + tsc 0 error + OpenAPI snapshot 已重新生成。
未落地,留 v0.9.6 独立 epic:工具栏 Tooltip 组件 + hotkey 角标 + 激活态强化 + 分组分隔;数字键 1/2/3/4 直跳工具(与 setClassByDigit 1-9 切类别冲突,需 target.tagName 区分调研);SAM 子工具栏改右展开抽屉;截图自动化 14 张实跑回填(依赖 docker + uvicorn + seed 完整启动栈)。
详细计划:docs/plans/2026-05-08-v0.9.5-async-oasis.md。
5. 待决问题(M2 实施前拍板)
- 中→英翻译实现:经平台 LLM client(推荐)vs 查词典?默认开关 + 用户可关。
box_threshold/text_threshold项目级覆盖:DINO 默认 0.35 / 0.25 在通用场景 OK,特定业务图(车牌 / 商品)需 fine-tune;建议做成 ProjectSettings 项目级 override。
6. 风险
| 风险 | 概率 | 影响 | 缓解 |
|---|---|---|---|
| DINO 复合错误(漏检 / 误检) | 中 | 文本预标质量低 | M4 验收跑 5 类业务图 sample;threshold 调参 |
| upstream Grounded-SAM-2 重构 | 中 | vendor 同步成本 | 固定 commit + sync_vendor.sh |
| polygon 简化复杂形状失真 | 中 | 标注员重画 | M3 评估脚本 + tolerance 可调 |
| 中文 prompt 召回率低 | 高 | 项目方失望 | M2 中→英翻译开关 + 文档建议英文 |
7. 文档与 ADR 产出(仅列尚待)
- [ ] ADR-0012 / ADR-0013:SAM 系列 backend 独立 GPU 服务 + mask→polygon 后端化(v0.9.5;编号等 0010/0011 已被占用)
- [ ] ADR 候选:ML backend storage endpoint 选择机制(dev
ML_BACKEND_STORAGE_HOSTvs 生产 K8s 同网;触发条件:第一个生产部署遇到再写) - [ ]
docs-site/dev/architecture/ai-models.md—— 部署 + 缓存(与 v0.10.x 共用) - [ ]
docs-site/dev/ml-backend-protocol.md§2 加Context.outputenum +/setupsupported_prompts字段说明(v0.9.4 phase 2 落地时同步) - [ ]
docs-site/user-guide/workbench/sam-tool.md—— 标注员视角教程(v0.9.4 phase 2 子工具栏 + text 三模式落地后写) - [ ]
docs-site/user-guide/projects/ai-preannotate.md—— 管理员视角文本批量预标教程(v0.9.5 后)
8. 时间预估
| 切片 | 估计 | 实际 |
|---|---|---|
| M0 backend 容器化 | ~5 天 | ~5 天 ✅ |
| M1 embedding 缓存 | ~3 天 | ~1 天 ✅ |
| M2 工作台 S 工具 + 文本入口 | ~6 天 | ~1 天 ✅(不做翻译 + E2E 推迟换得范围控制) |
| v0.9.3 三 phase(前端杂项 + 模型市场 + ML Backend 注册) | ~3 天 | ~1 天 ✅(接管原计划 M3 槽位) |
| v0.9.4 phase 1(后端 file_path → SAM URL) | ~0.5 天 | ~0.5 天 ✅ |
| v0.9.4 phase 2(SAM 子工具栏 + text 输出选择) | ~2.5 天 | ~1 天 ✅(Crystal Compass) |
| v0.9.4 phase 3(M3 mask→polygon 调参 + SAM E2E) | ~2 天 | ~1 天 ✅(共享包已就位 + 合成 fixture 替代真实 SAM mask 评测) |
v0.9.5(M4 /ai-pre 批量 UI + M5 运维收口 + chip 包 + 类别 alias) | ~10.5 天 | ~3 天 ✅(Async Oasis;既有 70% 骨架 + alias 取代翻译让连接成本骤降) |
| 合计剩余 | v0.9.x 已完整收尾,进入 v0.10.x SAM 3 |
Sources
- IDEA-Research/Grounded-SAM-2: https://github.com/IDEA-Research/Grounded-SAM-2 (vendor @
b7a9c29) - 调研:
docs/research/06-ai-patterns.md§3.3,09-recommendations.md§6.7 - 协议契约:
docs-site/dev/ml-backend-protocol.md - 后续版本:
[archived]0.10.x.md