feat(sense): T-G0 语义分析器骨架(包结构/DDL/灰度门控挂载)

- gateway/sense/:config(SenseConfig:mode 灰度三态/特征门/conformal/consumers
  档位映射,mode 非法回落 collect)、errors(EmbedderDown/ArtifactMissing,D-G4 降级)、
  store(tier_observations + sense_artifacts DDL,WAL;观察写入/标签回填/
  labeled 查询/180d 清理/工件登记与 active 切换)、routes(/sense/health 透出灰度状态)
- settings DEFAULTS 增 sense 段(enabled 默认 False,mode 默认 collect——D-G7)
- api.py include_router 门控(装配失败不拖垮主应用)
- 测试 +5:门控 404/DDL 幂等/配置缺省与 mode 回落/独立挂载 health/
  观察写入-回填-计数-清理链路,全量 375 passed
This commit is contained in:
tzt
2026-09-05 11:07:04 +08:00
parent 3e1f187380
commit c3efa70da2
9 changed files with 426 additions and 0 deletions
+15
View File
@@ -68,6 +68,21 @@ DEFAULTS: Dict[str, Any] = {
"semcache": {"enabled": True, "sim_threshold": 0.92,
"max_entries": 300000, "promote_frequency": 5},
},
# 语义分析器与三级分级(T-G0;结构见《实施方案_语义分析器与三级分级.md》§5)
"sense": {
"enabled": False, # D-G7 总开关:默认关
"mode": "collect", # collect | shadow | livecollect 攒满标签前禁 live
"db_path": "data/sense.sqlite3",
"admin_key": "",
"embedder": {"base_url": "http://127.0.0.1:8902/v1",
"model": "bge-m3-Q4_K_M", "timeout_s": 5, "dim": 1024},
"features": {"t1_max_tokens": 512, "t1_max_turns": 2,
"intent_blacklist": ["重构", "脚手架", "迁移", "实现", "多文件", "项目"],
"code_t1_kinds": ["解释", "补全"]},
"policy": {"alpha": 0.05, "min_labels": 500,
"t2_prefer_local_when_idle": True},
"consumers": {"proxy": {"t1": "local-small", "t2": "budget", "t3": "premium"}},
},
}