微信扫码
添加专属顾问
我要投稿
AI幻觉问题困扰你?看作者如何通过三版Prompt调教RAG模型,让AI回答精准可靠! 核心内容: 1. 第一版Prompt的失败教训:平台默认设置导致AI臆造数据 2. 第二版Prompt的严格设计:设定角色边界与回答准则 3. 最终解决方案:平衡精确性与实用性的Prompt优化之道
老板当时就破防了:"什么?臆构数据?那开发人员用了虚假信息怎么办?这样大家还会信任这个系统吗?"
文章发出去后,好多朋友在后台留言说对这个“AI幻觉”的问题深有同感,想知道我是怎么具体解决的。
正好今天是周末,闲着也是闲着,就写篇文章算是回答朋友问题,也算是给自己一个复盘记录吧。好好捋一捋,我将把我“调教”Prompt的三轮完整迭代过程和思考全部分享出来。这事儿可不是小问题,当时它几乎关乎项目的生死存亡,当然生死其实是老板的一句话,我们要做的就是想办法去消除老板的顾虑:如果AI的回答连我们自己都不敢信,那这个项目就没有存在的价值。
最开始的时候偷懒了,Ragflow 对这块有默认推荐的系统提示词,想着既然是平台推荐的,那就先用着看看效果:
最开始跑起来,简单的进行了几轮对话试验,觉得像模像样,回答得还不错。可是用着用着,就发现不对劲了,它总会回答一些知识库里根本没有的东西!
这让我立刻警惕起来。我不想搞一个什么都懂的通用聊天机器人,我需要的是一个专有知识领域的顾问。它的定位必须清晰化,不能跑偏。于是,我开始动手修改提示词。
这个时候,我就必须给AI设定角色,让它戴上“紧箍咒”,明确角色和行为边界。于是,我写了第二版非常严格的Prompt,堪称“严苛”:
# 角色与目标
你是一个为 XXX 开发者服务的专业知识库助手。你的核心任务是基于下面提供的【知识库内容】,准确、客观地回答用户的问题。开发者用户高度依赖你提供信息的精确性和可溯源性,因此你的回答必须绝对忠实于提供的资料。
# 回答准则 (必须严格遵守)
1. **唯一信息来源:** 你的回答**必须**且**只能**基于【知识库内容】。严禁使用任何你预先知道的XXX知识、外部信息或进行任何形式的互联网搜索。
2. **直接性与相关性:** 仔细分析问题,并直接从【知识库内容】中查找最相关的段落或信息点来构建答案。优先直接引用或转述原文的关键信息。
3. **处理无关情况:** 如果经过仔细分析,【知识库内容】**完全不包含**与用户问题相关的任何信息,你**必须**且**只能**回答:“知识库中未找到您要的答案!”。不得给出任何其他解释或尝试回答。
4. **考虑聊天历史:** 在理解用户当前问题时,需结合之前的对话上下文。但回答依据仍**严格限制**在当前提供的【知识库内容】。
5. **保持专注:** 拒绝回答任何与 XXX 技术、提供的知识库内容或你设定的助手角色无关的问题。
# 知识库内容
--- 开始 ---
{knowledge}
--- 结束 ---
请严格遵循以上所有准则,根据【知识库内容】回答用户问题。
这下,AI的回答确实严格遵循了它的角色设定,老实多了。我心想,这下总算稳了。
但万万没想到,更要命、更不易察觉的问题来了。
我仔细比对它回答的结果和标准数据源信息,发现它总会胡编乱造知识库里没有的数据,还不是那种一眼就能看穿的完全瞎编,而是七分真话、三分假话。这就很恼火了!
后来我排查出了原因:主要是RAGFlow在知识库中检索后,只找到了部分相关的信息片段。但要把这些碎片组织成一个通顺的回答,信息是不够的。这时候,大模型接收到这些知识片段后,为了保证回复的“逻辑自洽”,就会自己“臆构”一部分数据,把缺失的环节补上。
这种情况对使用者来说是致命的!使用者通常是在不了解某个概念或方法的情况下,才会去问问答机器人,这时候他们看到AI的回答,在不是很熟悉的情况下,很可能以为AI说的都是真的。一旦他们全盘接受了这些虚假知识,并在实践中去用,出了问题,反过来就会质疑整个系统的准确性。信任的基石一旦被侵蚀,大家宁可去看原始文档,也不会再用这个机器人了。那我们费这么大劲搞这个项目,也就失去了意义。
找到问题出在哪之后,我想到了两个解决办法:
最终,从实际效果和多人并发时的响应时间控制,我选择了第二条路。
我的目标变得异常清晰:我得允许,甚至鼓励AI在信息不足时,坦诚地承认自己“无知”,而不是打肿脸充胖子。
于是,第三版,也是最终版的Prompt诞生了。核心就是在第二版的基础上,加入了这条堪称“反AI本能”的铁律:
# 角色与目标
你是一个为 XXX 开发者服务的专业知识库助手...
# 回答准则 (必须严格遵守)
...
3. **禁止臆测与扩展:**
* 如果【知识库内容】不包含足够信息来完整回答问题,**仅**根据已有的信息回答,并可以指出信息可能不完整(例如:“根据提供的资料,关于XX方面的信息如下,但未提及您问的YY细节”)。
* **绝对不允许**对信息进行任何形式的延伸、推理、猜测、补全或创造不存在的逻辑关系。**找到什么,就回答什么。**
* 如果多个检索到的段落直接回答了问题的不同方面,你可以将这些信息组合起来回答,但必须清晰说明信息来源,且禁止添加任何原文未明确提及的内容或逻辑。
* 如果发现知识库信息自相矛盾,请指出矛盾点,不要自行选择或调和。
...
看到加粗的那句了吗?“找到什么,就回答什么。” 这句话彻底改变了AI的行为模式。我们等于正式授权它可以给出“不完美”但绝对诚实的答案。
这次,AI终于学会了“老实做人”。当知识库信息不全时,它会老老实实地告诉你:“根据资料,我只找到了这些,你要问的另外一部分,资料里没提。”
一个回答虽然可能不“完整”,但它100%忠于原文,100%值得信赖。至此,那个差点让我们项目翻车的“吹牛大王”,总算被成功驯服了。
这次和AI幻觉斗智斗勇的经历,让我的感受和上次搞定整个知识库项目时非常相似:
技术这东西,往往就是这样,刚刚从一个坑里爬出来,前面又是一个坑。但是每次填坑的过程,都是对技术和业务理解的一次深化。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-06-20
从0到1落地一个RAG智能客服系统
2025-06-20
RAG 知识库核心模块全解(产品视角 + 技术细节)
2025-06-20
不依赖于复杂框架,用简单易懂的实现教你二十三种RAG技巧!
2025-06-20
RAGFlow实战:如何根据文档类型选择最佳切片策略?
2025-06-20
RAG技术与应用深度研究报告
2025-06-19
企业级 RAG Agent 开发指南:RAG Agent 开发的 10 条实战准则
2025-06-19
RAG工程落地:回答内容和检索片段(chunk)对应关系追踪
2025-06-19
GraphRAG系统:利用LangChain、Gemini和Neo4j构建智能文档检索与生成解决方案
2025-03-24
2025-03-24
2025-03-24
2025-03-28
2025-04-01
2025-04-13
2025-03-23
2025-04-19
2025-04-09
2025-04-16
2025-06-20
2025-06-19
2025-06-13
2025-06-09
2025-06-06
2025-05-30
2025-05-29
2025-05-29