跳到主要内容
Prompt 提示词工程使用指南 | 极客日志
编程语言 AI 算法
Prompt 提示词工程使用指南 综述由AI生成 Prompt 提示词工程是指导大规模语言模型生成高质量输出的关键技术。其定义、构成要素及作用,涵盖问答、文本生成等场景。详细阐述了编写原则,包括指令明确、结构化输出、提供背景与示例等。通过具体实践案例,展示了如何利用分隔符、上下文信息及迭代优化来提升交互效率,帮助开发者在不微调模型的情况下适应不同应用场景,实现高效的内容创作与任务处理。
kaikai 发布于 2025/2/7 更新于 2026/5/7 8 浏览Prompt 提示词工程使用指南
一、前言
ChatGPT 的问世带动了一大批 AI 大模型开源并开始投入商用,尤其是从去年下半年开始,各类大模型纷纷问世,加之国内的互联网大厂也纷纷投入大模型赛道,让大模型的黑科技也能被很多不懂 AI 的小伙伴开始尝鲜。举例来说,像国内阿里的通义千问,百度的千帆大模型,腾讯的混元大模型等,都是很不错的 AI 大模型产品,得到了很多业内人士的认可。
但对于很多初学大模型或不懂大模型的人来说,如何真正用好 AI 大模型,并利用大模型强大的对话能力为日常事务助力增效呢?这就需要全面而系统的学习 Prompt 提示词工程。
二、Prompt 提示词工程介绍
2.1 Prompt 提示词工程是什么
Prompt 提示词工程(Prompt Engineering)是在自然语言处理(NLP)领域中一种重要的技术和方法,主要用于指导预训练的大规模语言模型(Large Language Models, LLMs)生成高质量、准确且有针对性的输出。
Prompt Engineering ,也称为'指令工程'或'提示词工程',是指通过设计、实验和优化输入提示词(Prompt)来引导预训练语言模型生成所需的响应或完成特定任务的技术。
2.1.1 Prompt 构成要素
一个有效的 prompt 通常包含以下几个关键要素:
引导语或指示语 :明确告诉模型需要完成什么样的任务;
上下文信息 :提供必要的背景知识,帮助模型更好地理解问题;
任务描述 :明确地描述您期望模型执行的具体任务;
输出格式指示 :如果需要特定格式的输出,需要在 prompt 中指明;
角色设定 :为模型定义一个角色,以缩小问题范围并减少歧义;
2.2 Prompt 提示词工程有什么作用
Prompt 提示词工程 的作用在于指导和控制大规模语言模型(LLMs)的行为,使其能更准确、更有针对性地生成文本或完成人们下发的特定任务。下面结合实践经验总结了 Prompt 提示词工程的主要作用:
指导模型行为
明确任务 :通过精确的 prompt,可以明确地告诉模型需要执行什么任务,比如回答问题、创作故事、提供建议等;
上下文设置 :提供必要的背景信息,帮助模型更好地理解问题的上下文环境,从而给出更加贴切的回答;
控制内容输出质量
提高输出内容准确性 :精心设计的 prompt 可以帮助模型生成更准确、相关度更高的内容;
减少输出内容偏差 :通过提供适当的指导,可以减少模型可能产生的偏见或错误信息;
规定输出格式
格式化输出 :如果需要特定格式的输出,可通过 prompt 指定输出格式,比如表格、列表、段落、markdown 等;
标准化答案 :对于需要标准化回答的场合,比如考试答案或官方声明,可以通过 prompt 来规范输出;
促进创造性应用
创意生成 :规范的 prompt 可以激发模型创造力,生成新颖的想法、故事或艺术作品;
角色扮演 :通过定义角色或情境,使模型能够在特定角色下进行对话或创作;
无需反复训练
灵活调整 :通过修改 prompt,可以在不改变模型本身的情况下调整其输出,从而实现快速迭代和测试;
节省资源 :避免了重新训练模型所需的大量时间和计算资源;
助力教育和培训
:在教育领域,可通过设计特定的 prompt 来帮助学生或老师解决习题或进行学术研究;
教学辅助
模拟对话 :在培训场景中,使用 prompt 来模拟真实世界中对话或情景,帮助员工准备客户互动;
支持决策的制定
数据分析 :通过恰当的 prompt,可以从大量数据中提取有用的信息,支持决策过程;
趋势预测 :基于历史数据,通过 prompt 引导模型进行趋势分析和未来预测;
自然语言理解和生成
多语言支持 :通过适当的 prompt,可以使模型支持不同语言之间的转换和理解;
复杂任务处理 :对于复杂的自然语言处理任务,如机器翻译、摘要生成等,prompt 可以显著提升性能;
2.2.1 Prompt 提示词工程使用场景 Prompt Engineering 广泛应用于各类场景中,例如:
问答系统 :通过特定的 prompt 引导模型回答问题;
文本生成 :提供初始文本或上下文,让模型继续写作或创造新的内容;
代码生成 :根据描述性 prompt 生成代码片段;
翻译任务 :通过 prompt 指导模型完成语言间的翻译;
通过 Prompt Engineering,用户可以更好的控制和指导 AI 模型的行为,使其在不需要重新训练的情况下适应不同的应用场景。这是一种非常实用的技术,尤其对于那些无法或不便对模型进行微调的情况更为重要。
2.3 为什么要学习 Prompt 提示词工程 学习 Prompt 提示词工程 对于有效利用大规模语言模型(LLMs)来说非常重要,一方面可以为今后快速学习和使用各类大模型提供基础的技能储备,同时也为利用大模型拓展个人综合能力,为日常工作助力提效打开全新的视野,下面详细总结了学习 Prompt 提示词工程的作用:
提高交互效率 :快速响应,减少试错;
控制内容输出质量 :精准表达,减少误解;
创造性应用 :激发创意,艺术创作;
专业领域应用 :行业知识,满足特定需求;
教育与培训领域 :个性化学习,模拟实践;
决策支持 :数据分析,策略制定;
社交媒体和营销 :内容生成,个性化体验;
促进技术发展 :模型优化,社区贡献;
避免偏见和错误 :减少偏见,提高准确性;
三、Prompt 提示词工程元素构成与操作实践 在真正开始使用大模型之前,需要系统学习 Prompt 的使用,就像我们学习一门技术,一门编程语言,一门外语等,第一步,一定是先学习其基础的语法、结构,而后通过反复的大量的练习和实践,才能理解并掌握,下面我们也按照这样的思路来系统学习 Prompt。
3.1 前置准备 由于下文中将会涉及到较多的操作演示,在开始学习之前,请先准备好 1~2 个大模型的客户端工具,选择有很多,比如 ChatGpt,通义千问网页客户端,千帆大模型等都是可以的,我这里使用的是通义千问的网页客户端进行演示。
下面也列举国内的几个热门的大模型地址,以供学习使用。
3.2 Prompt 基本结构介绍与使用 在学习 mysql 查询语法的时候,还记得下面 mysql 的查询语法的完整结构吗:
SELECT [DISTINCT ] select_list
FROM table_references
[WHERE where_condition]
[GROUP BY group_by_list]
[HAVING having_condition]
[ORDER BY order_by_list]
[LIMIT limit_count [OFFSET offset_count]];
其实 Prompt 也有下面的完整语法结构,参考下面这个简单的公式:
名称 描述 示例 指令 词 (必须) 此部分为 prompt 的指令,告诉模型应如何响应 '简述'、'解释'、'翻译'、'总结'、'润色'、'写一篇文章"等 输入数据 (必须) 提供给模型的问题或具体內容,应清晰、完整,以确保模型生成满意的答案,注意控制长度,必要的时候建议分段发送 当需要总结时,提供原始的文本内容;当需要编写 SQL 代码时,提供的数据库表和字段信息 背景 (非必须) 与任务相关的其他信息,提供额外信息以帮助模型更好地理解需求 同样是写关于计算机的科普文章,是写给小学生还是计算机专业大学生,得到的内容会完全不同 输出要求 (非必须) 期望模型输出的指标或结构,比如:类型、字数 '请输出五条'XX'相关的事实,并按重要性排序:1. …,2. …,3. …',请按照 markdown、表格…形式进行输出
依据上面的 Prompt 语法结构,下面列举几个示例加以说明。
3.2.1 明确指令 对大模型来说,你可以将它作为一个拥有丰富知识库的大脑,只有指令足够的明确、清晰,它的理解成本才能最小,得到的回答也更贴合你的需要,比如输出下面这样的指令:
3.2.2 提供必要的原始内容 在某些场景下,我们需要大模型帮我们完成一些总结,概括,或者根据提供的内容,得到分析的结论,再比如,我们提供一个 mysql 的建表需求,为我们生成建表的 sql 和初始化数据等,那么你就需要提供一些原始的内容文本信息,这样大模型才能根据你提供的内容理解并得到你想要的,如下,提供了一个需求描述,希望大模型生成一张建表语句和初始化 sql,下发的指令如下:
请根据我提供的信息,生成一张 mysql 用户表,该表包括 5 个字段,主键,用户名,密码,邮箱,电话,之后,再初始化几条数据
大模型的响应内容如下,从响应的结果来看,大致是符合要求的,一般来说,其生成的内容,在拿来使用之前还需要人工做一些微调。
3.2.3 提供背景参考 在日常工作中,为了向同事或其他人清晰阐述我们的意思,并充分理解需求,有时候需要在真正提出需求之前提供需求的背景,提出背景不是必须的,但是很重要,清晰的背景可以为对方提供更完整的联想空间,从而对接下来需求的理解更加深刻,这对于大模型来说也是适用的,有了背景,大模型可以根据背景信息从知识库中一定程度上缩小检索的范围,得到的内容输出也更贴合要求,比如像大模型提供下面的指令:
针对小学生(小学生即为参考背景),发出下面的指令:
假如你现在面对的是一群小学生,请解释一下什么是量子力学
不难发现,得到的回答通过较多的形象的比喻来阐述量子力学的解释,符合小学生的理解这个阶段定位,而小学生即为我们的需求背景。
如果是面对研究生(研究生即为参考背景),再看看大模型给出的回答:
假如你现在面对的是高校的硕士研究生,请解释一下什么是量子力学
显而易见,在面对不同的群体时,大模型给出的输出内容是不一样的,这就是提供背景参考带来的效果,而这一点,恰恰是很多初次使用 LLM 类型的大模型用户容易忽视的一点。
四、Prompt 提示词工程编写原则与操作实践 在使用 Prompt 提示词工程之前,有一些基本的原则需要遵循,只有掌握了基本的编写原则,才能让大模型更好的辅助我们得到更符合预期的输出内容。
4.1 Prompt 提示词工程编写的几个原则 在编写 Prompt 提示词工程时,遵循一定的原则可帮助我们更有效地利用自然语言处理技术和生成高质量的内容。以下是一些重要的原则:
指令明确 :清晰表达意图,减少模糊。
指令具体 :提供具体细节,使用精确词汇。
指令结构化 :组织逻辑顺序,分段落或项目符号。
保持指令简洁 :保持简短,去除冗余。
保持指令一致性 :维持指令的统一风格,使用相同的术语。
尽量使用自然语言 :采用日常语言,避免过于技术化的术语。
情境相关性 :考虑实际情境,提供上下文信息。
指令的引导性 :给出示例,使用指令词。
根据指令结果反馈循环 :评估结果,迭代改进。
指令需遵守伦理道德 :尊重隐私,避免偏见。
注意指令的安全性 :避免有害内容,设置限制。
4.2 Prompt 提示词编写中常用的分隔符 在编写 Prompt 提示词时,合理使用分隔符,可以让大模型能够更好的理解指令要表达的意思,从而得到更符合要求的输出,下面总结了一些常用的指令,这在实际使用大模型时,可以通过实践来逐步理解并掌握,有一些常用的建议可以记住。
4.2.1 冒号 用于定义标签或者类别,后面跟具体的内容,参考示例:
4.2.2 空格
Generate a list of five fruits: apple orange banana strawberry kiwi
4.2.3 箭头 (->)
Text -> Summary
A long time ago in a galaxy far, far away…
4.2.4 竖线 (|)
Write an essay on the following topics: science | technology | society
4.2.5 逗号 (,)
List three colors: red, blue, green
4.2.6 横线 (-)
Introduction
Main points
Conclusion
4.2.7 小括号 (())
Write a story about a character (name: John) who travels through time.
4.2.8 大括号 ({})
{Name} is a famous {Occupation}.
4.2.9 方括号 ([])
[Optional] Include a bibliography at the end of the report.
4.2.10 等号 (=)
Title = The Art of Programming
Author = Jane Smith
4.2.11 特殊字符
#:用于注释或标签。
::用于冒号后接的内容是前一部分的说明或解释。
;:用于分割列表中的项目。
=:用于等式或赋值
4.2.12 换行符
4.2.13 自定义字符串 <start> 和 <end>:用于标记文本的开始和结束。
<user> 和 <assistant>:用于区分对话中的不同发言者。
<question> 和 <answer>:用于区分问题和答案。
4.2.14 HTML/XML 样式的标签 <tag> 和 </tag>:用于标记文本的特定部分
4.3 Prompt 提示词编写遵循原则操作实践
4.3.1 编写清晰、具体的指令 你应该通过提供尽可能清晰和具体的指令来表达希望模型执行的操作,这将引导模型给出正确的输出,并减少你得到无关或不正确响应的可能。
编写清晰的指令不意味着简短的指令,因为在许多情况下,更长的提示实际上更清晰且提供了更多上下文,这实际上可能导致更详细更相关的输出。
分割符可以清晰地表示输入的不同部分;
分隔符可以是:```,"",<>,,<\tag>等;
日常编写指令时可以记住一些常用的分隔符,可以很好的提升使用大模型的工作效率;
你可以使用任何明显的标点符号将特定的文本部分与提示的其余部分分开;
这可以是任何可以使模型明确知道这是一个单独部分的标记;
使用分隔符是一种可以避免提示注入的有用技术;
提示注入,是指如果用户将某些输入添加到提示中,则可能会向模型提供与您想要执行的操作相冲突的指令,从而使其遵循冲突的指令而不是执行您想要的操作;
输入里面可能包含其他指令,会覆盖掉你的指令,对此,使用分隔符是一个不错的策略。
如下的案例中,我们给出一段话并要求 大模型对内容进行总结,在该示例中我们使用 ``` 来作为分隔符:
新势力造车的现状呈现出激烈的竞争和两极分化的趋势。
新势力造车企业在面对传统车企的电动化转型和市场竞争时,面临着巨大的挑战。一方面,部分传统车企在电动化转型道路上展现出坚定的决心,凭借其实力雄厚、成本管控能力强以及产品实用质优价廉的特点,适应大众市场,更有可能在激烈竞争中生存下来。相比之下,新势力造车企业虽然车型定位偏向个性化,拥有特定的客群,但由于缺乏自我造血能力,依赖外部融资,难以长期维持。2024 年,造车新势力之间的竞争将更加激烈,两极分化将更加严重,一些企业可能会因为无法适应市场变化而被淘汰。
从市场格局来看,自主品牌领跑新能源汽车市场的趋势依旧明显。比亚迪、广汽埃安、长城汽车、长安汽车等企业保持了强劲的增长势头,而合资品牌也在加速新能源转化,如上汽大众 ID.家族实现了单月新车交付量的显著提升。造车新势力阵营中,理想汽车、蔚来汽车、小鹏汽车等企业通过不断创新和产品升级,试图在市场中占据一席之地。然而,也有一些企业因为市场策略失误或资金问题而面临困境,如威马汽车和天际汽车等
总的来说,新势力造车企业在面对传统车企的竞争和市场变化时,需要不断创新和提升自身实力,以适应市场的需求和变化。同时,企业也需要关注成本控制和资金管理,以确保能够在激烈的市场竞争中生存下来
然后大模型给出如下的输出,以 markdown 这种看起来比较舒服的排版方式输出了出来。
利用上文提到的分隔符,也可以使用下面这种格式的内容让大模型输出一段摘要信息:
新势力造车企业在面对传统车企的电动化转型和市场竞争时,面临着巨大的挑战。一方面,部分传统车企在电动化转型道路上展现出坚定的决心,凭借其实力雄厚、成本管控能力强以及产品实用质优价廉的特点,适应大众市场,更有可能在激烈竞争中生存下来。相比之下,新势力造车企业虽然车型定位偏向个性化,拥有特定的客群,但由于缺乏自我造血能力,依赖外部融资,难以长期维持。2024 年,造车新势力之间的竞争将更加激烈,两极分化将更加严重,一些企业可能会因为无法适应市场变化而被淘汰。
从市场格局来看,自主品牌领跑新能源汽车市场的趋势依旧明显。比亚迪、广汽埃安、长城汽车、长安汽车等企业保持了强劲的增长势头,而合资品牌也在加速新能源转化,如上汽大众 ID.家族实现了单月新车交付量的显著提升。造车新势力阵营中,理想汽车、蔚来汽车、小鹏汽车等企业通过不断创新和产品升级,试图在市场中占据一席之地。然而,也有一些企业因为市场策略失误或资金问题而面临困境,如威马汽车和天际汽车等
总的来说,新势力造车企业在面对传统车企的竞争和市场变化时,需要不断创新和提升自身实力,以适应市场的需求和变化。同时,企业也需要关注成本控制和资金管理,以确保能够在激烈的市场竞争中生存下来
请结合上面的内容,输出一段摘要
#
结构化的输出,这可以使大模型的输出结果更容易被用户解析和使用,仍然以上面的输出摘要为例,在大模型第一次输出结果之后,我们可以让它以表格的形式进行输出。
#
仍然以上面的结果为例,如果希望以 markdown 的格式输出,那么还可以指定具体的格式要求,如下:
将上述的输出结果以 markdown 的形式呈现出来,格式如下:
1、XXX
- XXX
- XXX
2、XXX
- XXX
- XXX
#### 4.3.4 保持指令的简洁性
在使用大模型进行提问时,一方面大模型自身对于单次输入的内容回答长度有限制,超过一定的长度限制后,反馈的输出结果准确性不好,另一方面,这也并不符合现实的对话场景下,通过一次性的问答就能得到我们预期的答案,简而言之,当你需要向大模型提问的内容很长,又希望得到相对精准且全面的回复,可以参考这几个经验:
- 将一次性提问的长文本内容,拆分成具有前后逻辑关联的较短的多个文本;
- 分多次进行提问,在一定的时间限度和语境内,大模型会记录上文的已回答的内容语义;
- 每次提问时,可基于大模型上一次的回复,进行递进式的提问,或者针对已经回复的内容进行微调,然后重新发起提问;
- 每次提问的文本内容不要太长,即指令尽量简短清晰,避免给大模型过多的理解成本;
下面看一个具体的示例,为了让大模型为我们提供 5 个短视频营销文案的标题,我们分多次提问,从而逐渐逼近最符合我们需求的输出内容;
**指令一:**
> 作为一个专业的营销策划师,请为我拟定 5 个关于创意短视频的文案标题
**指令二:**
> 注意,我的短视频受众群体主要是年轻的女性,内容尽量与时尚、好玩、有趣这些标签相关,请重新拟定
**指令三:**
> 基于你的回答,我现在想进一步缩小范围,提供时尚穿搭方面的,请重新拟定
通过上述大模型的回复,不难发现,通过这种模拟真实对话场景的提问,大模型可以不断的根据上下文的语义环境进行输出内容的调整,从而得到我们预期的结果。
#### 4.3.5 提供必要的上下文信息
也即上文提到的情境相关性,在一些复杂的场景中,比如你需要大模型帮你分析某个科学或技术问题,那么你必须提供相对完整的语境内容,否则大模型就是瞎猜了,为什么这么说呢,设想你是一个想写一篇针对某个技术观点的文章,但是你并不很懂技术,如何让大模型帮你写出一篇这样的文章呢?答案是,你要向大模型提出你的需求,比如你希望你的文章包括哪些章节,每个章节还包括哪些具体的子标题,每个章节中要重点突出哪些观点等,如下是一个具体的操作示例,是关于借助大模型我我们生成一个文章的提纲。
**指令一:**
我想写一篇关于移动互联网发展历程的文章,请为我拟定一个大纲
回复内容
**指令二:基于回复的内容,进行内容的校正,同时提供一些背景素材,以丰富回复的内容**
在你拟定的大纲中,我觉得并没有突出一些电商、短视频等移动 app,比如抖音、小红书、拼多多等 app 在发展历程中带来的影响,请重新拟定
回复内容
可以看到,在第二个指令中,基于第一个指令的回复内容并提供了新的背景信息之后,大模型就及时调整了回复的内容,按照需求将新的需求补充进去了。
#
Prompt 提示词工程是连接人类意图与 AI 模型能力的桥梁。通过本文的学习,我们了解了 Prompt 的基本结构、核心要素及编写原则。掌握清晰指令、结构化输出、背景提供及迭代优化的技巧,能够显著提升与大模型交互的效率和质量。在实际应用中,建议结合具体场景灵活运用上述方法,不断尝试和调整,以充分发挥 AI 大模型的潜力,实现工作流的自动化与智能化。
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
随机西班牙地址生成器 随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
Gemini 图片去水印 基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online