昨天我们上线了一个功能:你纠正识别结果的时候,如果自己把某个常见名字拼错了,会提醒你一下。它的第一次亮相很成功——我真把 Claude 打成了 Cloude,它当场抓住。
今天它闹了个笑话。
语音识别把我们的产品名听成了另一个词。我照例把它改回正确的名字。复核弹出来:
⚠️ 这几个词可能拼错了
(我们的产品名)→ (识别错的那个词) 公司名拼写错误
它劝我把自家产品的名字,改回机器听错的那个词。理由还很自信:公司名拼写错误。
它凭什么这么说
因为它没听说过我们公司。
模型见过 GitHub、见过 Claude、见过成千上万个知名品牌。我们的产品名它没见过,于是在它眼里,那就是一串可疑的字母;而识别错的那个词碰巧更像某个它见过的东西。于是”我不认识”变成了”你写错了”。
最刺眼的地方在这儿:那个产品名早就在我的词库里躺着。 我批准过它,Xtype 每次识别都把它带给引擎当提示。系统明明知道这个词是对的——只是做复核的那一层,从来没去问过词库。
一条原则
模型不认识你的公司,不是你写错了的证据。
这话听着像废话,但它划出了一条真实的边界:在这个产品里,用户的词库是权威,模型的见识不是。你点头批准过的词,AI 没有资格反对。一个通用模型对你公司内部叫什么,永远不会比你更懂。
修法:多一档「铁律」
词典里现在多了一档,叫铁律。
把自家的品牌名、产品名放进去,AI 永远不会建议修改它们。鼠标划过任意一行,点「设为铁律」,那个词就带上一个盾牌。
同时——所有你已经批准过的词,自动享有同样的保护,不用你一个个去标。这条更重要:它让今天这个问题当场消失,而不是等你想起来去设置。
还是两层,还是同一个理由
告诉模型「这些词一律视为正确,绝不建议修改」,这是第一层。
但我们前天刚学过一次:对 AI 写下的规则是请求,不是约束。所以还有第二层——服务器和客户端各再过滤一遍,凡是指向你词库里那些词的建议,直接丢掉,模型说什么都没用。
这已经是第三次用同一个套路了:让模型大概率做对,再保证它做错时你不受害。 我开始觉得这不是技巧,是做 AI 产品的基本功。
一个没有偷懒的地方
最省事的修法是:一旦发现有保护词,整条复核就跳过。那样今天的问题也没了,但功能也废了一半。
所以我们特意验了第三种情况:在有保护词的前提下,把 Claude 拼成 Cloude,它照样抓出来。
保护只让它对你的词闭嘴,不让它变哑巴。