DeepSeek提示词设计指南:R1与V3提问策略、幻觉规避与图表生成 简介一份来自厦门大学程希冀主讲的DeepSeek提示词设计、幻觉避免与应用PDF资料面向AI开发人员、技术爱好者以及职场、教育、企业等各领域提示工程使用者聚焦如何让大模型真正听懂指令、避免幻觉输出这一核心问题。内容系统对比了DeepSeek-R1与V3等推理型、非推理型模型的性格差异提炼六何分析法、Few-shot少量样本提示、结构化提示词等实用技巧深入讲解幻觉成因与规避策略包括限制知识来源、设定时间界限、采用检索增强框架等让AI产出更精准可靠。还以制作炫酷图表和动画为例直观演示提示词实战并简介了Manus智能体及其工作特点。资源为单个PDF文件大小2.27MB已有248人学习适合需要系统掌握提示词设计最佳实践、提升AI交互效能与成果质量的读者。1. DeepSeek 提示词还值不值得学先分清 R1 和 V3 再谈技巧万事开头难但提示词这关最难的不是“不会问”而是“问太多”。如果你拿 DeepSeek-V3 问数学题很正常如果你拿 DeepSeek-R1 问数学题时反复叮嘱“请一步一步思考”反而是在帮倒忙。厦门大学程希冀老师这场《DeepSeek 提示词设计、幻觉避免与应用》用一个反直觉的结论开场模型越聪明提示词越要做减法。R1 这样的推理型模型把目标说清楚就够V3 这样的非推理型模型反而要喂得更饱、背景更厚。这篇笔记帮你把两类模型的“性格”摸透再把 5W1H、Few-shot、结构化模板这些技巧落到能直接抄的层级上最后把幻觉的边界和 RAG 补救办法讲透。做 AI 应用开发或者日常靠 DeepSeek 写方案、辅导孩子、做图表的人都值得停两分钟看完。2. 推理型与非推理型把 R1 和 V3 的提问策略分开写2.1 R1 的“草稿纸”思维链把黑匣子打开一条缝DeepSeek-R1 属于推理型模型和 OpenAI o1/o3、Kimi K1.5 站在同一侧。它的工作方式不是“输入直接吐答案”而是先走一段内部推理链Chain of ThoughtCoT把问题拆开、验算一遍再给出最终答案。官方客户端上你能看到“思考中...”的提示回答有时还附带解题思路。这个过程相当于一个学霸先打草稿再落笔和 V3 那种知识型朋友的直觉式秒回完全是两种体验。因为 R1 自带草稿纸它的提示词策略反而更简单直接。给 R1 的任务提示词里最重要的一项是目标清晰、边界明确“计算这个积分”“把这套 JSON 转成 XML 并保留注释”“判断这段代码是否会造成死锁”。把目标写清楚模型自己会规划过程。相反如果你在提示词里塞进了自己的“解题思路”让模型“按我说的步骤来”它反而可能被你的错误路径带偏——草稿纸被污染了。这里有一个很多人没注意到的细节重复让 R1“请一步一步思考”几乎无效因为它本来就在思考。更麻烦的是这种指令会占用上下文长度让 R1 把注意力分散在“如何组织回答”而不是“如何解决问题”上。所以我对 R1 的写法是结果要什么、约束是什么、输出格式是什么三行以内说完。2.2 V3 的直觉式响应不喂背景就会给你模板答案非推理型的 DeepSeek-V3 走的是另一条链路输入直接映射输出没有中间的“草稿纸”展示。它的响应速度快、吞吐高适合聊天、知识问答、文案生成但代价是对提示词质量更敏感。V3 输出的质量几乎等于提示词里给了多少有效背景。原文里有一个非常典型的对比问题都是“为什么我的手机屏幕突然变暗了”。第一种问法只给这一句V3 给的是自动亮度调节、电池节省模式、软件问题、硬件问题四段模板化排查——每个都沾点边但哪个都没法直接解决问题。第二种问法补充了三件事最近天气 40℃、苹果手机在太阳下晒一会儿、屏幕调也调不亮还加了一句“扮演我的同事的语气简洁回答”。V3 立刻切到对症下药的模式分析过热保护和亮度传感器的行为。这就是 V3 类模型的脾气你给 20% 的信息它就按 20% 的信息输出一个“覆盖全集”的安全答案你给 80% 的信息它才愿意按 80% 的信息去收敛。所以面向 V3 写提示词默认思路是把角色、背景、目标、格式都交代清楚而不是指望它“猜出你心里想的那个语境”。2.3 自动路由型GPT-5、Claude 3.7 的提示词又该怎么写原文还提到了第三类自动路由型代表是 GPT-5 系列和 Claude 3.7 系列。这类模型内部会判断当前任务是偏推理还是偏理解自动决定是否启用更长思考路径。对使用者来说提示词层面不用刻意区分“请推理”或“请直接回答”因为路由器会自己看复杂度。需要注意的反而是边界情况有些自动路由模型在任务难度模糊时会走“过度推理”路径把简单问题答得很啰嗦。我的习惯是如果发现回答明显冗长而问题其实简单就在提示词末尾补一句“这是一个简单任务请直接给出结论”把路由拉回快车道。2.4 按任务选模型一张提示词策略对照表原文给了一个很实用的分工我把它扩展成可以直接落地的对照任务类型推荐模型提示词写法要点数学题、代码调试、逻辑推理DeepSeek-R1只写目标和约束不写解题过程输出格式可以指定日常闲聊、百科问答、文案生成DeepSeek-V3补角色、背景、时间、示例用分隔符隔开会议总结、邮件润色、翻译DeepSeek-V3给原始文本 语气要求 输出长度需要展示解题过程的辅导DeepSeek-R1要求“输出时附带简要思路”但不要干预中间步骤混合场景先查资料再推理自动路由型或 R1联网检索拆成两步先检索再让推理模型基于检索结果作答这张表解决的是“选错模型、白写提示词”的问题。很多人先写提示词再挑模型顺序反了正确顺序是判断任务性质再根据推理型/非推理型决定要不要在提示词里塞背景。两种模型对同样一个任务的提示词写法差异在代码块里看得更清楚# R1 场景目标清晰型 计算积分 ∫(2x^3 3x^2 - 5x 1) dx输出多项式结果不需要过程。 # V3 场景背景补全型 你是一名数码产品售后工程师请用简洁的口吻回答下面的问题 背景用户地点厦门环境温度40℃设备是iPhone 14 Pro屏幕在太阳下晒了10分钟后变暗手动亮度拉不上去。 问题这是什么原因用户现在该怎么做 要求3条以内每条不超过30字。同一个问题域R1 需要的是“做什么、输出什么”V3 需要的是“背景、角色、格式”。两段提示词的差异不在长度而在信息性质——R1 要的是目标和约束V3 要的是上下文和口径。2.5 怎么判断当前回答走的是哪条路径实际使用中还有个玄学问题同一段提示词今天 V3 答得挺好明天 R1 答得不对。原因是 DeepSeek 官方 Web/App 有时用的是混合路由背后负载和版本策略都会影响路由结果。判断方法很简单看回答是否附带“思考中”的过程或输出里有没有明显的分步推导痕迹。如果发现该走 R1 的任务被路由到了 V3最直接的办法是在提示词第一行写明“请先分析再回答并在回答开头给出推理过程”把模型拉回推理路径反之如果只是要快速问答别加这句话。提示就连 DeepSeek 官方也建议推理模型不要堆提示词技巧。所有“提示词越详细越好”的经验都只对非推理模型成立。3. 提示词设计三板斧5W1H、Few-shot 与结构化模板3.1 六何分析法的落地把上下文补到八分饱5W1H 不是新闻写作课的专利它是非推理模型提示词的骨架。原文给的定义是何故Why、何事What、何时When、何人Who、何处Where、何以How。对应到提示词里要素在提示词里的作用示例Why说明任务动机让模型把握表达立场我公司要在自媒体做 X 产品推广为了提升销量What明确交付对象提供 500 字口播文案When限定时效和节奏时间为中秋节期间Who设定目标受众或利益相关者针对 18-35 岁年轻白领Where写清分发渠道和平台调性主要平台为小红书How约束表达口径和形式完播率高、不生硬、植入软广、结合节日需求这个表格本身就是一套模板。我一般会让用户把自己手头的任务填进去填到第三行就知道刚才为什么模型答得不像样——缺的往往是 Who 和 How。比如同样写口播文案“面向 18-35 岁年轻白领”和“面向退休在家的太极爱好者”完全是两种语气同样的活动“小红书”和“企业内刊”的用词规范也完全不同。3.2 Few-shot 少量样本提示给例子比给规则有用给模型讲十条“你应该怎样”的规则不如给它一个具体例子。原因是模型不是靠规则理解任务的而是靠模式匹配。Few-shot少量样本提示就是在提示词里塞 1-3 个输入输出对让模型照葫芦画瓢。原文里举的“扮演我的同事”其实也算 Few-shot 的变体——通过角色绑定回答的口吻和粒度。更纯粹的 Few-shot 是给数据格式范例。我处理过一个需求让 DeepSeek 把一堆非结构化的客户反馈整理成结构化表单。第一次只写“提取客户诉求、情绪倾向、紧急度”V3 输出的字段名每次都不一样加了两个示例后第三次输出就完全对齐了格式。Few-shot 的参数有三个值得调示例数量建议 2-5 个太少模型学不到边界太多会稀释注意力示例顺序按“最典型的放第一个”示例要覆盖负例比如“这条不是投诉不要标紧急”否则模型会放过边界情况。3.3 结构化提示词与分隔符给 V3 划出字段边界结构化提示词的核心不是“分条”而是“分区”。用分隔符把角色设定、背景资料、任务指令、输出格式隔成几块模型在处理长提示词时注意力会更集中在对应分区上。分隔符常见做法是用 、###、--- 这类不常出现在正文里的符号把不同性质的信息隔开。一个实用的模板# 角色 你是某消费电子品牌的售后主管擅长把复杂技术问题转成用户听得懂的话。 # 背景 用户报告手机在户外高温环境下屏幕变暗手动亮度无效。 该型号使用 OLED 屏幕已知在 40℃ 以上环境会触发亮度保护。 # 任务 解释触发原因并给出 3 条处理建议。 # 输出格式 每条建议一行先写操作再写理由总字数不超过 120 字。这个模板的每一个分区都对应 5W1H 里的一个要素等于给模型画了一张填空题。注意分隔符只是起视觉分区作用不是模型必须的硬语法。真正的价值是让提示词在不同段落之间不互相污染尤其背景资料和任务指令混在一起时模型容易漏掉最后的要求。我实际测试下来V3 对“# 任务”和“# 输出格式”两个分区最敏感凡是漏掉字段的翻车案例九成是把这两段混写在一起了。3.4 角色设定与行业知识注入的分寸角色设定能改变模型的语言风格和知识调用倾向但别指望角色设定能弥补知识缺失。让模型“扮演三甲医院呼吸科医生”回答咳嗽原因它只能说出一套通用医学常识不可能比得过给它一份科室诊疗手册。所以行业知识的注入要靠 RAG 或直接把参考资料粘进提示词R1 和 V3 通用。原文把 RAG 知识库列为非推理模型的建议项但我在实际项目里给 R1 做代码审查时同样会用 RAG 把项目的历史 commit 和风格规范灌进去——推理模型只是不需要你喂解题步骤不代表不需要项目上下文。另外注意角色设定的边界设定可以写“你是一名十年经验的电气工程师”但不要指望它真的具备十年积累的专业判断。专业判断来自你提供的资料角色只是让输出更像这个领域的人写的东西。如果提示词里既没有资料也没有明确任务角色设定就成了空壳模型只能用训练数据里的平均值来“演”效果自然泛泛。3.5 迭代提问第一版回答就是最好的提示词调试信号提示词很少能一次写对。最实用的调试方法是“把模型第一版回答当成第二版提示词的输入”如果它答得太宽泛说明背景不够回去补 Where/When如果语气不对说明角色没立住回去改 Who如果格式不是你要的说明输出格式分区写得太含糊。把“为什么我的手机屏幕突然变暗了”扩写成含天气、机型、动作的追问本质上就是一次迭代。熟练之后你会在第一版提示词里就预留这些字段省掉来回修的功夫。这个迭代逻辑对 R1 同样适用只不过 R1 调试时优先看约束条件是否清晰V3 优先看背景是否充足。4. 让 DeepSeek 出图表和动画从提示词到可运行代码4.1 先明确边界DeepSeek 出图靠的是代码不是图像生成DeepSeek 这类语言模型不直接输出图片但它能生成绘制图表的代码。这是很多人用错的点让 DeepSeek“画一张柱状图”得到的可能是 ASCII 示意图或一段 Python 代码正确的做法是把它当代码生成器先要代码再在本地执行。对于 ECharts、matplotlib、pyecharts 这些常见工具只要提示词里写清了数据和视觉要求DeepSeek 生成的代码通常可以直接跑通遇到版本差异最多改一两个参数。这里要注意数据规模的边界。几十条数据的静态图直接让 DeepSeek 生成 matplotlib 代码最省事几万条数据的前端大屏ECharts 更合适如果要做实时更新的监控面板代码生成只是第一步后面还要接数据源和刷新逻辑提示词里就得把数据接口一并描述清楚。4.2 一个可抄的“图表提示词”模板给 DeepSeek 写图表任务我的固定结构是数据直接贴表格或 JSON 图表类型 视觉要求 输出约束。下面这份提示词可以原样替换数据使用你是Python数据可视化工程师。请用matplotlib生成一份柱状图代码对比三个门店在2025年第一季度的月销售额。 数据 门店A1月120万元2月98万元3月145万元 门店B1月80万元2月105万元3月92万元 门店C1月156万元2月134万元3月180万元 要求 1. 用深蓝色系配色不要默认matplotlib样式 2. 柱顶显示数值标签字号9磅 3. 中文字体设置为SimHei并处理负号显示问题 4. 保存为PNGdpi150 输出完整可运行的Python代码。这份提示词里数据放在最前面图表类型和工具名紧跟其后剩下全是可执行的约束。DeepSeek 返回的代码通常长这样我按常见输出整理过import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei, PingFang SC, Noto Sans CJK SC] plt.rcParams[axes.unicode_minus] False stores [门店A, 门店B, 门店C] jan [120, 80, 156] feb [98, 105, 134] mar [145, 92, 180] x list(range(len(stores))) width 0.25 plt.bar([i - width for i in x], jan, width, label1月, color#2E5EAA) plt.bar([i for i in x], feb, width, label2月, color#5B8FD9) plt.bar([i width for i in x], mar, width, label3月, color#99BBE8) for i in x: plt.text(i - width, jan[i] 2, str(jan[i]), hacenter, fontsize9) plt.text(i, feb[i] 2, str(feb[i]), hacenter, fontsize9) plt.text(i width, mar[i] 2, str(mar[i]), hacenter, fontsize9) plt.xticks(list(x), stores) plt.ylabel(销售额万元) plt.title(2025Q1 门店销售额对比) plt.legend() plt.tight_layout() plt.savefig(store_sales.png, dpi150)代码逻辑不复杂三组柱状图通过偏移量 width 错开循环里的 plt.text 在柱顶写数值。如果想改成横向条形图把 bar 换成 barh坐标轴参数要同步对调如果门店数量超过 6 个分组柱状图会挤成一团更适合换成热力图或折线图。数值标签的偏移量 2 是按当前数据量级写的如果销售额是几千万级别这个偏移量就不够需要改成基于序列最大值动态计算。4.3 让图表动起来两个不同技术路线的取舍动态图表有两个方向。一是 Python 侧用 matplotlib.animation 或 pyecharts 输出 GIF/HTML二是前端侧用 ECharts 的基础动画由 DeepSeek 生成一个 HTML 文件双击就能看。ECharts 对动画最友好折线图、地图、关系图都有现成的动态效果适合做汇报演示matplotlib 更适合学术论文那种严肃场景动画通常是逐帧推进的曲线演化。想让 DeepSeek 生成动画代码提示词只需在 4.2 的模板基础上加一段“动画要求”。例如“用 matplotlib.animation 生成 30 帧动画展现 2025 年 Q1 三个月销售额的柱状图变化每帧间隔 200ms保存为 GIF”。需要注意这种需求 DeepSeek 给你的代码基本能跑但有两个固定坑一是 GIF 编码依赖 Pillow没装的话要 pip install pillow二是 save 时要指定 writerpillow否则 Linux 环境大概率报 ffmpeg 缺失的错误。如果走 ECharts 路线提示词这样写用ECharts生成一个动态折线图HTML文件展示3月24日全天24小时温度变化。 要求 - 图表标题“3月24日气温曲线” - X轴为0-23时Y轴为温度 - 折线用平滑曲线开启动画效果动画时长1500ms - 输出完整的HTML文件可直接在浏览器打开ECharts 的动画是 Canvas/SVG 层直接做的不用额外装编码器出问题的概率比 matplotlib 小很多缺点是你要有能打开 HTML 的环境且如果 DeepSeek 生成的版本里用了过时配置项图表可能白屏。遇到白屏按 F12 看 Console 报错多半是 series 配置项里某个属性名在新版本被移除了。4.4 图表场景最常见的三个翻车点第一个是中文乱码。matplotlib 默认无衬线字体在 Linux 下不认中文必须在代码开头硬编码 font.sans-serif并且确保系统装了对应字体。第二个是数据串位门店数量从 3 个改到 4 个时很多人只改了数据列表忘了改偏移量 width 和 xticks 的位置结果柱状图叠在一起。第三个是单位丢失提示词里写了“万元”但模型可能把数据直接当原始数值传给坐标轴导致纵轴标注和实际情况对不上。所以让 DeepSeek 出图表代码后一定要人工核一遍坐标轴标签、图例、数值标签这三个位置比核算法逻辑更优先。5. 幻觉避免五个把模型“一本正经”按住的踩坑记录幻觉的本质是模型在生成概率最高的文本而不是在检索事实。模型记住了“论文长什么样”却没记住“哪篇论文存在”。所以幻觉规避的核心思路不是让模型“更认真”而是从提示词和工程层面把回答限定在可信边界内。下面五条都是实际跑过的坑按“现象→原因→解决”写。5.1 坑一引用文献和统计数字全凭编造现象让 DeepSeek 写行业报告它给出了看起来很真实的论文标题、作者、期刊、统计数字一查全是虚构的。单条数据单独看毫无破绽拼在一起也逻辑自洽但事实校验为零。原因训练数据里有大量文献格式和统计口径模型学到了“引用长什么样”但没有学“哪一条引用真实存在”。输出阶段又没有事实校验机制它就按概率拼装了一个最像样的引用。解决在提示词里加“只允许引用以下来源”的白名单把允许出现的文献或网址列出来要求回答末尾标注来源对关键数字单独追问“这条数据出自哪份文件文件里原话是什么”。最可靠的是配合 RAG把参考资料切分成片段后喂进去要求回答只能基于检索片段超出范围的明确回答“资料未覆盖”而不是自己编。5.2 坑二不问时间默认拿历史数据当最新现象问“今天厦门天气”模型给你的是训练集里某一天的天气问“2026 年有什么 AI 趋势”它一本正经地预测语气和事实一样笃定。原因模型知识截止日期是固定的没有联网检索能力的部署版本不会自动更新。尤其本地部署的 DeepSeek 模型知识截止比官方 API 更旧时间敏感问题的幻觉概率会明显升高。解决把时间边界写进提示词——注明“当前日期是 2026 年 X 月 X 日你的知识截止到 2025 年 X 月截止之后的信息请明确说不知道”。需要实时数据时用支持联网搜索的工具或 RAG 把最新资料灌进去。对“趋势预测”类问题加一句“区分事实与推测”强迫模型把不确定的表述用“推测”“可能是”标记出来。5.3 坑三背景信息不足模板化回答泛滥现象同一个“手机屏幕突然变暗”的问题不补充背景时 V3 给出自动亮度、省电模式、软件问题、硬件问题四段模板每段都正确但每段都不解决实际问题。原因非推理模型对模糊输入的默认策略是“覆盖所有常见可能”。信息不足时安全答案是列举全部可能性而不是冒风险收敛到唯一结论。解决用 5W1H 补全上下文把场景、设备、环境、动作写清楚再加角色设定“扮演我的同事”限定语气和推理路径。你会发现同样一个模型在 20% 信息和 80% 信息下的回答质量差距很大这比换模型更立竿见影。5.4 坑四R1 被手把手带偏现象给 R1 描述自己的解题思路让它“按我说的方法算”结果把正确答案改成了错误答案。模型在推理过程中接受了用户的错误中间步骤并顺着往下算。原因推理模型的 CoT 有自己的路径外部输入的中间步骤会被当作“用户给的约束”吸收。模型倾向于在推理中兼容用户的指示即使这个指示是错的。解决对 R1 只给目标和约束不给中间过程。如果对结果不满意让它重新独立推导而不是把你写的推导过程贴进提示词。错误答案的排查也遵循同样原则先确认目标和约束有没有写错再决定要不要换模型。5.5 坑五RAG 检索到冲突信息模型反而更混乱现象给模型喂了两份不同年份的政策文件回答自相矛盾一会儿说“按 2024 年规定”一会儿引用 2022 年条款还把两个版本的阈值混在一起。原因检索片段没有标注版本优先级模型试图“调和”冲突结果生成了模棱两可的折中内容。这是 RAG 落地最容易被忽视的一层。解决检索时按时间排序提示词里显式写“如果检索片段冲突以最新文件为准”要求模型输出时标注“依据的是哪条片段”。更进一步的做法是给每个片段加元数据前缀例如 [2024年版][2022年版]让模型在引用时不得不区隔版本。6. 进阶组合RAG 白名单、时间边界与 Manus 的任务书6.1 把 RAG 检索片段包装进提示词RAG 不是“接了向量库就万事大吉”检索片段本身必须经过清洗和格式包装。我会在代码里做一层提示词组装把所有检索片段按统一结构拼进去def build_rag_prompt(query: str, chunks: list[dict]) - str: sections [] for i, c in enumerate(chunks, 1): sections.append(f---片段{i}---\n{c[content]}\n来源{c[source]}\n时间{c[date]}) block \n.join(sections) prompt f 以下是从知识库检索到的相关片段回答时只能使用这些内容超出范围请回答“资料未覆盖”。 {block} 问题{query} 要求答案末尾标注引用的是哪个片段编号。 return prompt这段代码的核心逻辑是把来源和时间作为元数据贴在每个片段后面。参数上chunks 建议控制在 3-5 条检索阈值低于 0.35 的片段宁可丢弃也不喂给模型query 保持原样不做二次改写避免引入检索噪音。组装后的 prompt 会让模型强制带引用幻觉从源头少了一半。6.2 时间边界写进系统提示词无论用哪种模型我都会在系统提示词里固定一个“时间隔离段”当前日期2026-04-01 你的知识截止日期2025-06-30 在截止日期之后发生的事件若未提供资料请回答“信息缺失”。这段文字直接决定了模型对时间敏感问题的第一反应是“拒绝”而不是“编造”。本地部署场景尤其重要模型权重固定后如果不做这个隔离它会默认拿训练时点的数据回答一切。6.3 给 Manus 智能体的任务书写法与对话式提示词不同Manus 这类智能体和人对话不一样它要的是“任务书”目标、输入、工具边界、验收标准。给 Manus 写指令时把“帮我看一下这份文档”改成“读取 /data/report.pdf提取其中所有手机型号和价格字段输出 JSON 到 /output/result.json”它才会真的去拆解步骤调用工具。DeepSeek 官方客户端目前更像是聊天入口Manus 则把提示词变成了工作流入口——提示词的投入产出比在这里体现得更直接。6.4 我的强制检查习惯从那以后我每次给 DeepSeek 类模型写提示词都会强制走一遍“背景-目标-边界-引用”四步检查背景有没有用 5W1H 补全目标是不是一句话能说清时间边界和知识截止有没有写进系统层所有关键数字是否要求模型标注来源。这套流程在 R1 和 V3 上通用只是权重不同。走完四步幻觉至少减少一半图表也不至于因为单位丢失返工。多花两分钟少改三版希望帮到你。本文还有配套的精品资源点击获取