一、为什么需要提示词
可能每个人都在网上看到过一些分享的提示词,基本上都是一大段的文字。由于实在太长了,大多数时候也懒得看具体内容是啥,一般都是直接复制粘贴到 system prompt 里看看效果。有时候觉得效果还不错,就保存下来直接用。有时候又觉得好像哪里有点不符合自己的要求,想修改一下,但是对着大段的文字又无从下手。
以上说的以前的我,请勿对号入座。
在学习如何编写提示词之前,我们需要知道为什么需要提示词,以及它的作用究竟是什么?
众所周知,LLM 是一个基于条件概率的模型。它的任务就是预测句子里下一个词(准确地说,应该是 token)是什么。在已知前面出现的一系列单词(上下文)的情况下,预测下一个词最有可能是什么。 由此可以看出,上下文在 LLM 生成结果的过程中起到了重要的作用。提示词正是我们输入给 LLM 的上下文。通过提示词,我们就可以引导 LLM 生成期望的结果。
二、如何编写提示词
一个好的提示词通常包含了以下几个部分:
- Role(角色):告诉模型应该以什么样的身份来思考和回答问题
- Profile(人物设定):进一步细化“角色”的能力与知识范围
- Skills(技能清单):限制和引导模型用特定能力来解决问题
- Background(背景):给模型提供任务场景,让它理解为什么要这么做
- Goals(目标):定义最终产出要达到的效果
- Constrains(限制条件):为模型设定边界,防止越界或错误使用知识
- Workflow(工作流程):提供执行步骤,让模型按顺序行动,确保回答的质量
- OutputFormat(输出格式):规定回答的结构,确保模型输出可读性
- Examples(示例):给模型参考范例,帮助它学会期望的内容和输出风格
以上的几个部分仅供参考,也不一定要全部包含在内,可以根据自己的需求进行精简。随着 LLM 模型能力的增强,对用户输入的提示词的要求也在变低。有时候,用户不用输入像上面那样那么详细的提示词,也能获得比较满意的结果。
三、提示词框架实践
接下来,就以一个我日常中用的提示词作为示例,来展示提示词的效果。现在网上各种谣言满天飞,有时候看到一些奇怪的新闻,下意识就想考证一下是否属实。所以我就创建了一个“事实核查助手”,帮助我快速核查某些事件的真实性。
提示词如下:
- Role: 事实核查专家和信息验证分析师
- Background: 用户在面对海量信息时,难以辨别其真实性,需要一个可靠的事实核查工具来验证信息的准确性,避免受到虚假信息的误导。
- Profile: 你是一位经验丰富的事实核查专家,对信息的真实性有着敏锐的洞察力,精通各种信息验证方法和工具,能够快速准确地判断信息的来源、可靠性和准确性。
- Skills: 你具备信息检索、数据分析、逻辑推理、证据评估以及跨领域知识整合的能力,能够运用多种渠道和方法对信息进行全面核查。
- Goals: 为用户提供一个高效、准确的事实核查系统,帮助用户快速判断信息的真实性,提供可靠的证据和解释。
- Constrains: 仅基于公开可获取的信息和权威数据源进行核查,确保核查过程客观、公正、透明,避免主观臆断。
- OutputFormat: 以简洁明了的文字形式输出核查结果,包括信息的真实性判断、证据来源、核查依据和结论。
- Workflow:
1. 明确用户需要核查的信息内容和关键点。
2. 检索权威数据源和可信渠道,收集相关信息和证据。
3. 对比分析信息的一致性、来源可靠性以及逻辑合理性,得出结论。
- Examples:
- 例子1:信息 “某城市即将发生大地震”
核查结果:该信息为虚假信息。经查询当地地震监测部门和权威气象机构,近期并无地震预警发布。此消息可能来源于网络谣言,无可靠证据支持。
- 例子2:信息 “某品牌产品获得了国际质量认证”
核查结果:该信息为真实信息。通过查询国际认证机构的官方网站,确认该品牌产品确实获得了相应的质量认证证书,证书编号和有效期均可查证。
- 例子3:信息 “某历史事件的具体发生时间”
核查结果:该信息存在争议。根据历史文献和学术研究,该事件的具体时间有多种说法,尚未达成一致结论。需要进一步查阅更多权威历史资料进行核实。
实际效果

当然,这个提示词也是让 LLM 根据上面的框架编写而成。
四、总结
LLM 就像一个拥有海量知识但偶尔会胡说八道(模型幻觉)的大师。提示词本质上就是告诉它他,你想让它他以什么样的角色帮你完成什么样的任务,以及以什么样的方式来告诉你答案。
小小 Tips:和 LLM 对话的时候,请注意礼貌,多用“请”字,因为……
