最近在做一个人事制度问答的RAG项目,用的LangChain + 阿里的qwen-plus。检索回来的chunk质量还行,但生成效果时好时坏。我参照网上教程写了个prompt模板,大概就是“你是人事助手,请根据以下文档内容回答,如果文档没有相关信息,就直说不知道”。但发现有些问题比如“年假和调休能一起用吗”,模型还是会自由发挥,把文档里没提的细节脑补出来。我试着把模板改得更严格,加了很多“禁止猜测”“只允许引用原文”之类的词,结果又导致很多能答的问题它也开始拒答。想问问有经验的朋友,这种RAG场景下的system prompt到底应该怎么设计?是应该把重点放在约束模型行为上,还是放在引导它如何利用检索到的片段上?有没有什么具体的措辞技巧,能让模型既不过度发挥,又不至于过度保守?最好能分享下你们实际跑通的模板长什么样,先谢过了。
楼主
2026-08-21
RAG里给大模型加的prompt模板,到底该写多细才算合适?
请 登录 后发表回复
全部回复
共 46 条
2楼
27天前
我也踩过这坑,约束词堆太多反而让它变怂,后来改成给个回答示例就好多了。
3楼
25天前
可以试试把“不知道”换成“根据现有制度未提及”,别硬禁,给它个台阶下反而少脑补。
4楼
24天前
这个问题的关键可能不在prompt写多严,而在检索回来的chunk本身是不是完整覆盖了答案。我之前也踩过类似的坑,后来发现让模型“只根据原文回答”这种硬约束反而会把边界情况全堵死。我的做法是在模板里加一句“如果原文只提到部分信息,可以回答已知部分,但要说明哪些内容文档里没有明确”,这样既减少脑补又不至于全拒答。另外你可以试试把温度调到0.1以下,qwen-plus在低温度下对prompt的遵循度会好很多。
5楼
23天前
我之前也踩过这坑,后来发现关键不是堆“禁止”这类词,而是给模型一个明确的回答结构。比如让它先复述检索到的相关原文,再基于原文作答,最后单独标注“文档未提及”的部分。这样它就不容易把脑补内容混进正式回答里。另外qwen-plus对指令位置挺敏感,把约束条件放在system里比塞在user里效果稳一些。
6楼
22天前
约束太死反而容易拒答,不如在模板里给个例子教它怎么答。
7楼
20天前
我之前也踩过这个坑,后来发现光靠prompt里堆“禁止猜测”没啥用,模型该编还是编。我的做法是在模板里加一句“先判断文档里有没有直接答案,没有就回复固定话术”,然后把这句话放在很靠前的位置,效果会稳很多。另外你可以试试把“只允许引用原文”改成“每句话后面标注对应文档编号”,反而比硬堵更管用。