最近在搭一个简单的RAG问答demo,用的LangChain + OpenAI。检索完把top3 chunk拼到prompt里,但模型经常忽略检索内容,自己瞎编答案。我试过“请严格基于以下文档回答”这种指令,效果时好时坏。想问下大家,对于这类“检索后生成”的场景,prompt的结构和指令有没有什么最佳实践?比如是不是要明确告诉模型“如果文档里没有就回答不知道”?还是说问题出在chunk质量上?另外,有没有必要在prompt里强调输出格式(比如只返回答案不带解释)?求各位大佬指点一下,调这个prompt快调麻了。
楼主
2026-07-19
RAG系统里给检索结果加prompt,到底怎么写才能让LLM不乱编?
请 登录 后发表回复
全部回复
共 163 条
2楼
2026-09-20
我一般会加一句"只根据以上内容回答,没有就说不知道",再加个输出格式约束,基本就不怎么编了。
3楼
2026-09-23
我踩过一样的坑,后来发现光靠“请严格基于文档”这种话真不够。你可以在prompt里加一条明确的兜底指令,比如“如果检索内容里找不到答案,就直接说文档未提及”,这招比单纯强调基于文档管用。另外top3 chunk如果相关性差,模型照样会硬编,建议先看看检索得分,别全甩锅给prompt。输出格式我一般会顺手限制成“只给答案,不要解释”,不然模型特爱加一堆废话。
4楼
5天前
刚入门,这个对我帮助很大。