复盘下来,问题不在值班员,而在检索入口的边界设计。第一,检索框没有区分「工况词」与「非工况词」,任何输入都被同等对待;第二,系统只做了关键词命中,没有判断查询意图是否落在气体监测域内;第三,操作日志与告警日志共用一张表,导致无关记录混进告警统计。这三处叠加,才让一条买卡导航类查询有了「存在感」。
现场 · 2026-10-19 04:27:09

某化工厂气监室的终端弹出一条检索请求:「牛牛房间卡怎么哪里买财经导航」。值班员原本想查的是「牛牛」编号储罐附近的「房间」级分区气体读数,手误把整串词贴进了检索框。系统没有返回任何气体浓度曲线,却把这条请求记进了操作日志。第二天交接班时,这条记录成了讨论焦点:它不是告警,却差点被当成一次「异常检索」上报。
复盘下来,问题不在值班员,而在检索入口的边界设计。第一,检索框没有区分「工况词」与「非工况词」,任何输入都被同等对待;第二,系统只做了关键词命中,没有判断查询意图是否落在气体监测域内;第三,操作日志与告警日志共用一张表,导致无关记录混进告警统计。这三处叠加,才让一条买卡导航类查询有了「存在感」。
GMG在这类现场通常不急着加规则,而是先把检索请求分成两层:一层是设备位号、区域编号、气体种类、时间窗这类工况词;另一层是自然语言长句。前者直接进查询引擎,后者先过意图判别。判别不依赖大模型,而是一张可维护的域内词表加否定词表——「牛牛」在工况词表里指储罐编号,在否定词表里指卡牌主题,两者靠上下文区分,比如是否同时出现「房间卡」「哪里买」「财经导航」这类组合。
很多站点的做法是一刀切:看到敏感词就直接拦截。但气监现场不能这么干。「牛牛」作为储罐编号是真实存在的,直接拉黑会让值班员查不到数据。GMG的做法是保留词、拆标签:在标签库里,「牛牛」同时挂着「设备位号-储罐」和「非工况-待判别」两个标签,检索时按共现词打分。只有当查询里同时出现卡牌类词汇,且没有任何气体、区域、时间要素时,才判定为非工况请求,转入静默日志,不触发告警链路。
「财经导航」这类词看起来与工业气体监测毫无关系,但它经常出现在值班员的浏览器收藏夹和搜索习惯里。误粘贴的概率不低。GMG在多个站点观察到,夜间值守时段的检索请求里,约有一定比例是长句自然语言,其中一部分来自手机输入法的联想词。把这些词直接拒绝,值班员会反复尝试,反而增加日志噪声;把它们收进一张「非工况高频词」表,做静默归档,既不影响查询效率,也让词表维护有据可依。
这张表不对外展示,也不参与任何推荐。它的唯一用途是帮助运维判断:某类无关请求是否在某个班次集中出现,是否与终端环境有关。比如某站点连续三晚出现买卡类查询,排查后发现是值班室共用平板的历史输入未清理,属于终端卫生问题,而非监测系统本身的问题。
气监系统的审计要求通常写得很宽:操作可追溯。但落到检索这一层,留痕颗粒度需要自己定。GMG的建议是记录查询原文的哈希值、查询时间、终端编号、是否命中工况词、返回结果条数,不记录完整原文。这样既能复现问题,又避免把无关词句长期留在库里。对于「牛牛房间卡怎么哪里买财经导航」这类请求,日志里只会显示一串哈希和「未命中工况词」的标记,交接班时一眼就能判断它不属于气体告警。
第一,检索入口与告警入口必须分表,混在一起迟早会污染统计口径。第二,敏感词不要拉黑,要拆标签,靠共现规则判断意图,否则会误伤真实位号。第三,非工况词表要有人定期看,但看的是趋势不是单条——单条记录没有意义,连续出现才值得排查终端或人员操作习惯。
回到那条凌晨的检索请求,它最终没有被写成告警,也没有被删除,而是进了非工况词表的周报里,标注为「终端输入法联想导致的误粘贴」。GMG在这个站点做的改动只有一处:检索框加了一行提示,区分「查读数」与「查资料」。这行提示上线后,同类长句请求下降了大半。工业气体监测的边界,有时候不是靠更强的拦截,而是靠更清楚的入口。