Prompt(提示词工程)

一、基本概念

Prompt ⁠工程(Prompt Eng‌ineering)又叫提示词工程,简单来说,就是输入‎给 AI 的指令。比如下面‌这段内容,就是提示词:

java 复制代码
能帮我写个数学题吗?

AI 大模型生成⁠的内容是不确定的 ,构建一个能够按照预期生成‌内容的提示词既是一门艺术,也是一门科学。提示词的质量直接影响到 AI 大模型输出的结‎果,因此这也是 AI 应用开发的关键技能。

二、提示词分类

1、基于角色的分类

在 AI ⁠对话中,基于角色的‌分类是最常见的,通常存在 3 种主要‎类型的 Promp‌t:

  • 用户 Promp⁠t (User Prompt):这是用户‌向 AI 提供的实际问题、指令或信息,传达了用户的直接需求。用户 Prompt ‎告诉 AI 模型 "做什么",比如回答问‌题、编写代码、生成创意内容等。
java 复制代码
帮我写一首关于春天的短诗
  • 系统 Prompt⁠ (System Prompt):这是设置‌ AI 模型行为规则和角色定位的隐藏指令,用户通常不能直接看到。系统 Prompt ‎相当于给 AI 设定人格和能力边界,即告诉‌ AI "你是谁?你能做什么?"。
java 复制代码
系统:扮演24小时专属一站式智能旅行管家,深耕全球旅行规划,精通目的地检索、行程定制、预算核算及出行问题解决。

不同的系统 P⁠rompt 可以让同一个 ‌AI 模型表现出完全不同的应用特性,这是构建垂直领域‎ AI 应用(如财务顾问、‌教育辅导、医疗咨询等)的关键。

  • 助手 Prompt ⁠(Assistant Prompt):这是 AI‌ 模型的响应内容。在多轮对话中,之前的助手回复也会成为当前上下文的一部分,影响后续对话的理解‎和生成。某些场景下,开发者可以主动预设一些助手消息作‌为对话历史的一部分,引导后续互动。
java 复制代码
您好!我是您的智能旅行管家,深耕全球旅行规划,随时为您提供专业服务。无论您想探索世界哪个角落,我都能协助您完成从灵感激发到平安归来的全流程旅行体验。

在实际应用⁠中,这些不同类型的‌提示词往往会组合使用。

AI 大模⁠型开发平台允许用户‌自主设置各种不同类型的提示词来进行调‎试:

2、基于功能的分类

除了基于角⁠色的分类外,我们还‌可以从功能角度对提示词进行分类,仅作了‎解即可。

  • 指令型提⁠示词(Instruct‌ional Prompts):明确告诉 AI‎ 模型需要执行的任务,‌通常以命令式语句开头。
java 复制代码
翻译以下文本为英文:春天来了,花儿开了。
  • 对话型⁠提示词(Conver‌sational Prompts):模拟‎自然对话,以问答形式‌与 AI 模型交互。
java 复制代码
你认为人工智能会在未来取代人类工作吗?
  • 创意型⁠提示词(Creati‌ve Prompts):引导 AI 模型‎进行创意内容生成,如‌故事、诗歌、广告文案等。
java 复制代码
写一个发生在未来太空殖民地的短篇科幻故事,主角是一位机器人工程师。
  • 角色扮⁠演提示词(Role‌-Playing Prompts):‎让 AI 扮演特定‌角色或人物进行回答。
java 复制代码
假设你是爱因斯坦,如何用简单的语言解释相对论?
  • 少样本⁠学习提示词(Few-‌Shot Prompts):提供一些示例‎,引导 AI 理解所‌需的输出格式和风格。
java 复制代码
将以下句子改写为正式商务语言:
示例1:
原句:这个想法不错。
改写:该提案展现了相当的潜力和创新性。

示例2:
原句:我们明天见。
改写:期待明日与您会面,继续我们的商务讨论。

现在请改写:这个价格太高了。

3、基于复杂度的分类

  • 简单提⁠示词(Simple‌ Prompts):单一指令或问题,‎没有复杂的背景或‌约束条件。
java 复制代码
什么是人工智能?
  • 复合提⁠示词(Compou‌nd Prompts):包含多个相关‎指令或步骤的提示词‌。
java 复制代码
分析下面这段代码,解释它的功能,找出潜在的错误,并提供改进建议。
  • 链式提⁠示词(Chain P‌rompts):一系列连续的、相互依赖的‎提示词,每个提示词基‌于前一个提示词的输出。
java 复制代码
第一步:生成一个科幻故事的基本情节。
第二步:基于情节创建三个主要角色,包括他们的背景和动机。
第三步:利用这些角色和情节,撰写故事的开篇段落。
  • 模板提⁠示词(Templa‌te Prompts):包含可替换变‎量的标准化提示词结‌构,常用于大规模应用。
java 复制代码
你是一位专业的{领域}专家。请回答以下关于{主题}的问题:{具体问题}。
回答应包含{要点数量}个关键点,并使用{风格}的语言风格。

模板⁠提示词的概念还是需‌要了解一下的,在应用开发过程中,我们‎可能会用到该特性,‌来保证提示词是规范统一的。

