位置: IT常识 - 正文

ChatGPT 编写模式:如何高效地将思维框架赋予 AI ?

编辑:rootadmin
ChatGPT 编写模式:如何高效地将思维框架赋予 AI ?

推荐整理分享ChatGPT 编写模式:如何高效地将思维框架赋予 AI ?,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

如何理解 Prompt ?

Prompt Enginneering

prompt 通常指的是一个输入的文本段落或短语,作为生成模型输出的起点或引导。prompt 可以是一个问题、一段文字描述、一段对话或任何形式的文本输入,模型会基于 prompt 所提供的上下文和语义信息,生成相应的输出文本。

举个例子,对于一个语言模型,prompt 可以是 "The cat sat on the",模型可以通过对接下来的词语进行预测,生成类似于 "mat"、"chair"、"sofa" 等不同的输出:

The Cat

上图为 Stable Diffusion 生成 (Prompt: The cat sat on the , Steps: 30, Sampler: Euler a, CFG scale: 7, Seed: 234310862, Size: 512x512, Model hash: d8722b4a4d, Model: neverendingDreamNED_bakedVae)

Prompt 在人工智能语言生成领域中扮演着重要的角色,因为它可以帮助模型更好地理解用户意图,并生成更准确、有意义的文本内容。诸如于如下的 prompt

women back view without face, flowing dress, edge of the sea, backview, back turned to the camera, upon the glow of the setting sun, sun below the horizon, golden light over the water, hair sways gently, Chinese style clothes, black hair,

可以在 Stable Diffusion 生成图片(配置了 negative prompt):

所以,质量看上去不错,但是可能不是你想要的。在 ChatGPT 则可以生成文本,质量上也是相似的,但是对于 AI 输出的文本来说,质量并没有这么直观。

应用好 Prompt 的核心思想:概念与类比

开始之前,可以看一下这个问题示例:

设计模式的要素是哪些?

对于 AI 领域的 prompt 编写来说,我们通常使用的模式有哪些?

能将 AI 领域的 prompt 常见的设计模式用 "设计模式要素" 的格式一一表达吗?

核心思想,将设计模式要素作为一个概念,让 AI 类比到 prompt 里的模式。详细见:

design-pattern.analogy

design-pattern.analogy2

当然了,类比和定义概念不一定都会成功。

基础模式

四种基础模式:

By example (示例模式):在这种模式下,我们给模型提供一些示例文本,模型需要生成与示例文本类似的文本。这种模式通常用于生成类似于给定示例的文本,例如自动生成电子邮件、产品描述、新闻报道等。示例文本可以是单个句子或多个段落,具体取决于任务的要求。

By instruction template (指令模板):在这种模式下,我们给模型提供一些明确的指令,模型需要根据这些指令生成文本。这种模式通常用于生成类似于技术说明书、操作手册等需要明确指令的文本。指令可以是单个句子或多个段落,具体取决于任务的要求。

By specific (特定指令):在这种模式下,我们给模型提供一些特定信息,例如问题或关键词,模型需要生成与这些信息相关的文本。这种模式通常用于生成答案、解释或推荐等。特定信息可以是单个问题或多个关键词,具体取决于任务的要求。

By proxy(代理模式):在这种模式下,可以充当了一个代理,代表某个实体(例如人、角色、机器人等)进行操作或交互。代理模式的核心思想是引入一个中介对象来控制对实际对象的访问,从而实现一定程度上的隔离和保护。诸如于在 ChatGPT 中,"act as xxx" 可以让 ChatGPT 充当一个代理,扮演某个角色或实体的身份,以此来处理与该角色或实体相关的任务或请求。

By specific

Prompt Enginneering

在这种模式下,我们给模型提供一些示例文本,模型需要生成与示例文本类似的文本。这种模式通常用于生成类似于给定示例的文本,例如自动生成电子邮件、产品描述、新闻报道等。示例文本可以是单个句子或多个段落,具体取决于任务的要求。

如 翻译、 告诉我,以我们的开头来说:

定义一下 prompt 工程

类似的场景还可以有:

翻译一下:永和九年,岁在癸丑,暮春之初,会于会稽山阴之兰亭,修禊事也。

转为现代汉语:永和九年,岁在癸丑,暮春之初,会于会稽山阴之兰亭,修禊事也。

