feat(v1): T-R1 采纳 ai-model-router 可解释路由评分——五维加权+硬过滤带拒绝理由+置信度分差推导
- 新增 router_system/explain.py:CandidateProfile(capability/cost/latency/ reliability/difficulty 画像)+ explain_routing(硬过滤先行、逐条人话拒绝理由、 五维归一评分、同分按领域字典序、confidence=0.8+分差推导封顶 0.99) - Router._explain 纯解释层装配(解释层任何异常不影响主链路,D-G4 同款纪律); 路由胜负与既有决策完全等价,/chat 响应新增 route_explanation 字段(缓存命中为 None) - experts:Expert.nominal_latency_ms 标称延迟元数据(mock 1/hf 300/api 800) - stats:upgraded_by_domain 计数 + domain_reliability()(无数据给 0.9 中性先验) - .gitignore 登记 extra/(参考项目目录不入库) - 新增 tests/test_explain.py 8 项;全量 33 passed(基线 25)
This commit is contained in:
@@ -75,6 +75,7 @@ _STOPWORDS_EN = {
|
||||
|
||||
class Expert:
|
||||
name: str = "expert"
|
||||
nominal_latency_ms: float = 100.0 # 标称延迟元数据(可解释评分 speed 维输入)
|
||||
|
||||
async def generate(self, query: str, difficulty: str) -> ExpertResponse:
|
||||
raise NotImplementedError
|
||||
@@ -87,6 +88,8 @@ class MockExpert(Expert):
|
||||
使端到端管线(分类 -> 专家 -> Judge -> 缓存)可被稳定测试与演示。
|
||||
"""
|
||||
|
||||
nominal_latency_ms = 1.0
|
||||
|
||||
def __init__(self, name: str, domain: str, model: str = "mock"):
|
||||
self.name = name
|
||||
self.domain = domain
|
||||
@@ -162,6 +165,8 @@ class MockExpert(Expert):
|
||||
class HFExpert(Expert):
|
||||
"""可选:HuggingFace 真实小模型(需 requirements-ml.txt)。"""
|
||||
|
||||
nominal_latency_ms = 300.0
|
||||
|
||||
def __init__(self, name: str, domain: str, model: str):
|
||||
self.name = name
|
||||
self.domain = domain
|
||||
@@ -210,6 +215,8 @@ class HFExpert(Expert):
|
||||
class APIExpert(Expert):
|
||||
"""可选:OpenAI 兼容 Chat Completions(DeepSeek / OpenAI / 本地 vLLM)。"""
|
||||
|
||||
nominal_latency_ms = 800.0
|
||||
|
||||
def __init__(self, name: str, domain: str, model: str, base_url: str, api_key: str):
|
||||
self.name = name
|
||||
self.domain = domain
|
||||
|
||||
Reference in New Issue
Block a user