refactor: config_views 单入口 + 0语义统一 + FakeAI 收敛(清理单#1#2#3)
- #3 六个消费视图 resolver 收拢 app/platform/config_views(单一定义点): resolve_email/push/ai_settings ← 各服务文件, resolve_contact_flags/ context_seed_map ← conversation, name_to_region_extras ← manager __init__ 内联取值(or None 语义原样)——函数体逐字搬入,服务层 import 之, 旧定义删;Phase 3 编辑器/试金石与该模块对接 - #2 限流 0 语义统一: conn_limiter.try_acquire 的 limit 与 chat_rest 的 rate_limit_per_hour 取值同款——0 或负 = 回退出厂默认(与姊妹键一致), 原 conn_limiter 0=全拒改为回退;chat_rest 取值抽 _resolve_rate_limit 纯函数供锚定 - #1 FakeAI 收敛进 conftest(超集: extract/evaluate/eval_calls),四份拷贝 删(test_lead_email_trigger/test_cc_integration/test_channel_hygiene/ test_lead_push_wiring——计划记三份,grep 实有四份;push_wiring 经 evaluate 参数注入原本地固定返回值,断言零改动) 全量 558 passed(554 + 新增 4: 单入口/内联等价/两处 0 语义) Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -125,6 +125,14 @@ class MessageRequest(BaseModel):
|
||||
content: str
|
||||
|
||||
|
||||
def _resolve_rate_limit(config_data: dict | None) -> int:
|
||||
"""engine.rate_limit_per_hour 取值(Task 10): 0 或负 = 回退出厂默认
|
||||
(与姊妹键 ws_conn_limit 一致)——config_validation 已拒 0/负,此处兜
|
||||
直写快照/旧库数据。"""
|
||||
v = ((config_data or {}).get("engine") or {}).get("rate_limit_per_hour")
|
||||
return v if v and v > 0 else DEFAULT_MAX
|
||||
|
||||
|
||||
@router.post("/message")
|
||||
async def chat_message(req: MessageRequest, request: Request):
|
||||
"""Process one app turn: stream-collect the AI reply, then evaluate.
|
||||
@@ -142,9 +150,7 @@ async def chat_message(req: MessageRequest, request: Request):
|
||||
runtime = get_runtime(request)
|
||||
ip = request.client.host if request.client else ""
|
||||
dev = request.headers.get("X-Device-Id", "")
|
||||
engine_cfg = runtime.config.data.get("engine") or {}
|
||||
# 类型与 0 语义由 Phase 2 配置校验统一(当前: 空/0 回退 DEFAULT_MAX)
|
||||
limit = engine_cfg.get("rate_limit_per_hour") or DEFAULT_MAX
|
||||
limit = _resolve_rate_limit(runtime.config.data)
|
||||
if not rate_check(runtime.config.slug, ip, dev, max_requests=limit):
|
||||
raise HTTPException(status_code=429, detail="rate limit exceeded")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user