对应的,还有一系列的子模式

子模式

如我们通过下面的 prompt 转换了 ChatGPT 输出的子模式:

转化为 markdown 的 """ markdown {}""" 表格形式,其中的字段为英语模式、中文、简述、示例。

表格示例:

ChatGPT 编写模式:如何高效地将思维框架赋予 AI ?

By Instruction Template

Instruction

在这种模式下,我们给模型提供一些明确的指令,模型需要根据这些指令生成文本。这种模式通常用于生成类似于技术说明书、操作手册等需要明确指令的文本。指令可以是单个句子或多个段落,具体取决于任务的要求。

如下是一个示例:

使用 STAR 原则与下面的格式总结一下这段话:"""最近几天,因为工作 + 兴趣的原则,我在研究用 text 2 image 来展示如何演进 prompt、用 text 2 article 来展示充足 prompt 的优点、结合 GitHub Copliot 来实现 prompt 完成工作。然后,我在本地部署了一个 Stable Diffusion、使用 ChatGPT 写作展示 text 2 article、在 IDEA 中使用 GitHub Copilot。最后,得到了多篇文章和好多的文章阅读量、几个 Jupyter 代码段、以及一些经验。"""情境(Situation):任务(Task): <comma_separated_list_of_task>行动(Action): -||-结果(Result): -||-

输出文本时要注意中英文之间插入空格,留出间隔,诸如于 """Hello 你好""",用这种方式输出一下刚才的文本:

情境(Situation): 最近几天,在工作和兴趣的驱动下,研究如何使用 text 2 image 和 text 2 article 展示 prompt 演进以及结合 GitHub Copliot 来完成工作。任务(Task):研究如何使用 text 2 image 展示 prompt 的演进过程研究如何使用 text 2 article 展示 prompt 的优点结合 GitHub Copliot 来实现 prompt 完成工作行动(Action):本地部署了一个稳定的 Diffusion 模型使用 ChatGPT 撰写文章来展示 text 2 article 的效果在 IDEA 中使用 GitHub Copilot结果(Result):得到了多篇文章和很多的文章阅读量获得了几个 Jupyter 代码段以及相关经验By proxy

Proxy

Proxy 模式是指用户可以要求 ChatGPT 以特定的身份、角色或者身份扮演某个特定的人、角色或对象来生成回答。这种模式通常用于模拟某个特定人物的语言风格和语境,生成特定情境下的对话、回答或其他形式的文本。

例子 1:公司客服

当使用 ChatGPT 来代替某个人或实体时,可以使用 by proxy 模式。

例如,可以使用以下 prompt 提问 ChatGPT 代替某个公司的客服:

我是一家餐饮公司的客服,有顾客反馈说我们的菜品质量有问题,我们该怎么处理呢?

在这种情况下,ChatGPT 会扮演客服的角色,并根据提示来回答,从而帮助公司解决问题。ChatGPT 可以使用类似以下的方式来回答:

您好,很抱歉听到您的反馈。我们将会仔细审核您的反馈,并尽快采取相应措施来解决这个问题。为此,我们需要更多的信息来进一步了解您的反馈,包括哪些菜品有问题,具体问题是什么等。请问您可以提供更多的信息吗?

例子 2:终端计算机

这种方式可以通过让 ChatGPT 扮演某个实体的角色,例如客服、销售代表等等,来帮助用户解决问题。

在 Awesome ChatGPT Prompts 中:

Human: Act as a Linux Terminal

Robot:

ChatGPT: I want you to act as a linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. do not type commands unless I instruct you to do so. When I need to tell you something in English, I will do so by putting text inside curly brackets {like this}. My first command is pwd

By demonstration

在这种模式下,我们给模型提供一些特定信息,例如问题或关键词,模型需要生成与这些信息相关的文本。这种模式通常用于生成答案、解释或推荐等。特定信息可以是单个问题或多个关键词,具体取决于任务的要求。

示例:

任务表述 颜色代表了温度例子1 绿色代表寒冷例子2 蓝色代表寒冷例子3 红色代表温暖例子4 黄色代表温暖执行 橙色代表什么例子 2:

上图为 Cohere AI 官网的示例图,对应的聊天记录如下:

English: Writing about language models is fun.Roish: Writingro aboutro languagero modelsro isro funro.English: The weather is lovely!Roish:增强 Prompt再生成模式

