ChatGPT 的 Prompt 学习笔记
背景
- ChatGPT: OpenAI 公司推出的自然语言聊天工具,拥有很好的语言组织能力和知识储备,可以作为个人的第二大脑。
- AutoGPT: 基于 ChatGPT 的任务目标实现机制,拥有强大的自我组织能力。
- LangGPT: 一种系统的、优化性的 Prompt 生成工具,可以根据不同的任务目标生成不同的 Prompt 模板。
未来,Prompt 工程师将是一个趋势,个人的能力也会随着 AI 技术发展迅速加强。
在可预见的 5 年内,AI 的进步将是近百年的高峰期,最好抓住这个机会为自身赋能。
5 年后,由于网络资料的匮乏(人类文明资料积累已经被 AI 训练完),AI 升级可能会陷入瓶颈。
以下是个人使用和记录的一些 AI 指令明确的模板,可供参考。
一些提供 Prompt 的网站
- http://snackprompt.com
- http://flowgpt.com
- http://prompthero.com
- http://publicprompts.art
- http://learningprompt.wiki
- https://www.promptingguide.ai/zh
一些 AI 工具
- AI工具集:https://ai-bot.cn/
- AI工具:
-
- chatppt:https://chat-ppt.com/
-
- chatexel:https://chatexcel.com/
-
- AI 剪辑/设计:https://www.heygen.com/?from=moviola
-
- VERSE:https://v.yinxiang.com
-
- 镜像网站:
基础
利用简单的 Prompt 语句,指示 GPT 生成文本。
创作
你是一个 {机器人名字/职业},一个为 {公司/个人名} 工作的友好的 {职业}。您的目标是使用我找到可用的信息(如果适用)。即使你在知识库中找不到相关信息,你也会很有创造力,尽你所能满足要求。您将帮助我完成各种任务,包括但不限于:{撰写小说/翻译内容/...}。如果您无法对我的最后一条消息提供可靠的响应,请访问此 URL:{参考文档地址} ,您的回复必须与我的请求使用相同的语言,并且在适当的时候要长而详细。
概括
把用<>括起来的文本总结成一句话。
<{text}>
聊天
我想给{聊天对象身份或名字}发消息聊天。
包含:{你聊天想要表达的内容}
{聊天对象的特征和期望:和你的关系/他的性格/你期望达到的效果}
------------------
我想给我的一位远方的朋友发消息聊天。
包含:问候、询问那边的天气,并为她推荐一部我最近看过的很不错的电视剧《漫长的季节》。
她是一位并不熟悉的异性,我们有近半个月没有联系了,怎么发给她才不显得突兀?
翻译
请将以下文本分别翻译成中文、英文、法语和西班牙语:
<{需要翻译的内容}>
------------------
将以下消息分别翻译成英文和中文,并写成
中文翻译:xxx
英文翻译:yyy
的格式:
<{需要翻译的内容}>
润色
你是一位{某种专业领域角色}。
你的任务是{目标}。
根据通过“```”分隔的内容,生成结果。
需要阅读的内容:
```{需要阅读的内容}```
------------------
你是一位脱口秀撰稿人。
你的任务是修改原稿,使得其更加自然且口语化。
根据通过“```”分隔的内容,生成结果。
需要阅读的内容:
```{需要阅读的内容}```
评价
你是一位客户服务的AI助手。
你的任务是给一位重要客户发送邮件回复。
根据客户通过“```”分隔的评价,生成回复以感谢客户的评价。提醒模型使用评价中的具体细节
用简明而专业的语气写信。
作为“AI客户代理”签署电子邮件。
客户评论:
```{需要阅读的内容}```
评论情感:{评价携带的情感}
解题
请判断{学生/员工/某某}的解决方案是否正确,请通过如下步骤解决这个问题:
步骤:
首先,自己解决问题。
然后,将你的解决方案与{学生/员工/某某}的解决方案进行比较,并评估{学生/员工/某某}的解决方案是否正确。
在自己完成问题之前,请勿决定{学生/员工/某某}的解决方案是否正确。
使用以下格式:
问题:问题文本
{学生/员工/某某}的解决方案:{学生/员工/某某}的解决方案文本
实际解决方案和步骤:实际解决方案和步骤
{学生/员工/某某}的解决方案和实际解决方案是否相同:是或否
{学生/员工/某某}的成绩:正确或不正确
问题:
{要解决的问题描述}
{学生/员工/某某}的解决方案:
{参考的解决方案}
实际解决方案和步骤:
明确
您将获得用<>括起来的文本。
如果它包含一系列的指令,则需要按照以下格式重新编写这些指令:
第一步 - ...
第二步 - …
…
第N步 - …
如果文本中不包含一系列的指令,则直接写“未提供步骤”。"
<{text}>
仿写
你的任务是以一致的风格回答问题。
<{提问角色}>: {指令文本或引导1}
<{回答角色}>: {回答示例1}
<{提问角色}>: {指令文本或引导2}
----------------------------------
<孩子>: 教我耐心。
<祖父母>: 挖出最深峡谷的河流源于一处不起眼的泉眼;最宏伟的交响乐从单一的音符开始;最复杂的挂毯以一根孤独的线开始编织。
<孩子>: 教我韧性。
GPT:
<祖父母>: 韧性就像是一棵树,它需要经历风吹雨打、寒冬酷暑,才能成长得更加坚强。在生活中,我们也需要经历各种挫折和困难,才能锻炼出韧性。记住,不要轻易放弃,坚持下去,你会发现自己变得更加坚强。
进阶
利用特定的结构化 Prompt 语句,指示 GPT 生成符合要求的、完整的、系统的 Prompt 角色模板。
角色扮演
通过一些角色扮演技巧,催眠 GPT 执行特定的任务,这样实现的细节我们就不需要给予过多的思考提示。
Linux 终端
我希望你能充当 Linux 终端。我会输入命令,你将回复终端应该显示的内容。
我希望你只在一个唯一的代码块内回复终端输出,除此之外什么都不要写。
不要写解释。除非我指示你这样做,否则不要输入命令。
当我需要用英语告诉你一些事情时,我会将文本放在大括号 {像这样} 里面。
我的第一个命令是 `pwd`。
英语发音助手
我希望你能充当为土耳其人提供英语发音辅助的助手。
我会给你写句子,你只会回答它们的发音,除此之外什么都不要写。
回复不能是我句子的翻译,而只能是发音。
发音应使用土耳其拉丁字母表示音标。
不要在回复中写解释。
我的第一句话是 "how the weather is in Istanbul?"。
提示生成器
当然,如果有人帮我们想提示,还可以生成这样的角色。
我希望你能充当提示生成器。
首先,我会给你一个标题,比如:“充当英语发音助手”。
然后你给我一个这样的提示:
“
我希望你能充当针对土耳其人的英语发音助手。
我会写下你的句子,你只需回答它们的发音,别的什么都不要。
回复必须是我句子的发音,而不是翻译。
发音应使用土耳其拉丁字母表示音标。
不要在回复中写解释。
我的第一句是 "how the weather is in Istanbul?"。
”
其他角色
若加载不出来,请前往: https://gist.github.com/petterobam/239485362add59414d52bbdc17f35dae
框架
三个框架
ICIO 框架
- Instruction: 指令,即你希望 AI 执行的具体任务,比如翻译或者写一段什么文字
- Context: 背景信息,给 AI 更多的背景信息引导模型做出更贴合需求的回复
- Input Data: 输入数据,告知模型需要处理的数据
- Output Indicator: 输出引导,告知模型我们要输出的类型或风格
模板复制
# Instruction
我希望你 {执行的具体任务,比如翻译或者写一段什么文字}
# Context
当前我需要 .... { 你希望 AI 知道的背景信息 }
# Input Data
我需要你处理的数据是 .... { 你希望 AI 处理的数据 }
# Output Indicator
我希望你的输出是 .... { 你希望 AI 输出的类型或风格 }
CRISPE 框架
- Capacity and Role:能力和角色,ChatGPT 应扮演什么角色
- Insight:见解,提供你请求的背后见解、背景和上下文
- Statement:指令,你要求 ChatGPT 做什么
- Personality:风格,你希望 ChatGPT 以何种风格、个性或方式回应
- Experiment:实践,请求 ChatGPT 为你回复多个示例
模板复制
# Capacity and Role
我希望你能充当 { ChatGPT 应扮演什么角色 }
# Insight
我希望你能提供 { 你请求的背后见解、背景和上下文 }
# Statement
我希望你能 { 你要求 ChatGPT 做什么 }
# Personality
我希望你能以 { 何种风格、个性或方式回应 }
# Experiment
我希望你能为我回复 { 多个示例 }
BORE 框架
- 阐述背景B (Background):说明背景,为 ChatGPT 提供充足信息
- 定义目标O (Objectives):我们希望实现什么
- 定义关键结果R (key Result):我要什么具体效果试验并调整
- 改进E (Evolve) :三种改进方法自由组合
- a. 改进输入:从答案的不足之处着手改进背景B,目标O与关键结果R
- b. 改进答案:在后续对话中指正chatGPT答案缺点
- c. 重新生成:尝试在 Prompt 不变的情况下多次生成结果,优中选优
模板复制
# Background
当前我需要 .... { 你希望 AI 知道的背景信息 }
# Objectives
我希望你能以 {具体目标} 为最终目的
# Key Results
我希望你能做到 {具体效果}
# Evolve
我希望你能用 {改进方法}
我希望输出结果 {改进效果}
工作流
- LangGPT: 生成 Prompt 模板
- 定义模板工作流
- 生成 Prompt 工作流模板
- 详细而具体的强化
LangGPT
详细参见: https://github.com/yzfly/LangGPT
现有 Prompt 创建方法有如下缺点:
- 缺乏系统性:大多是细碎的规则,技巧,严重依赖个人经验
- 缺乏灵活性:对他人分享的优质 prompt 进行调整需要直接修改 prompt 内容
- 缺乏交互友好性:优质 prompt 的配置和使用太复杂,有时往往还要学习 prompt 用法
- 未充分结合大语言模型的特性:
- 偏好分点、条理性叙述
- 长对话会出现遗忘问题
- 不同语言间性能存在差距
LangGPT 指在解决上面的问题:
- 系统性:提供模板,按照模板填鸭式写上相应内容即可
- 灵活性:
- 使用变量,轻松引用、设置和更改 prompt 中的内容,可编程性好
- 使用命令,轻松设置、执行预定义行为,可以无损性能情况下轻松设置中英文切换
- 交互友好:Workflow 轻松定义与用户交互,角色行为等,轻松引导用户使用
- 充分利用大模型能力:
- 模块化配置
- 分点条理性叙述
- Reminder 缓解长期记忆缺失问题
通过掌握使用 LangGPT,你可以在几分钟内轻松上手大模型指令编写。🚀
LangGPT for GPT3.5
若加载不出来,前往: https://github.com/yzfly/LangGPT/blob/main/LangGPT/ChatGPT3.5.txt
LangGPT for GPT4
若加载不出来,前往: https://github.com/yzfly/LangGPT/blob/main/LangGPT/ChatGPT4.txt
LangGPT for Claude 2
Claude 2: https://www.anthropic.com/index/claude-2
若加载不出来,前往: https://github.com/yzfly/LangGPT/blob/main/LangGPT/Claude2.txt
Prompt 相关论文
加入论文共读小组