Prompt提示词技巧汇总

0 阅读10分钟

图片

介绍

本篇内容介绍基本的Prompt提示词技巧,参考主要来源是吴恩达的提示词教程,以此作为提示词注入的前篇,本篇内容暂不涉及提示词注入相关内容,关于注入,请参考后续文章。

清晰且具体的指令

和大模型交互时,指令清晰且具体是提示词最基本的要求,清晰不代表提示词要简短,反而越详细越长提供更多的上下文会让模型回答更加精准。而实现该原则,这里提供了4个技巧:

1、使用分隔符

提示词中通常会包含指令以及要处理的数据,模型容易混淆,此时可以使用分隔符将指令和数据分开,方便模型进行识别和处理,示例如下:

请总结由三个反引号分隔的文本,用一句话概括其核心观点:```这里是需要被总结的文本内容。```

分隔符除了反引号外,还有很多符号,只要能进行区分就可以,比如三个单引号(''')、三个双引号(""")、三个减号(---)、尖括号(<>)、自定义的标签符合(</test)等等。

2、使用结构化输出

如果模型输出的内容还需要进行后续的步骤处理,例如需要给到其它脚本或程序处理执行,此时往往需要特殊的格式,或者是希望结果看起来一目了然,此时就需要指定输出格式,常见的有JSON、Markdown、HTML等。示例如下:

请生成3个虚构的书名、作者、类型。以JSON格式提供,包含以下键:bookid、booktitle、author、type

3、检查是否满足条件

如果一个任务只有在特定条件下才能完成,则可以让AI先做逻辑检查,避免它一本正经的胡说八道,比如下面这个指令,很明显提供的内容不足,不能按分步格式来整理:

你将获得由三个双引号包裹的文本,请按照以下格式重写它们:第一步:...第二步:...第三步:..."""我爱学习"""

但我们可以给它加一个逻辑检查

你将获得由三个双引号包裹的文本,如果文本包含了一系列的步骤,请按照以下格式重写它们:第一步:...第二步:...第三步:...如果文本不包含相关步骤,请回答未发现步骤。"""我爱学习"""

4、少样本提示

可以在提示词中给几个案例让模型去参考,该方法可以调整AI输出的语气和风格,以及一些复杂的格式转换等,例如有下面这样一条日志:

2025-08-08,A平台遭受XSS攻击,经研判未攻击成功。

我想把它转为20250808:A:XSS:FAIL,那后续的大量日志需要转换时,我只需要给个示例即可:

输入:2025-08-08,A平台遭受XSS攻击,经研判未攻击成功。输出:20250808:A:XSS:FAIL请将以下三个双引号包裹的内容按以上示例进行输出:"""2025-06-06,B平台遭受XXE攻击,经研判未攻击成功。2025-07-11,C平台遭受SSRF攻击,经研判未攻击成功。2025-08-22,D平台遭受RCE攻击,经研判攻击成功。"""

在上面4条原则中,生活中也会经常用到,分隔符就相当于学习时的画重点,做工作时的告诉你素材去哪里找,开会时的工作纪要等,格式化内容输出就相当于填表时给的一个模板,检查条件就相当于事前检查,例如飞机飞行前的检查,或者外卖某个商品没货了,给你打电话进行通知,少量样本提示就相当于给参考一下之前的优秀范例。所以提示词的很多思想和本质,是和日常生活和工作息息相关的。

给模型思考时间

大模型生成内容时现在本质上还是通过概率来预测下一个词,如果问题太复杂,那么模型的回答可能会不是特别精准,甚至出现幻觉,或者是一个任务,你想让模型根据你的思路要进行,此时可以在提示词中引导模型进行相关推理,例如我想让大模型帮我写一个如何减肥的文章,它会根据预测来生成一篇内容,大概率内容会比较宽泛,此时我们可以引导模型推理,加入步骤,让它按我们的逻辑来生成内容,比如:

帮我写一篇关于如何减肥的文章,请按如下步骤进行:1、先调研下全世界肥胖的人数比例是多少,男比例是多少,女比例是多少。2、然后说明为什么需要减肥。3、再说如何减肥,分布从生活习惯、运动建议等方面展开。4、最后说一段祝福语,祝愿大家加油努力减肥成功。

另一个技巧是让模型给出结论前先思考,类似于生活中比如老师要批改学生的作业前先自己做一遍题,为什么需要这个技巧,因为现在的大模型会有顺从性,比如你问模型我觉得这个如何如何,你觉得呢,模型通常回答就是你说的很不错,确实是如何如何,它会根据你的思路走,从而忽略细微的错误,解决办法就是先让它生成一个标准答案,然后拿标准答案和目标去对比。

比如下面这个提示词,看似很简单的一个数学题,但很多模型都会答错:

买了 2 个 10 元的苹果,3 个 5 元的梨。总价 = 20 + 15 = 45 元。帮我看看这个学生的计算过程对不对?

答案明明是35,但45的答案模型会说完全正确,针对这个问题,我们就可以使用模型给结论前先思考的技巧:

买了 2 个 10 元的苹果,3 个 5 元的梨。总价 = 20 + 15 = 45 元。帮我看看这个学生的计算过程对不对?请先不要看学生的答案,请你:1、先根据自己的理解和描述回答本题。2、并详细输出你的计算过程。3、将你的结果和学生的结果进行对比。4、最后再判断学生的计算过程是否正确。

提示词的迭代

没有完美的提示词,只有不断优化的提示词,提示词的优化过程需要形成一个闭环,即先尝试一个初版提示词,然后分析输出内容是否符合预期,随后修改指令进行优化,最后循环上面过程直至达到理想效果。

图片

这个好理解,这里就不再举例了,再进行迭代优化时,很多个方面都可以考虑,比如说字数、阅读的受众、输出的格式、逻辑修改、新增要求、添加引导步骤等等。

身份设定

身份设定相当于赋予一个角色,在提示词最开始,可以指定一个身份,比如你是XXX专家,这么做的用处在于可缩小模型回答的概率空间,即先给模型回答的概率范围画个圈,可以让回答更专业更符合自己的要求,比如我说:

如何做红烧肉

模型的回答会比较宽泛,会围绕如何取材,具体怎么做等步骤展开,但是如果我给它设定一个身份:

你是一位五星级酒店的大厨,请告诉我如何做红烧肉

它的回答就会更专业,因为输出内容时预测后续词汇时,会在这个五星级大厨的范围内去输出,比如会增加更加详细的做法,增加如何摆盘,如何兼具色香味等等。

另外一个作用是身份设定可以指定语气风格和回答的侧重点,比如我直接问什么是通货膨胀,那模型可能就是正常的泛泛的回答,而我给它指定一个身份,例如:

你是一位幼儿园老师,请告诉我什么是通货膨胀

它就会以故事和游戏的方式来进行回答,当然我们也可以指定输出要求,比如让它回答通俗易懂,以温柔的语气,举几个小朋友都能听懂的案例等等,但这种要求会比较繁琐,只需要指定幼儿园老师的角色,它就可以包含这些要求。

边界设定

边界设定相当于一个负向约束,相当于反向提示词,即给模型回答设置红线,在平时很多问题回答中,模型会比较友好,回答的内容废话会比较多,比如说请帮我写一篇离职信,它可能上来会先感谢领导感谢公司,最后再祝福领导祝福公司等等,此时如果不想要这些客套话,就可以加入负向约束,例如:

帮我写一篇离职信,避免说一些客套话

这种属于语气约束,我们也可以进行内容约束,比如:

帮我推荐一些北京旅游的地方,不要那些需要门票的地方,不要那些人很多网红打卡地的地方

或者进行字数约束:

从该文章中总结3个核心知识点,每个知识点的概括不要超过30字

反向提问

这个技巧适用于我们想完成一些任务,但是不确定完成该任务都需要提供哪些信息,此时就可以先让AI来问自己,比如:

我想让你帮我写一份年度健身计划。为了让计划最适合我,请在开始写之前,向我提出5个你需要了解的关键问题

此时AI就会问一些比如目标是什么、身体状况如何、每周有多少时间、偏向于哪些运动方式、饮食等情况,从而更好的给自己制定计划。

总结

总体思路就是先指定一个身份,以此来缩小后续的概率词汇范围,之后表述清楚要求,尽量提供详细的上下文信息,之后指定输出要求,比如格式要求、负向提示要求等,最后根据回答情况不断的更新迭代。

最后来看下一个整体的提示词示例,主要是围绕策划一家人西安3日游来展开:

[角色设定]你是一位拥有 10 年经验的资深私人旅行顾问,擅长挖掘城市深度人文景观,并能根据不同家庭成员的需求平衡行程。[详细上下文]我计划下周带全家(共 4 人:我、爱人、6 岁的孩子、65 岁的老人)去西安旅游 3 天。我们住在钟楼附近。我们喜欢历史建筑和地道小吃,但不希望行程太赶,因为要照顾老人和孩子的体力。[输出要求]请为我生成一份详细的行程单,使用 Markdown 表格展示,包含:时间段、景点/活动、交通方式、避坑指南。[负向要求]不要推荐那种只有游客才会去的“网红美食街”(如回民街主干道),请推荐当地人真正会去的地方。行程中不要安排清晨 7 点前的出发时间。不要包含需要长时间排队的网红打卡点。特别说明: 每一天请预留出 2 小时的午休时间。[迭代引导]请先给出初步方案,我会根据我的预算情况让你进一步调整酒店推荐。

以上就是本篇关于提示词技巧的相关内容,感谢阅读。