当我们无法确定我们的 prompt 是否准确,便可以通过 AI 来帮我们丰富 prompt 。如我在:基于编程、绘画、写作的 AI 探索与总结 的例了一样

phodal: 我想写一段话描述一张照片,帮我美化一下:一年轻女子穿着裙子,背对着镜头,在海边看着日落,太阳已经到地平线下面了,她的头发在风中飘动。

ChatGPT: 这张照片中的场景令人心醉,一位年轻女子穿着一条裙子,站在海边,背对着镜头,凝视着地平线下的夕阳。太阳已经沉入了海面,一片金黄色的光芒在海面上弥漫,照亮了整片海洋,仿佛这个时刻被定格在了时间的某个角落里。女子的头发随着微风轻轻飘动,轮廓被余晖映照得柔和而温暖。她的目光凝视着远方,仿佛在思考着生命的意义和无尽的未来。这张照片中蕴含着一种深刻的内涵,让人感受到时间和自然的力量,也让人思考着自己在这个宏大而美丽的世界中的角色和意义。

再去除掉不合适的词,进行润色,就可以再创作:

phodal:翻译成英语

然后再提炼直至扔至 Stable Diffusion 中:

women back view without face, flowing dress, edge of the sea, backview, back turned to the camera, upon the glow of the setting sun, sun below the horizon, golden light over the water, hair sways gently, Chinese style clothes, black hair,

而后,根据图片的结果,我们再反复修改。

控线模式

TODO:这里需要给出更精准的定义,如何让 ChatGPT 做到?

在没有推出 ControlNet,对于一个 Stable Diffusion 玩家,它需要反复地吟唱咒语,才能获取到满意的图案。

在有了 ControlNet 之后,我们可以创建一个 Openpose,或者是导入图片从图片生成 pose,相当于是给机器一个示例,而后生成的图片就会有令人满意的姿势:

在 GitHub Copilot,我们可以通过设置输入和输出,结合函数名三个要素,Copilot 就能生成大致准确的代码:

GitHub Copilot 示例

而在必要的情况下,添加一下注释就能更完整了:

