一个优秀的RAG系统不仅要“答得准”,更要“知之为知之,不知为不知”。不能一本正经的胡说八道,如果是这样的话,那我和直接问豆包有啥区别? 尤其是一些专业领域、比如医疗、金融、法律等场景下,一旦回答错误,后果有可能不堪设想。 所以,在绝大多数企业级或垂直领域的RAG系统中,拒答是必须且核心的机制。甚至在RAG系统的评估体系中,还会有拒答率这样的指标。 有了拒答之后,可以提升用户对于这个系统的信任度。 大家不要以为拒答就是直接拒绝用户了,不一定的。有的时候,拒答的实现,可以通过提示词来做约束。比如: 这种就是直接告知用户无法回答。还有一种方式,那就是拒答的时候,前端可以直接转人工客服。让人工客服接管用户问题。 或者是引导用户拨打官方客服电话咨询。
提示词优化
在优化前,我们的拒答逻辑散落在提示词各处,只有两条笼统规则:
- "若参考资料中无法找到相关信息,请引导用户通过正式渠道..."
- "如果参考资料中没有相关信息,请直接告知用户你暂时无法回答..."
问题是,模型可能无法区分"完全无关的问题"和"领域内但资料不足的问题",容易出现:
- 该拒答时不拒(对无关问题也试图回答)
- 不该拒答时全拒(参考资料部分覆盖时也一刀切拒答)
于是,我们的提示词可以做如下优化。
针对 售前、投诉、维保、技术支持等场景的提示词统一引入了 ## 拒答规则(优先级从高到低) 结构化分级体系,替代了原来散落在正文中的零散拒答指令。并且建立 4~5 级优先级递减的拒答规则,每一级都有明确的判断条件和标准话术模板:
| 优先级 | 规则 | 处理方式 |
| --- | --- | --- |
| 1 (最高) | 完全无关问题 (娱乐八卦、金融投资、编程等) | 直接拒答+声明服务范围 |
| 2 | 需实时确认/人工介入的场景 | 引导到正式渠道 |
| 3 | 领域相关但参考资料无覆盖 | 坦诚告知无资料+引导渠道 |
| 4 | 参考资料仅部分覆盖 | 回答有据部分+补充引导 |
| 5 (最低) | 严禁编造兜底 | "宁可拒答也不可杜撰" |
每个场景(售前/投诉/维保/技术支持)的拒答话术都根据业务特点做了定制化,例如:
- 售前引导"到店咨询、官网预约"
- 投诉引导"官方客服热线、服务站"
- 技术支持引导"鸿蒙智行授权用户中心、400-008-2888"
针对【怎么给小艺改名字】这个该拒答的问题,优化后的问题的回答效果如下:
另外,针对拒答的问题,我们一般就不再去评测他的召回率、准确率这些指标了,我们一般是看拒答率。
找出那些拒答的问题,分析为什么拒答,以及如果是真的缺少资料,那就补充更多的知识进去,让他变成非拒答问题。