| 12345678910111213141516171819202122232425262728293031 |
- # -*- coding: utf-8 -*-
- """agent_query_common.py — 柱3「智能助手」查询共享核 (assistant farm级 + fleet_query fleet级 共用).
- 2026-07-09 合并: 此前 assistant._VD_ORDER 与 fleet_query.VERDICT_RANK 各一套 verdict rank、
- 两套 system 匹配 (substring vs family-prefix) = 并发重复债。抽共享原语于此, 两模块 import,
- **保留两入口** (farm级 answer / fleet级 flagged·fleet_health — 互补非重复)。
- verdict/system 单源: rank 用六枚举 + 复合兜底; system 复用 cases.system_of + 家族前缀匹配。
- """
- from src.sop.schemas import norm_verdict, VERDICTS # noqa: F401 (VERDICTS 供下游 re-export)
- # verdict 六枚举 rank 高→低 (docs/SOP.md §0.2 单源)
- VERDICT_RANK = {'定论': 5, '准定论·预警': 4, '候选': 3, '参考': 2, 'INSUFFICIENT': 1, '撤回': 0}
- def rank(v):
- """verdict → rank。严格六枚举优先; 非标复合(如 '候选·预警'/'候选·观察')取 '·' 前段兜底,
- 防静默丢真候选。仍无匹配 → -1 (真未知)。"""
- nv = norm_verdict(v)
- if nv in VERDICT_RANK:
- return VERDICT_RANK[nv]
- head = nv.split('·', 1)[0].strip() # '候选·预警' → '候选'
- return VERDICT_RANK.get(head, -1)
- def system_family_match(sysk, target):
- """canonical system key 家族前缀匹配 (single-source w/ cases.system_of 前缀感知):
- target='gearbox' 匹配 gearbox_oil/gearbox_ims_de 等子系统; 精确名(gen_stator)仍精确/家族匹配。"""
- if not sysk or not target:
- return False
- sysk, target = str(sysk), str(target)
- return sysk == target or sysk.startswith(target + '_')
|