fun listAllDirInDir(dir: String): List<File> {// ignore hidden files}

生成的代码会更贴近我们的需求。

拆解

对于复杂问题,ChaGPT 无法一次性输出全部内容,需要进行拆解。

已知问题:ChatGPT 当前版本会丢失上下文。

我们来定义一下 DDD 游戏的步骤,一共有 6 个步骤,步骤如下:"""第一步. 拆解场景。分析特定领域的所有商业活动,并将其拆解出每个场景。第二步. 场景过程分析。选定一个场景,并使用 "{名词}已{动词}" 的形式描述过程中所有发生的事件,其中的名词是过程中的实体,其中的动词是实体相关的行为。第三步. 针对场景建模。基于统一语言和拆解出的场景进行建模,以实现 DDD 设计与代码实现的双向绑定。第四步. 持续建模。回到第一步,选择未完成的场景。你要重复第一到第四步,直到所有的场景完成。第五步. 围绕模型生成子域。对模型进行分类,以划定不同的子域,需要列出所有的模型包含英语翻译。第六步. API 生成。对于每一个子域,生成其对应的 RESTful API,并以表格的形式展现这些 API。"""需要注意的是,当我说 """ddd 第 {} 步: {}""" 则表示进行第几步的分析,如 """ddd 第一步: 博客系统""" 表示只对博客系统进行 DDD 第一步分析。我发的是 """ddd: {}""",则表示按 6 个步骤分析:明白这个游戏怎么玩了吗?

完整过程见:DDD Sample

概念模式集Language is Language

对于 ChatGPT 来说,语言就是语言,他不区分自然语言和编程语言,甚至有可能编程语言对它更友好。所以我们可以直接通过编程语言与之交流:

我有下列遗留代码,我想在接口的函数名、参数名不变的情况下(可以新参数,旧的参数不能变)加入新功能:module.exports = async function loadYamlFile(filepath, workdir = path.dirname(filepath)) { const content = await fs.readFile(filepath, 'utf8'); // 读取文件内容 // TODO: 将 content 看做ejs模板的字符串,进行渲染,如果传入了渲染ejs时的context值不为undefined,就进行渲染,否则不进行渲染。 // TODO:将渲染后的结果传给yaml.load const data = yaml.load(content); // 解析YAML为JSON对象 // 遍历JSON对象,查找$ref属性 const processRef = async (obj) => { if (typeof obj === 'object' && obj !== null) { // 如果是对象 if ('$ref' in obj) { // 如果包含$ref属性 const refPath = path.join(workdir, obj.$ref.split('#')[0]); // 获取引用文件路径 const pointer = obj.$ref.split('#')[1]; // 获取JSON指针 // TODO: 递归调用的时候,取出context中以obj.$ref的属性值作为属性名的值作为新的context向下传递 const refData = await loadYamlFile(refPath, path.dirname(refPath)); // 递归读取引用文件 const value = getValueByPointer(refData, pointer); // 修复了 # 号问题 return value; } else { // 如果不包含$ref属性,递归处理子属性 for (const prop in obj) { obj[prop] = await processRef(obj[prop]); } } } return obj; };

上述描述会比纯自然语言更容易描述我们的需求,适合于更精细的指导。同时,不一定是编程语言,结构化的

本文链接地址:https://www.jiuchutong.com/zhishi/299061.html 转载请保留说明!

上一篇:一维信号的频域特征分析python(一维频率分布表)

下一篇:【Zabbix实战之部署篇】Zabbix客户端的安装部署方法

  • 马志明相声黄大仙(魅族mx四核怎么样)(马志明相声大全 黄族民)

    马志明相声黄大仙(魅族mx四核怎么样)(马志明相声大全 黄族民)

  • 红米note11pro+是什么处理器

    红米note11pro+是什么处理器

  • 海尔洗衣机err7什么故障(海尔洗衣机err7故障处理图解)

    海尔洗衣机err7什么故障(海尔洗衣机err7故障处理图解)

  • oppo手机来电闪光灯在哪里设置(oppo手机来电闪灯怎么设置的)

    oppo手机来电闪光灯在哪里设置(oppo手机来电闪灯怎么设置的)

  • 苹果7能更新12.4吗(苹果7能更新到最新版本吗)

    苹果7能更新12.4吗(苹果7能更新到最新版本吗)

  • 通话音量关不彻底(通话音量打开)

    通话音量关不彻底(通话音量打开)

  • 陌陌隐身了还能被发现(陌陌隐身了还能出现在附近的人)

    陌陌隐身了还能被发现(陌陌隐身了还能出现在附近的人)

  • lshift键在哪

    lshift键在哪

  • 荣耀笔记本和华为笔记本有什么区别(荣耀笔记本和华为手机互联)

    荣耀笔记本和华为笔记本有什么区别(荣耀笔记本和华为手机互联)

  • 爱奇艺手机号码换了怎么办(爱奇艺手机号码被占用怎么办)

    爱奇艺手机号码换了怎么办(爱奇艺手机号码被占用怎么办)

  • 备忘录时间可以修改吗(备忘录的时间)

    备忘录时间可以修改吗(备忘录的时间)

  • 天猫精灵会自动录音吗(天猫精灵会自动联网吗)

    天猫精灵会自动录音吗(天猫精灵会自动联网吗)

  • 华为手机怎么扫描照片(华为手机怎么扫码连接wifi)

    华为手机怎么扫描照片(华为手机怎么扫码连接wifi)

  • wps表格怎么查找人名(wps表格怎么查找重复内容)

    wps表格怎么查找人名(wps表格怎么查找重复内容)

  • 什么叫wifi直连(wifi直连有什么用处)

    什么叫wifi直连(wifi直连有什么用处)

  • 小米6什么时候升级miui11(小米6什么时候上市的)

    小米6什么时候升级miui11(小米6什么时候上市的)

  • 手机淘宝在哪查余额(手机淘宝在哪查看几颗心)

    手机淘宝在哪查余额(手机淘宝在哪查看几颗心)

  • 小米上划内容中心怎么关闭(小米设置上划)

    小米上划内容中心怎么关闭(小米设置上划)

  • 手机一天开关机五次(手机一天开关机最好不超过几次)

    手机一天开关机五次(手机一天开关机最好不超过几次)

  • 爱剪辑的黑屏视频素材在哪(爱剪辑视频黑屏)

    爱剪辑的黑屏视频素材在哪(爱剪辑视频黑屏)

  • beta版已过期解决办法(beta版已过期 ios)

    beta版已过期解决办法(beta版已过期 ios)

  • iphone7强制恢复出厂(iphone7强制恢复出厂设置重新激活)

    iphone7强制恢复出厂(iphone7强制恢复出厂设置重新激活)

  • Windows7旗舰版系统查看后台正在运行的程序的方法(我告诉你windows7旗舰版)

    Windows7旗舰版系统查看后台正在运行的程序的方法(我告诉你windows7旗舰版)

  • hottray.exe是什么进程 有什么作用 hottray进程查询

    hottray.exe是什么进程 有什么作用 hottray进程查询

  • 马罗沃泻湖中的珊瑚礁,所罗门群岛 (© WaterFrame/Alamy)(罗马湖在哪)

    马罗沃泻湖中的珊瑚礁,所罗门群岛 (© WaterFrame/Alamy)(罗马湖在哪)

  • 前端实现文件下载的方法(前端实现文件下载列表)

    前端实现文件下载的方法(前端实现文件下载列表)

  • js数组模式是什么(js数组entries)

    js数组模式是什么(js数组entries)

  • 公司怎么进行网上注册
  • 消费税的账务处理流程
  • 血液制品3%增值税税率
  • 个人承包工程怎么交个税
  • 缴纳契约计税依据包含增值税吗
  • 未达起征点销售额是含税还是不含税
  • 向香港公司支付服务费税率
  • 卷烟消费税纳税环节有几个
  • 稽查查补税款能缓缴
  • 红字发票是否要修改往期申报表
  • 拆迁补偿款上交财政
  • 劳动局仲裁支付的补偿怎么做账?
  • 以前年度损益调整属于哪类科目
  • 筹建期间取得的专用发票怎么入账
  • 企业应纳税所得额计算例题
  • 商贸有限公司要报地税吗
  • 职工因公出差伙食补助标准
  • 员工激励该怎么表达
  • 文化事业建设费减免政策
  • 一般纳税人未达到起征点要交税吗
  • 应付职工薪酬所得税汇算清缴
  • 衍生金融资产属于投资性资产吗
  • 苹果macbook 系统
  • 免租期房产税增值税如何计算
  • win11多开
  • 债权转增资本的条件
  • PHP:Memcached::getServerByKey()的用法_Memcached类
  • 该内存不能为read怎么解决?win+r弹不出来也不好使
  • 收到税局退回增值税
  • 偿还不了债务会怎么样
  • 期房如何快速卖出
  • php java c#
  • 农业产品征税范围注释财税字[1995]52号a
  • 递延收益会计科目的账务处理
  • web过滤器的常见应用
  • 视觉机械臂操作视频
  • Vue3通透教程【十二】TS类型声明优势
  • 原生php和框架php的区别
  • 当月交印花税会计分录
  • 发票验证不过去会怎么样
  • 利用职务之便谋取私利是什么罪
  • 新版发票填开操作流程
  • 安装sql server 2008硬件要求
  • sqlserver 存储过程 临时表
  • 电脑访问另一台电脑访问权限
  • c#调用excel
  • 季报业务活动表怎么做
  • 金蝶利息收入的正确分录
  • 公益基金会的发起人是谁
  • 科目余额表如何核对
  • 小规模纳税人所得税怎么计算
  • 预计产品质量保证损失计入什么费用
  • 押金抵货款怎样写协议
  • 合同章盖成公章
  • 工资薪金个人所得税怎么申报
  • 在途物资入库怎么记账
  • mysql5.7.35安装配置教程
  • xp系统鼠标右键无法弹出菜单
  • linux用户空间获取TCP序号
  • dll进程
  • win7系统安装软件乱码
  • yarn和npm一起使用冲突
  • 如何在eclipse
  • ubuntu搭建ss
  • 飞车超人助手官网
  • EGL简介
  • shell脚本一百例
  • 表单jsp
  • 以下关于js说法错误的是
  • javascript概述及作用
  • javascript点击切换div内容
  • 用shell脚本创建用户
  • eclipse出现an error has occurred
  • python 批量操作
  • android drawpath
  • 国家税务总局验证码
  • 水库占地怎么缴耕地占用税
  • 什么是征收率什么是税率
  • 河南三门峡税务社保缴费电话
  • 深圳坪山税务局电话人工客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设