RAG 中如何设计 Prompt 来有效利用检索到的文档?
RAG 中如何设计 Prompt 来有效利用检索到的文档RAG 中如何设计 Prompt 来有效利用检索到的文档在 RAG 系统中Prompt 的设计是连接“检索到的文档”与“最终生成答案”的关键桥梁。即使检索到高度相关的文档如果 Prompt 未能有效引导模型利用这些信息依然可能出现忽略文档、答非所问、幻觉等问题。以下是如何设计 Prompt 来有效利用检索文档的核心原则与实用模板。一、核心设计原则原则说明错误示例正确做法明确文档角色告诉模型检索到的文档是“唯一信息来源”而非参考建议“根据以下资料回答”“仅根据以下文档内容回答问题。如果文档中没有答案请直接说‘未找到相关信息’不要编造。”结构化文档表示区分不同文档来源防止模型混淆堆砌所有文本用[文档1][文档2]或---分隔标注来源强调定位与引用要求模型指出答案依据哪篇文档“答案是X”“答案是X依据文档3的第2段”处理无答案情况明确禁止幻觉无说明“如果文档不包含答案输出‘无法回答’绝不猜测”指令与内容分离用特殊标记如context、question隔离上下文混合书写使用明确的 XML 标签或 Markdown 标题二、基础 Prompt 模板模板 1标准问答通用context {% for doc in documents %} [文档{{ loop.index }}] 来源{{ doc.source }} 内容{{ doc.content }} --- {% endfor %} /context question{{ user_query }}/question instruction 你是一个基于文档的问答助手。请严格执行以下规则 1. 仅使用上面 context 中的信息回答问题 2. 如果问题无法从上下文中得到答案请回复“根据提供的文档无法回答该问题” 3. 回答时请引用具体的文档编号例如根据文档2 4. 不要添加任何外部知识或你的主观推测 /instruction answer模板 2多文档对比与综合context [文档A] 时间2024-01-15 | 作者张三 内容公司计划2024年Q2推出新产品X... [文档B] 时间2024-10-20 | 作者李四 内容因市场变化新产品X推迟至2025年Q1发布... /context task 请根据以上两篇文档回答用户问题。注意 - 如果文档之间存在矛盾请明确指出矛盾点及各自的来源 - 优先采用时间更新的文档作为最终结论 - 用表格对比不同文档的关键差异 /task question{{ query }}/question模板 3带不确定性过滤用于高风险场景context{{ retrieved_texts }}/context task 你需要判断以下两个问题 1. 文档中是否包含足够信息来回答用户问题回答 YES/NO 2. 如果 YES给出答案并引用原文如果 NO输出“信息不足” 置信度阈值如果关键信息在文档中只出现一次或表述模糊请判定为 NO /task question{{ query }}/question三、高级技巧1.强制“先思考后回答”Chain-of-Thought引导模型在输出答案前先评估文档相关性steps 1. 逐一分析每个文档是否与问题相关 2. 提取相关文档中的证据句子 3. 判断证据是否足以回答整个问题 4. 基于以上分析给出最终答案 /steps2.为文档添加摘要或标题如果文档较长可在 Prompt 中先提供每个文档的一行摘要帮助模型快速定位文档摘要 - 文档12024年财报摘要营收增长15% - 文档22025年市场预测提到挑战 - 文档3产品发布计划 详细内容 [文档1] ...3.动态调整指令根据查询类型针对事实性问题、推理问题、总结性问题使用不同 Prompt查询类型额外指令事实型“请直接给出具体数值/日期不要解释过程”推理型“请基于文档中的证据进行三步推理”总结型“请用3个要点总结文档中关于X的内容”4.加入“不相关文档”示例Few-shot 示例中展示当文档无用时模型的正确行为示例 context文档1关于猫的饮食习惯/context question狗需要每天遛多久/question answer根据提供的文档无法回答该问题。文档内容仅涉及猫的饮食。 现在请回答真正的用户问题 ...四、针对不同检索质量的策略情况 1检索结果可能包含噪音在 Prompt 中要求模型忽略无关文档“上下文中可能混有不相关的文档。请只使用与问题直接相关的部分。如果某文档与问题无关直接忽略它不要尝试硬解释。”情况 2检索结不完整引导模型承认知识边界“如果上下文中只有部分答案请说明‘文档提供了关于X的信息但没有提到Y因此无法完全回答。’”情况 3多轮对话中的文档复用为每轮对话重新注入当前相关的文档但保留历史答案的简短记忆历史对话用户问过A助手回答B 当前上下文与当前问题最相关的3篇文档 当前问题C五、实际代码示例LangChainfromlangchain.promptsimportChatPromptTemplate template 你是一个基于文档的问答系统。 context {context} /context rules - 仅使用 context 中的信息回答 - 如果没有答案回复根据文档无法回答 - 引用文档编号[文档X] - 不要添加外部知识 /rules 问题{question} 回答 promptChatPromptTemplate.from_template(template)# 使用docsretriever.get_relevant_documents(query)formatted_context\n---\n.join([f[文档{i}]{doc.page_content}fori,docinenumerate(docs,1)])responsellm.invoke(prompt.format(contextformatted_context,questionquery))六、常见错误与调试现象可能原因修复方法模型忽略文档凭自身知识回答Prompt 未强制“仅基于文档”加入ONLY use the provided context并用 few-shot 示例答案虽正确但无法溯源未要求引用加入“请标注信息来源”指令多文档矛盾时答案混乱未明确矛盾处理规则增加“遇到矛盾时优先最新/多数来源”规则文档过长模型遗漏关键信息未对长文档做摘要或分段先用 LLM 对每个文档提取与问题最相关的 2-3 句总结一个好的 RAG Prompt 明确边界仅用文档 结构化文档 引用要求 拒答机制 任务分解。设计时应始终自问如果检索到的文档完全不相关模型会诚实地拒绝回答还是会编造—— 后者的出现往往意味着 Prompt 对信息边界的约束不足。通过反复迭代上述模板与技巧可以显著提升 RAG 系统的可靠性。你是一个专业的知识助手。请仔细阅读以下参考文档基于文档内容回答用户问题。【重要规则】只使用文档中的信息回答如果文档中没有相关信息明确告知用户尽可能引用具体的文档片段不要添加文档外的信息【参考文档】文档1{检索到的文档1}文档2{检索到的文档2}【用户问题】{用户的问题}请回答

