关闭

ChatGPT 的 Prompt 学习笔记

背景

  1. ChatGPT: OpenAI 公司推出的自然语言聊天工具,拥有很好的语言组织能力和知识储备,可以作为个人的第二大脑。
  2. AutoGPT: 基于 ChatGPT 的任务目标实现机制,拥有强大的自我组织能力。
  3. LangGPT: 一种系统的、优化性的 Prompt 生成工具,可以根据不同的任务目标生成不同的 Prompt 模板。
未来,Prompt 工程师将是一个趋势,个人的能力也会随着 AI 技术发展迅速加强。
在可预见的 5 年内,AI 的进步将是近百年的高峰期,最好抓住这个机会为自身赋能。
5 年后,由于网络资料的匮乏(人类文明资料积累已经被 AI 训练完),AI 升级可能会陷入瓶颈。
以下是个人使用和记录的一些 AI 指令明确的模板,可供参考。

一些提供 Prompt 的网站

  1. http://snackprompt.com
  2. http://flowgpt.com
  3. http://prompthero.com
  4. http://publicprompts.art
  5. http://learningprompt.wiki
  6. https://www.promptingguide.ai/zh

一些 AI 工具

  1. AI工具集:https://ai-bot.cn/
  2. AI工具:
  3. 镜像网站:

基础

利用简单的 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

框架

三个框架

  1. ICIO 框架
  2. CRISPE 框架
  3. BORE 框架

ICIO 框架

WX20230918-115850@2x

  • Instruction: 指令,即你希望 AI 执行的具体任务,比如翻译或者写一段什么文字
  • Context: 背景信息,给 AI 更多的背景信息引导模型做出更贴合需求的回复
  • Input Data: 输入数据,告知模型需要处理的数据
  • Output Indicator: 输出引导,告知模型我们要输出的类型或风格

模板复制

# Instruction
我希望你 {执行的具体任务,比如翻译或者写一段什么文字}

# Context
当前我需要 .... { 你希望 AI 知道的背景信息 }

# Input Data
我需要你处理的数据是 .... { 你希望 AI 处理的数据 }

# Output Indicator
我希望你的输出是 .... { 你希望 AI 输出的类型或风格 }

CRISPE 框架

WX20230918-115834@2x

  • Capacity and Role:能力和角色,ChatGPT 应扮演什么角色
  • Insight:见解,提供你请求的背后见解、背景和上下文
  • Statement:指令,你要求 ChatGPT 做什么
  • Personality:风格,你希望 ChatGPT 以何种风格、个性或方式回应
  • Experiment:实践,请求 ChatGPT 为你回复多个示例

模板复制

# Capacity and Role
我希望你能充当 { ChatGPT 应扮演什么角色 }

# Insight
我希望你能提供 { 你请求的背后见解、背景和上下文 }

# Statement
我希望你能 { 你要求 ChatGPT 做什么 }

# Personality
我希望你能以 { 何种风格、个性或方式回应 }

# Experiment
我希望你能为我回复 { 多个示例 }

BORE 框架

WX20230918-115757@2x

  1. 阐述背景B (Background):说明背景,为 ChatGPT 提供充足信息
  2. 定义目标O (Objectives):我们希望实现什么
  3. 定义关键结果R (key Result):我要什么具体效果试验并调整
  4. 改进E (Evolve) :三种改进方法自由组合
    • a. 改进输入:从答案的不足之处着手改进背景B,目标O与关键结果R
    • b. 改进答案:在后续对话中指正chatGPT答案缺点
    • c. 重新生成:尝试在 Prompt 不变的情况下多次生成结果,优中选优

模板复制

# Background
当前我需要 .... { 你希望 AI 知道的背景信息 }

# Objectives
我希望你能以 {具体目标} 为最终目的

# Key Results
我希望你能做到 {具体效果}

# Evolve
我希望你能用 {改进方法}
我希望输出结果 {改进效果}

工作流

  1. LangGPT: 生成 Prompt 模板
  2. 定义模板工作流
  3. 生成 Prompt 工作流模板
  4. 详细而具体的强化

LangGPT

详细参见: https://github.com/yzfly/LangGPT

现有 Prompt 创建方法有如下缺点:

  1. 缺乏系统性:大多是细碎的规则,技巧,严重依赖个人经验
  2. 缺乏灵活性:对他人分享的优质 prompt 进行调整需要直接修改 prompt 内容
  3. 缺乏交互友好性:优质 prompt 的配置和使用太复杂,有时往往还要学习 prompt 用法
  4. 未充分结合大语言模型的特性:
    1. 偏好分点、条理性叙述
    2. 长对话会出现遗忘问题
    3. 不同语言间性能存在差距

LangGPT 指在解决上面的问题:

  1. 系统性:提供模板,按照模板填鸭式写上相应内容即可
  2. 灵活性:
    1. 使用变量,轻松引用、设置和更改 prompt 中的内容,可编程性好
    2. 使用命令,轻松设置、执行预定义行为,可以无损性能情况下轻松设置中英文切换
  3. 交互友好:Workflow 轻松定义与用户交互,角色行为等,轻松引导用户使用
  4. 充分利用大模型能力:
    1. 模块化配置
    2. 分点条理性叙述
    3. 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 相关论文

加入论文共读小组

邀请标记你的阅读体验😉 | →