未命中回「我没听懂,请换个说法」,私聊会把闲聊聊死,群里会被当刷屏。开发当这是礼貌。现场是:随口一句表情或天气,机器人必出站。开口变多,有用回复不变。被移出之后,命中的词也没人看。

有没有资格开口,和开口说什么,是两件事。没资格时,任何句子都不该入队。

未命中默认只记日志

词表是白名单。命中才出站。未命中记会话、原文摘要、原因。用日志补词,不要用气泡填空。把「我没听懂」当成未命中分支的返回值,等于把未命中改写成命中,后面统计全假。

群要叠加点名。未点名闲聊属于未命中,更不能出站。报价赔偿不在词表里,未命中时也不该再丢给模型编一句「没听懂」加价格。自身消息、非文本,同样在匹配之前结束。

def decide(event, rules, session):
    if session.state == "human":
        return "skip"
    if event.get("is_self"):
        return "skip"
    text = event.get("text") or ""
    hit = match(text, rules)
    if hit:
        return ("send", hit.reply)
    log_miss(session.id, text[:80])
    return "skip"

match 的未命中分支禁止返回固定句。「帮助」要作为显式词,不能挂在所有 miss 上。转人工是规则,走状态,不走兜底。投诉句先停嘴,再考虑要不要记工单。

模型不是 miss 的默认下一站

没有词就推理,贵,还容易把未审内容打进群。要上模型,单独开关、单独配额、群默认关。开关关闭时必须回到只记账。用模型把「我没听懂」说得更像人,刷屏本质不变。

验收:发无关闲聊,不应出站,日志有 miss;发词表短句,只出现已审回复;临时打开全局兜底,群开口次数应明显上升,当作反例。个人微信机器人要准,不要每条都响。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