相关新闻

langgrah使用pgsql做会话存储会自己创建表吗

langgrah使用pgsql做会话存储会自己创建表吗

是的,LangGraph 使用 PostgreSQL 做会话存储时,会自己自动创建所需的表。 你不需要手动编写 SQL 建表语句,LangGraph 提供了内置的方法来完成这一步。具体机制如下: ⚙️ 自动建表的核心方法: setup() 在使用 PostgreS…

2026/8/18 13:51:32 阅读更多 →
langchain4j (三)

langchain4j (三)

PromptTemplate提示词模板 Test public void testChatModelQwenChatStructuredPromptTemplete() { String apiKey System.getenv(“aliQwen-key”); OpenAiChatModel model OpenAiChatModel.builder() .baseUrl(“https://dashscope.aliyuncs.com/compatible-mode/v1”) .api…

2026/8/18 13:51:32 阅读更多 →
B站m4s文件打不开?3步无损合并成MP4,免转码转换完整指南

B站m4s文件打不开?3步无损合并成MP4,免转码转换完整指南

B站m4s文件打不开?3步无损合并成MP4,免转码转换完整指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter 是…

2026/8/18 13:51:32 阅读更多 →

最新新闻

Adobe 激活工具 Adobe-GenP 3.0 速通手册:CC 2019-2023 全家桶一次搞定

Adobe 激活工具 Adobe-GenP 3.0 速通手册:CC 2019-2023 全家桶一次搞定

Adobe 激活工具 Adobe-GenP 3.0 速通手册:CC 2019-2023 全家桶一次搞定 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 如果你正在用 Adobe 全家桶&…

2026/8/18 15:04:25 阅读更多 →
NxDumpTool快速上手:一次搞定Switch卡带与数字版游戏的8类数据备份

NxDumpTool快速上手:一次搞定Switch卡带与数字版游戏的8类数据备份

NxDumpTool快速上手:一次搞定Switch卡带与数字版游戏的8类数据备份 【免费下载链接】nxdumptool Generates XCI/NSP/HFS0/ExeFS/RomFS/Certificate/Ticket dumps from Nintendo Switch gamecards and installed SD/eMMC titles. 项目地址: https://gitcode.com/gh…

2026/8/18 15:04:25 阅读更多 →
告别老游戏黑屏闪退:手把手教你用 DDrawCompat 实现经典游戏兼容

告别老游戏黑屏闪退:手把手教你用 DDrawCompat 实现经典游戏兼容

告别老游戏黑屏闪退:手把手教你用 DDrawCompat 实现经典游戏兼容 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors…

2026/8/18 15:04:25 阅读更多 →
一个仓库集齐三十多个实战案例:.NET MAUI 示例项目快速上手指南

一个仓库集齐三十多个实战案例:.NET MAUI 示例项目快速上手指南

一个仓库集齐三十多个实战案例:.NET MAUI 示例项目快速上手指南 【免费下载链接】MauiSamples .NET MAUI Samples 项目地址: https://gitcode.com/gh_mirrors/ma/MauiSamples 如果你正想入门跨平台开发,却苦于找不到能直接运行的代码,…

2026/8/18 15:04:25 阅读更多 →
JetBrains Mono 免费编程字体完整指南:5 个理由让你今晚就换掉默认等宽字体

JetBrains Mono 免费编程字体完整指南:5 个理由让你今晚就换掉默认等宽字体

JetBrains Mono 免费编程字体完整指南:5 个理由让你今晚就换掉默认等宽字体 【免费下载链接】JetBrainsMono JetBrains Mono – the free and open-source typeface for developers 项目地址: https://gitcode.com/gh_mirrors/je/JetBrainsMono 有没有想过&a…

2026/8/18 15:04:25 阅读更多 →
【单片机课程设计/毕业设计】基于 STM32/51 单片机的便携式电子计价秤开发 基于 STM32/51 单片机的多路单价智能称重设备设计(021103)

【单片机课程设计/毕业设计】基于 STM32/51 单片机的便携式电子计价秤开发 基于 STM32/51 单片机的多路单价智能称重设备设计(021103)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/18 15:03:25 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →