GPT 能够给我们带来很大的帮助,因此我们要好好利用它。我们希望 GPT 输出令我们满意的内容,影响 GPT 输出内容的因素有模型和输入(Prompt,提示词)。
- 模型:我们可以选择不同的 GPT 产品,它们的模型可能不同,譬如 ChatGPT、Claude、文心一言、通义千问等。如果有能力的话,可以对开源的模型进行微调,或者自己训练模型。
- 提示词:我们可以学习如何编写好的提示词,这样 GPT 输出的内容就会更符合我们的预期。
本文将介绍一个编写 GPT 提示词的公式,这个公式可以帮助我们编写出更好的提示词。任务指令 = 描述角色 + 描述背景信息 + 描述任务目标 + 描述输出要求。
指令公式
描述角色
在<描述角色>这一部分中,需要我们描述 GPT 和自己的角色。
- 描述 GPT 的角色,让 GPT 知道它应该扮演什么样的角色来回应请求
- 描述自己的角色,让 GPT 知道用户的角色是什么,使 GPT 输出更符合角色特征的内容
描述角色的话术:我想让你充当一个 xxx,我是一个 xxx。
示例对话(逐步推进):
- 请你为我编写实现冒泡排序算法的代码。
- 描述 GPT 的角色:**我想让你充当一个数据结构与算法的助手,你负责帮助我学习数据结构与算法。**请你为我编写实现冒泡排序算法的代码。
- 描述自己的角色:我想让你充当一个数据结构与算法的助手,你负责帮助我学习数据结构与算法;我是一个数据结构与算法的初学者。请你为我编写实现冒泡排序算法的代码。
描述背景信息
<描述背景信息>这一部分是为了给 GPT 提供任务的上下文,帮助 GPT 更好地理解任务。我们提供的背景信息越多、越准确,GPT 输出的结果就会越靠谱。如何更好的描述背景信息呢?
- 向 GPT 询问需要哪些关键信息:在向 GPT 描述自己的任务目标后,我们可以向 GPT 询问,问它需要我们提供哪些关键信息。然后根据 GPT 的回答,给 GPT 提供信息。向 GPT 询问需要哪些关键信息的话术:为了帮助我完成 xxx 任务,需要我给你提供哪些关键信息呢?
- 6H 原则:在向 GPT 提供背景信息时,我们可以遵循 6H 原则,即:who、what、when、where、why、how。这些问题可以帮助我们提供更多的背景信息,从而帮助 GPT 更好地理解任务。
示例对话:我想让你充当一个数据结构与算法的助手,你负责帮助我学习数据结构与算法;我是一个数据结构与算法的初学者。我想让你编写实现冒泡排序算法的代码,需要我给你提供哪些关键信息呢?
描述任务
在<描述任务>这一部分中,需要我们描述<我们希望 GPT 完成的具体任务>。
我们可以使用一些关键词来描述任务,譬如:编写、撰写、设计、解释、计算、生成、绘制、分析、预测、推荐、识别、检测。
描述任务的话术:请你为我 xxx。
- 请你为我编写实现 xxx 功能的代码
- 请你为我撰写一篇 xxx
- 请你为我解释 xxx
描述输出要求
最后,我们需要描述<我们希望 GPT 输出的内容应该满足什么标准或要求>。要求的类型有很多:
- 语言种类的要求:要求输出中文、要求输出英文
- 目标受众的要求:要求生成的内容适用于特定的受众群体,譬如:xxx 的初学者、xxx 的精通者、专业人士等
- 格式的要求:
- 要求以Markdown格式输出
- 要求对内容的重点部分加粗强调
- 要求输出表格 / 列表,使用 x 列:xx、xx,xx 列和 xx 列垂直居中
- 要求使用 Katex 渲染公式和行内的数学符号
- 其他的要求:
- 要求提供内容的(信息源链接)[link]
- 要求提供 x 个真实的案例 / 应用实例
- 要求生成的内容包括 xxx
- 内容结构:要求按照指定的模板大纲输出
示例对话:我想让你充当一个数据结构与算法的助手,你负责帮助我学习数据结构与算法;我是一个数据结构与算法的初学者。请你为我编写实现冒泡排序算法的代码。我对你输出的内容有以下的要求:
- 我要求你生成的内容适用于数据结构与算法的初学者。
- 我要求你对内容的重点部分加粗强调。
- 我要求你提供内容的(信息源链接)[link]。
最终的对话
我想让你充当一个数据结构与算法的助手,你负责帮助我学习数据结构与算法;我是一个数据结构与算法的初学者。我想让你编写实现冒泡排序算法的代码,需要我给你提供哪些关键信息呢?
要编写冒泡排序算法的代码,需要以下关键信息:
1. 编程语言:你需要告诉我使用哪种编程语言来实现冒泡排序。常见的选择包括Python、Java、C++等。
2. 排序的数据类型:你需要确定要排序的数据类型是什么,例如整数、浮点数、字符串等。
3. 数据输入方式:你可以选择手动输入一组数据进行排序,或者要求我生成随机数据用于排序。
4. 排序顺序:您需要确定是升序排序还是降序排序。冒泡排序可以根据需要进行升序或降序排序。
一旦提供了这些信息,我就可以为你编写相应编程语言的冒泡排序算法示例代码,并解释算法的工作原理。请提供上述信息,我将尽力帮助你学习数据结构与算法。
下面是我提供的关键信息:
- 编程语言:使用 Java 语言实现冒泡排序。
- 排序的数据结构:我希望将待排序的数据存储在 ArrayList 列表中来进行排序。
- 排序的数据类型:要排序的数据类型是浮点数 double。
- 数据输入方式:手动输入一组数据进行排序。
- 排序顺序:按降序进行排序。
请你根据我提供的关键信息,为我编写实现冒泡排序算法的代码。我对你输出的内容有以下的要求:
- 我要求你生成的内容适用于数据结构与算法的初学者。
- 我要求你提供内容的(信息源链接)[link]。
资源分享
免费的 GPT
无需翻墙
ChatGPT 镜像网站 - 最优网址 (aalib.net)
ChatGPT 国内免费平替列表 - 飞书云文档 (feishu.cn)
需要翻墙
GitHub - xx025/carrot: Free ChatGPT Site List 这儿为你准备了众多免费好用的ChatGPT镜像站点
AIGC 工具集
老北鼻AI导航 | 500+ AI工具导航大全,国内外AI工具箱网站,GPT,MJ (lbbai.com)
AI驿站 - AI工具集 - ChatGPT (51aiyz.com)
照夜清的AI小宇宙 —— 一个永久可以让你不花钱使用 ChatGPT 网站! (zhaoyeqing.cn)
AiTreasureBox/README.zh-CN.md at main · superiorlu/AiTreasureBox (github.com)
知识库
极客时间 AIGC 知识库 · 学习指南 - 飞书云文档 (feishu.cn)
ChatGPT 学习手册(保姆级) - 飞书云文档 (feishu.cn)
AIGC首页 - 飞书云文档 (feishu.cn)
疯刀 AI 训练营 - 飞书云文档 (feishu.cn)
ChatGPT学习工具包(应用级) - 飞书云文档 (feishu.cn)
ChatGPT 学习手册 - 飞书云文档 (feishu.cn)
学习资源
Hello from Learning Prompt | Learning Prompt
提示工程指南 | Prompt Engineering Guide (promptingguide.ai)
得到的 AI 付费课程:得到APP - 知识就是力量,知识就在得到 (dedao.cn)
- 「01.万维钢·AI前沿(科学作家)」:https://www.aliyundrive.com/s/2FYwQ7Ykc57
- 「02.快刀青衣·给职场人的AI写作课(得到联合创始人)」:https://www.aliyundrive.com/s/sx7beVNMs8c
- 「03.卓克·怎样用AI高效学习(科技观察家)」:https://www.aliyundrive.com/s/xUANEmu5txe
- 「04.刘飞怎样用AI绘画」:https://www.aliyundrive.com/s/MizHsJtT6q6
- 「05.马馺·怎样用AI做PPT(商业演讲策划人)」:https://www.aliyundrive.com/s/6LWUqquzTsM
- 「06.前沿课·吴军讲GPT(计算机科学家)」:https://www.aliyundrive.com/s/6LASda2Lkus