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:
@@ -0,0 +1,21 @@
|
||||
"""Sense 路由(T-G0 骨架:健康检查;/v1/route 与 /v1/embeddings 在 T-G1/G5 落地)。"""
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import APIRouter
|
||||
|
||||
from gateway.sense.config import SenseConfig
|
||||
|
||||
|
||||
def build_sense_router(cfg: SenseConfig) -> APIRouter:
|
||||
"""组装 sense 面路由(唯一组装点)。"""
|
||||
router = APIRouter(prefix="/sense")
|
||||
|
||||
@router.get("/health", tags=["sense"])
|
||||
async def health():
|
||||
"""sense 面健康检查(含灰度状态,供看板/运维)。"""
|
||||
return {"enabled": cfg.enabled, "mode": cfg.mode,
|
||||
"embedder": cfg.embedder.base_url}
|
||||
|
||||
# /v1/route(T-G5 grader)、/v1/embeddings(T-G1)、/sense/admin/*(T-G3+)后续追加。
|
||||
# 注意 /v1/route 不带 /sense 前缀——由 api.py 单独 include 一个无前缀子路由(T-G5)。
|
||||
return router
|
||||
Reference in New Issue
Block a user