Skip to content

⚠️ 自动镜像 · 此页由 docs-site/scripts/mirror-changelog.mjsROADMAP/[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-08 c5eaf94;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(速度优先),运维 env DINO_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 类型首次延迟召回
bbox2408ms1 polygon, score 0.82
text "person"3559ms4 polygon, score 0.98(4 人全召回)
point1602ms1 polygon, score 0.84

首次延迟含 SAM image embedding 计算;M1 LRU 缓存后同图二次点击应 < 50ms。


2. 平台对接面(v0.9.0 后状态)

已就位

组件位置
ml_backends 表 + is_interactiveapps/api/app/db/models/ml_backend.py
MLBackendClient.predict_interactiveapps/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/statsv0.9.1

已就位(v0.9.2 后追加)

组件位置
工作台 S 工具 + 紫虚线候选 + Enter/Esc/Tabapps/web/src/pages/Workbench/state/useInteractiveAI.tsstage/tools/SamTool.tsstage/ImageStage.tsx samProbe
AI 助手 SAM 文本入口shell/AIInspectorPanel.tsx SamTextPanel
DINO 阈值项目级 overridedb/models/project.py + 0048_project_dino_thresholds + api/v1/ml_backends.py ctx 注入

已就位(v0.9.3 + v0.9.4 phase 1 后追加)

组件位置
前端 ML Backend 注册 / 编辑 / 删除 / 健康检查 UIapps/web/src/pages/Projects/sections/MlBackendsSection.tsxcomponents/projects/MlBackendFormModal.tsxpages/ModelMarket/RegisteredBackendsTab.tsx (v0.9.3 phase 3)
useUpdateMLBackend / useDeleteMLBackend + 双 invalidateapps/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 模式固定输出 polygonimage-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 + healthcheck start_period=120s
  • 镜像基于 pytorch/pytorch:2.3.1-cuda12.1-cudnn8-develdevel 必需: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 一键同步上游;.gitattributeslinguist-vendored=true

3.3 协议扩展(已落)

context.type"text"

json
{ "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] useInteractiveAI hook:按 prompt 类型路由
  • [x] 中→英翻译开关 → §5 决策 1:v0.9.2 不做(无 LLM client 基础设施),改为输入框 hint「英文 prompt 召回最佳」
  • [x] 返回 polygon 以「待确认紫虚线」叠加在 Konva canvas,Enter 接受 / Esc 取消 / Tab 切候选
  • [x] 防抖:runPoint 80ms 合并;inflight 计数防过期请求覆盖新候选
  • [x] 单测:useInteractiveAI 10 case + hotkeys S 键 + 后端 interactive-annotating 阈值注入 3 case
  • [x] 额外:DINO box_threshold / text_threshold 项目级 override(§5 决策 2 同窗口完成)
  • [ ] E2E:annotation.spec 加 SAM 路径 → 推迟到 v0.9.3 / M3 收口前补(需 /_test_seed ML 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-keys CRUD + 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 注释。commit c5eaf94

  • [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 拆三个独立 *Tool export;ImageStage.tsxsamProbe 分流逻辑下移到 tool 层。
    • [x] 协议扩展(小)apps/grounded-sam2-backend/schemas.py Contextoutput: Literal["box","mask","both"] = "mask" + /setup 返回值加 supported_prompts: ["point","bbox","text"],前端按 backend 实际能力动态渲染按钮(老 backend 缺字段时走旧路径)。
    • [x] text 模式三选一输出:AI 助手面板文本输入框右侧加 segmented control [□ 框] [○ 掩膜] [⊕ 全部];按项目 type_key 智能默认(image-det → boximage-seg → mask、其它 → both);用户切换写 sessionStorage wb:sam:textOutput:{projectId} 记忆。
    • [x] 后端 predictor.py text 路径三分支box 完全跳过 set_image() + SAM 推理(cache 不写入),仅 DINO 出 boxes 直归一化为 rectanglelabels;mask 当前行为;both DINO + 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] 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/、Dockerfile COPY _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_tolerance body 字段注入(改 query string 为 body 字段schemas.py Context 加字段,与 output 同位;query string 不实现,运维 / dev 通过 ctx 注入足够)
    • [x] 顶点 > 200 触发 logger.warning("polygon vertex count %d > 200 ...")(非阻塞运维信号)
    • [x] SAM E2E 完整路径annotation.spec.ts 新 SAM 工具用例 + _test_seed.seed_resetMLBackend(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 后补

v0.9.5 — /ai-pre 文本批量预标 UI + 类别英文 alias + 运维收口(Async Oasis,~3 工作日)✅ 已落地(2026-05-08)

M4 + M5 + chip 包合并版本。原计划 ~6.5 天,实际 ~3 天落地(类别 alias 取代翻译开关 + 既有 /preannotate 端点 / batch_predict task 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_annotatedBatchStatus.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-0012SAM 系列 backend 独立 GPU 服务化
  • [x] ADR-0013mask→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 实施前拍板)

  1. 中→英翻译实现:经平台 LLM client(推荐)vs 查词典?默认开关 + 用户可关。
  2. 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_HOST vs 生产 K8s 同网;触发条件:第一个生产部署遇到再写)
  • [ ] docs-site/dev/architecture/ai-models.md —— 部署 + 缓存(与 v0.10.x 共用)
  • [ ] docs-site/dev/ml-backend-protocol.md §2 加 Context.output enum + /setup supported_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

Released under the MIT License.