项目周期: 2026-02-15 负责人: Atlas🐻 状态: Phase 1完成 ✓
问题来源: Gemini排雷指令S2-1
"model_selector.py是'阿喀琉斯之踵',路由逻辑与调用逻辑耦合严重。"
重构目标: "换传输层,保路由脑" - Control Plane(控制面): MessageClassifier + BudgetController + RouteDecider,纯逻辑无HTTP - Data Plane(数据面): 统一LiteLLM网关调用,单一HTTP入口
09-虚拟办公区系统/model_selector.pyLiteLLMDataPlane (170行) - 统一数据面调用层call(route_decision, ...) - 含降级链的统一入口_call_litellm(model_id, ...) - 核心HTTP调用方法is_gateway_alive() - 网关健康检查ModelAdapter 基类 (30行)LiteLLMAdapter (70行)ModelAdapterFactory (140行)02-蜂巢创科/Atlas工作区/model_selector重构方案.md02-蜂巢创科/Atlas工作区/model_selector重构完成报告.md09-虚拟办公区系统/test_model_selector_refactor.py✓ Import测试: 成功
✓ Control Plane: Classifier + Budget + Router 正常
✓ Data Plane: LiteLLMDataPlane正常,网关在线
✓ 端到端测试: route_and_call()成功调用GLM-4-flash
✓ 向后兼容: chat_router.py / coco_supervisor.py无需修改
┌─ Control Plane (路由脑) ─┐ ┌─ Data Plane (传输层) ─┐
│ MessageClassifier │ │ LiteLLMDataPlane │
│ BudgetController │─▶ │ ├─ call() │
│ RouteDecider │ │ └─ _call_litellm() │
└──────────────────────────┘ └─────────────────────────┘
纯逻辑 统一HTTP入口
# ModelSelector公开API完全不变
selector = ModelSelector(config_path)
result = selector.route_and_call(message, system_prompt, ...)
# 返回格式不变
{
'text': '...',
'model': 'glm-4-flash',
'category': 'daily',
'tier': 'free',
'tokens_used': 75,
'cost_usd': 0.000008,
'latency_ms': 2048,
'warning': None,
'error': None,
'source': 'model_selector'
}
routing/route_decider.py(计划0.5天)Atlas🐻 | 蜂巢创科全栈系统工程师 | 2026-02-15