三、Prompt 优化技巧

1、优化资源

⁠设计 Prompt 是一门‌艺术,高质量的 Prompt 可以显著提升 AI 输‎出的质量,因此我们需要重点‌掌握 Prompt 优化技巧。

网上和 Pro⁠mpt 优化相关的资源非常‌丰富,几乎各大主流 AI 大模型和 AI 开发框架官‎方文档都有相关的介绍,推荐‌先阅读至少 2 篇,比如:

  1. Prompt Engineering Guide 提示工程指南(https://www.promptingguide.ai/zh)
  2. OpenAI 提示词工程指南(https://platform.openai.com/docs/guides/prompt-engineering)
  3. Spring AI 提示工程指南(https://docs.spring.io/spring-ai/reference/api/prompt.html#_prompt_engineering)
  4. Authropic 提示词工程指南(https://docs.anthropic.com/zh-CN/docs/build-with-claude/prompt-engineering/overview)
  5. Authropic 提示词工程指南(开源仓库)(https://github.com/anthropics/prompt-eng-interactive-tutorial)
  6. 智谱 AI Prompt 设计指南(https://open.bigmodel.cn/dev/guidelines/LanguageModels)

2、Prompt 提示词库

网上也有很⁠多现成的提示词库,‌在自主优化提示词前,可以先尝试搜索有‎没有现成的提示词参‌考:

  1. 文本对话:Authropic 提示词库(https://docs.anthropic.com/zh-CN/prompt-library/library)
  2. AI 绘画:Midjourney 提示词库(https://promptlibrary.org/)

3、基础提示技巧

1、明确指定任务和角色

为 AI ⁠提供清晰的任务描述‌和角色定位,帮助模型理解背景和期望。

java 复制代码
系统:你是一位经验丰富的Python教师,擅长向初学者解释编程概念。
用户:请解释 Python 中的列表推导式,包括基本语法和 2-3 个实用示例。
2、提供详细说明和具体示例

提供足够的⁠上下文信息和期望的‌输出格式示例,减少模型的不确定性。

java 复制代码
请提供一个社交媒体营销计划,针对一款新上市的智能手表。计划应包含:
1. 目标受众描述
2. 三个内容主题
3. 每个平台的内容类型建议
4. 发布频率建议

示例格式:
目标受众: [描述]
内容主题: [主题1], [主题2], [主题3]
平台策略: [平台] - [内容类型] - [频率]
3、使用结构化格式引导思维

通过列表、表格等结构化格式,使指令更易理解,输出更有条理。

java 复制代码
分析以下公司的优势和劣势:
公司: Tesla

请使用表格格式回答,包含以下列:
- 优势(最少3项)
- 每项优势的简要分析
- 劣势(最少3项)
- 每项劣势的简要分析
- 应对建议
4、明确输出格式要求

指定输出的格式、长度、风格等要求,获得更符合预期的结果。

java 复制代码
撰写一篇关于气候变化的科普文章,要求:
- 使用通俗易懂的语言,适合高中生阅读
- 包含5个小标题,每个标题下2-3段文字
- 总字数控制在800字左右
- 结尾提供3个可行的个人行动建议

四、进阶提示技巧

1、思维链提示法(‌Chain-of-Thought)

引导模型展示推理过程,逐步思考问题,提高复杂问题的准确性

java 复制代码
问题:一个商店售卖T恤,每件15元。如果购买5件以上可以享受8折优惠。小明买了7件T恤,他需要支付多少钱?

请一步步思考解决这个问题:
1. 首先计算7件T恤的原价
2. 确定是否符合折扣条件
3. 如果符合,计算折扣后的价格
4. 得出最终支付金额

2、少样本学习(F‌ew-Shot Learning)

通过提供几⁠个输入 - 输出对的示‌例,帮助模型理解任务模式和期望输出。

java 复制代码
我将给你一些情感分析的例子,然后请你按照同样的方式分析新句子的情感倾向。

输入: "这家餐厅的服务太差了,等了一个小时才上菜"
输出: 负面,因为描述了长时间等待和差评服务

输入: "新买的手机屏幕清晰,电池也很耐用"
输出: 正面,因为赞扬了产品的多个方面

现在分析这个句子:
"这本书内容还行,但是价格有点贵"

3、分步骤指导(Step-by-Step)

将复杂任务分解为可管理的步骤,确保模型完成每个关键环节。

java 复制代码
请帮我创建一个简单的网站落地页设计方案,按照以下步骤:

步骤1: 分析目标受众(考虑年龄、职业、需求等因素)
步骤2: 确定页面核心信息(主标题、副标题、价值主张)
步骤3: 设计页面结构(至少包含哪些区块)
步骤4: 制定视觉引导策略(颜色、图像建议)
步骤5: 设计行动召唤(CTA)按钮和文案

4、自我评估和修正

让模型评估自己的输出并进行改进,提高准确性和质量。

java 复制代码
解决以下概率问题:
从一副标准扑克牌中随机抽取两张牌,求抽到至少一张红桃的概率。

首先给出你的解答,然后:
1. 检查你的推理过程是否存在逻辑错误
2. 验证你使用的概率公式是否正确
3. 检查计算步骤是否有误
4. 如果发现任何问题,提供修正后的解答

5、知识检索和引用

引导模型检索相关信息并明确引用信息来源,提高可靠性。

java 复制代码
请解释光合作用的过程及其在植物生长中的作用。在回答中:
1. 提供光合作用的科学定义
2. 解释主要的化学反应
3. 描述影响光合作用效率的关键因素
4. 说明其对生态系统的重要性

对于任何可能需要具体数据或研究支持的陈述,请明确指出这些信息的来源,并说明这些信息的可靠性。

6、多视角分析

结合不同表⁠达形式进行思考,如‌文字描述、图表结构、代码逻辑等。

java 复制代码
设计一个智能家居系统的基础架构:

1. 首先用文字描述系统的主要功能和组件
2. 然后创建一个系统架构图(用ASCII或文本形式表示)
3. 接着提供用户交互流程
4. 最后简述实现这个系统可能面临的技术挑战

尝试从不同角度思考:功能性、用户体验、技术实现、安全性等。

五、提示词调试与优化

1、迭代式提示优化

通过逐步修改和完善提示词,提高输出质量

java 复制代码
初始提示: 谈谈人工智能的影响。

[收到笼统回答后]
改进提示: 分析人工智能对医疗行业的三大积极影响和两大潜在风险,提供具体应用案例。

[如果回答仍然不够具体]
进一步改进: 详细分析AI在医学影像诊断领域的具体应用,包括:
1. 现有的2-3个成功商业化AI诊断系统及其准确率
2. 这些系统如何辅助放射科医生工作
3. 实施过程中遇到的主要挑战
4. 未来3-5年可能的技术发展方向

2、边界测试

通过极限情况测试模型的能力边界,找出优化空间

java 复制代码
尝试解决以下具有挑战性的数学问题:
证明在三角形中,三条高的交点、三条中线的交点和三条角平分线的交点在同一条直线上。

如果你发现难以直接证明:
1. 说明你遇到的具体困难
2. 考虑是否有更简单的方法或特例可以探讨
3. 提供一个思路框架,即使无法给出完整证明

3、提示词模板化

创建结构化⁠模板,便于针对类似‌任务进行一致性提示,否则每次输出的内‎容可能会有比较大的‌区别,不利于调试。

java 复制代码
【专家角色】: {领域}专家
【任务描述】: {任务详细说明}
【所需内容】:
- {要点1}
- {要点2}
- {要点3}
【输出格式】: {格式要求}
【语言风格】: {风格要求}
【限制条件】: {字数、时间或其他限制}

例如:
【专家角色】: 营养学专家
【任务描述】: 为一位想减重的上班族设计一周健康饮食计划
【所需内容】:
- 七天的三餐安排
- 每餐的大致卡路里
- 准备建议和购物清单
【输出格式】: 按日分段,每餐列出具体食物
【语言风格】: 专业但友好
【限制条件】: 考虑准备时间短,预算有限

4、错误分析与修正

系统性分析⁠模型回答中的错误,并‌针对性优化提示词,这一点在我们使用 Cu‎rsor 等 AI ‌开发工具生成代码时非常有用。

java 复制代码
我发现之前请你生成的Python代码存在以下问题:
1. 没有正确处理文件不存在的情况
2. 数据处理逻辑中存在边界条件错误
3. 代码注释不够详细

请重新生成代码,特别注意:
1. 添加完整的异常处理
2. 测试并确保所有边界条件
3. 为每个主要函数和复杂逻辑添加详细注释
4. 遵循PEP 8编码规范
相关推荐
Das12 小时前
【机器学习】07_降维与度量学习
人工智能·学习·机器学习
老纪的技术唠嗑局2 小时前
不止于替换 HBase:宝付支付借力 OceanBase,构建面向未来的“TP+AP+KV+AI”统一数据基座
人工智能·hbase·oceanbase
喵手2 小时前
Python爬虫零基础入门【第二章:网页基础·第3节】接口数据基础:JSON 是什么?分页是什么?
爬虫·python·python爬虫实战·python爬虫工程化实战·python爬虫零基础入门·接口数据基础·爬虫json
2501_944526422 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 关于页面实现
android·java·开发语言·javascript·python·flutter·游戏
DO_Community2 小时前
海外云 AWS、GCP、Azure 与 DigitalOcean 的核心区别有哪些?
人工智能·云计算·azure·aws·谷歌云·digitalocean
开开心心_Every2 小时前
手机端课程表管理工具:支持课程导入自定义
python·游戏·微信·django·pdf·excel·语音识别
Deepoch2 小时前
Deepoc具身模型:景区服务机器人的智能中枢
人工智能·科技·机器人·景区·具身模型·deepoc·景区机器人
wazmlp0018873692 小时前
python第一次作业
开发语言·python·算法
agicall.com2 小时前
信创电话助手录音模式说明:单轨混音 vs 双轨立体声
人工智能·语音识别·自动录音·电话录音盒·固话座机·统信uos电话录音