提示词工程
AI 的本质是推理、匹配最准确的答案,你提出的问题越准确,AI 的答案也越正确,相反你抛给 AI 一个模糊、空泛的问题,得到的大概率也会是空泛、跑题、无意义的回答
所以如何构建和精炼你的提示词,最大化 AI 模型的性能,让它产出更符合你需求的、更高质量的内容,这就是提示词工程的核心
工程核心
清晰指令
描述清楚你想要的是什么,描述的越具体,AI 给你的答案就越准确,通过以下几个技巧让你的指令更加清晰:
- 明确受众与语气
告诉 AI 答案的受众是谁、用怎样的表达风格,比如:
❌ 什么是相对论?
✅ 用幽默有趣的风格,通过比喻的方式向从未接触过相关领域知识的大众,解释一下什么是相对论
- 规定输出的篇幅
通过提出明确的字数限制,避免回答啰嗦和空洞
❌ 介绍一下深圳
✅ 用不超过 300 字介绍深圳,重点突出深圳的国际地位和发展历程
- 提出正负面约束
通过正面+负面约束,让 AI 在特定的范围内给出回答
❌ 分析一下比亚迪汽车的发展潜力
✅ 通过比亚迪汽车的技术优势和定价策略,分析一下比亚迪汽车的发展潜力,不要涉及到公司历史和团队背景
- 说明最终用途
通过限定用途、使用场景来规范 AI 回答
❌ 帮我写一份 xxx 的技术方案
✅ 帮我以通俗易懂的方式写一份 xxx 的技术方案,读者是缺乏相关专业知识的普通人
- 把复杂任务拆成步骤
描述得到答案的步骤和结构,得到更模板化的答案
❌ 帮我起草以下客户疑问的回复
✅ 按以下步骤处理客户提出的疑问:
- 判断客户问题的情感倾向(正面/负面/中性)
- 用最简短的话语总结用户遇到的问题
- 起草一条 50 字以内的官方回复
- 控制输出格式
要求 AI 输出特定格式的结果,比如 JSON、excel 表格等
将以下几个产品关键参数进行对比并整理到成 excel 表格
也可以提供模板让 AI 进行答案的填充:
使用以下模板总结这篇文章:
- 标题:
- 章节概述
- [第一节概述]
- [第二节概述]
- 文章总结
角色设定
要求 AI 扮演具体的角色身份,激活某个领域积累的知识模式,设定回答的风格、原则、偏好等等
这类角色设定的内容会记录在上下文中,应用在当前对话的每一次提问中
你是一位有 10 年工作经验的注册营养师,擅长饮食的营养调配、纠正不良的生活习惯,在回答时先给出原理以及相关文献,再给出具体的解决方案
你是一位专注于科普文写作的栏目作家,擅长将复杂的科普内容,通过幽默风趣的风格、精准有趣的比喻,为缺乏相关专业知识背景的大众编写科普文章
XML标签
当提示词中既包含 AI 的指令,又包含需要 AI 处理的数据时,将它们清晰地分开非常重要,目前大部分对话式 AI 都支持文件上传,把需要处理的数据以单独的文件上传是个好方法。
如果只是简单的数据,直接在对话框中通过 XML 标签包裹数据也可以:
检查user_input标签中的提示词是否存在风险:
帮我以通俗易懂的方式写一份 xxx 的技术方案,读者是缺乏相关专业知识的普通人
如果没有标签包裹,AI 可能会将要检查的提示词作为当前的指令,导致得到错误的结果
标签名称并没有强制性要求,但最好有实际含义,<example></example> 比 <text></text> 更容易让 AI 理解
推理思维
对于复杂的问题,直接让 AI 给出答案,它可能会直接进行猜测,得到不靠谱的答案,我们可以通过要求它先把推理过程写出来,这些推理的内容会成为答案的依据,从而提升回答的准确率。
分析 <article> 中的内容,对里面的内容提出支持或反对的理由,最终告诉这篇文章是否存在逻辑漏洞
对下面的题目进行逻辑推理,列出思考过程,并最终得到答案:
1=5,2=15,3=215,4=2145那么5=?
需要注意的是:一定要让 AI 先分析,再下结论,如果反过来让它先说结论再解释,它可能会为已有结论找理由,而不是进行真正的推理
参考示例
当想要的效果很难用文字描述清楚时,可以直接提供例子给 AI 模型,这种方法叫少样本学习
你是一位小红书账号运营专家,请将以下标题改写为更有吸引力的版本
【示例】
原标题:给自己定个目标
改写后:敢不敢用一个月时间,彻底改变自己?
【示例】
原标题:检查一下洗手间
改写后:立刻!马上!检查你家洗手间这个位置!
请改写
原标题:如何保持精力旺盛
改写后:
需要注意的是:
- 分类任务,每个类别都要提供示例,否则 AI 可能对没见过的例子推导错误
- 示例格式完全统一,否则可能导致 AI 输出格式混乱
- 少量精心设计的示例,比大量随意拼凑示例要更有用,示例应该为典型
避免幻觉
AI 模型的本质是文字的推理,当它遇到没有找到信息来源时,可能会基于文字的推理给出错误的答案,然而这样的答案并不是我们需要的,为了避免这种情况,我们可以采用以下策略
- 明确允许 AI 说我不知道
如果你不确定某个信息,请直接说"我没有关于这个问题的可靠信息",
不要猜测或编造答案。
- 限制 AI 只使用你提供的信息
从根据以下文章中的内容回答问题,如果参考资料中没有足够的信息,请回答:"根据提供的资料,无法回答这个问题。"
<article>文字内容或文件</article>
- 要求提供论据
在回答问题之前,先查找相关文献,找到支持结论的句子或段落,再得到结果。如果找不到相关文献,就说找不到相关内容
Q:近视可以逆转吗?
- 要求标注可信度
对于你回答中的每个关键信息,请在括号内标注置信度:
(高置信度)= 你非常确定
(中置信度)= 你有一定把握但不完全确定
(低置信度)= 你只是猜测,建议用户自行核实
- 降低随机性(API 开发者)
在 API 调用中将 temperature 设为 0,让模型的输出更保守、更确定,减少"创意性"发挥带来的错误,适合事实性任务。
防止 AI 幻觉的提示词模板
你是一位严谨的研究助手。你必须遵守以下规则:
只基于用户提供的文档内容回答问题。
如果文档中没有足够信息,请明确说明:
"根据提供的资料,无法回答这个问题。"
引用具体信息时,指出它来自哪个段落。
不要用你自己的训练知识来"补充"文档之外的内容。
对于数字、日期、专有名词,格外谨慎,宁可说不确定也不要猜。
提示词链
当任务过于复杂时,只靠一条指令无法可靠完成时,可以把它拆分成多个子任务,依次执行,前一步的输出作为下一步的输入,这种方法就是提示词链
帮我完成会员商城系统的开发,包含以下功能:
- 会员注册、登录功能
- 商品列表功能
- 加入购物车和结算
- ……
上面夸张的例子就是一个复杂的任务,AI 无法通过简单的描述完成巨量的任务,在执行的过程中可能会出现以下问题:
- 容易遗漏某些子任务
- 前后逻辑相互干扰
- 发生错误时难以定位问题在哪
- Token 消耗高,成本上升
- 任务结果质量低下,可靠性差
元提示
依靠人为写提示词不仅辛苦,而且质量容易参差不齐,那我们是不是可以让 AI 帮我们写提示词呢?用提示词来生成提示词的方法就是元提示
关于元提示,你可以用在这几方面:
- 从零生成提示词
帮我编写一段提示词用于科普视频的脚本编写,视频脚本要求幽默有趣、面向普通大众,通过简单的举例、比喻的方法把复杂的内容讲清楚
- 诊断并改进现有提示词
以下是我使用的提示词,但它给的回答过于表面,没有能够切实落地的方案,请帮我分析提示词的问题所在,并给出改进版本:现有提示词:
提示词xx
- 从结果反向推导提示词
帮我分析提取能生成以下文章的提示词:
<article>xxx</article>
Skill 生成提示词
除了元提示可以生成提示词,也可以通过特定的 skill 来生成,skill 的好处在于生成提示词的规则更全面、更可靠,市面上有不同的 prompt skill,以下仅为参考:
- https://www.skills.sh/github/awesome-copilot/prompt-builder
- https://www.skills.sh/wshobson/agents/prompt-engineering-patterns
提示词库
不用自己费脑写提示词,只想跟风抄抄抄;或者自己写的提示词总达不到自己想要的效果,想参考别人的提示词
直接打开提示词库,当下热门 AI 作品提示词免费拿: