OpenAI官方Prompt工程指南详解!再也不怕写不好Prompt了!

使用AI聊天、AI写作、还是AI绘图等过程中Prompt具有重要意义。

那么Prompt要怎么写效果才好?有没有标准化的模板可以直接用?

有,OpenAI官方发布了一份提示词工程指南,该指南分享了6大策略即可让AI输出更好的结果。至此,终于算是有了一个权威且有效的Prompt工程标准文档。

图片

一、写出清晰的指令

模型是无法读懂人的心思的,所以不能让模型猜,而是直接告诉它你想要什么。

• 把话说清楚

提供尽量多的详细信息和上下文,把话说明白一点,不要太笼统。

错误示例:总结会议记录

正确示例:用一个段落总结会议记录。然后写下演讲者的 Markdown 列表以及他们的每个要点。最后,列出发言人建议的后续步骤或行动项目(如果有)

图片

• 让模型充当某个具体的角色

模型可以扮演多种角色,告诉它让它演什么角色,它就会更专业更明确。

示例:充当一个喜欢讲笑话的喜剧演员,每当我当我请求帮助写一些东西时,你会回复一份文档,其中每个段落至少包含一个笑话或有趣的评论。

图片

• 使用分隔符清楚地指示输入的不同部分

“”"、XML 标签、小节标题等分隔符可以帮助划分要区别对待的文本部分。可以帮助大模型更好的理解文本内容。

示例:用50个字符总结由三引号分隔的文本。“”“在此插入文字”“”

图片

• 指定完成任务所需的步骤

对于有些任务,最好指定为步骤 1、2,明确地写出这些步骤可以使模型更容易去实现它们。

示例:使用以下分步说明来响应用户输入。

步骤1 - 用户将为您提供三引号中的文本。用一个句子总结这段文字,并加上前缀“Summary:”。

步骤2 - 将步骤1中的摘要翻译成西班牙语,并添加前缀“翻译:”。

图片

• 举例说明

你想让模型模仿一种难以明确描述的回答风格时,直接扔给大模型例子,让大模型按你的例子来输出。

示例:按这句话的风格来写XX文章:“”“落霞与孤鹜齐飞,秋水共长天一色。渔舟唱晚,响穷彭蠡之滨”“”

图片

• 指定所需的输出长度

用户可以要求模型生成给定目标长度的输出,目标输出长度可以根据单词、句子、段落等来指定。

示例:用两个段落、100个字符概括由三引号分隔的文本。“”“在此插入文字”“”

图片

二、提供参考文本

语言模型有时候会自己发明答案,为了减少错误输出可以提供参考文本。

• 指示模型使用参考文本回答问题

让大模型使用用户提供的信息来组成其答案。

示例:使用由三重引号引起来的文本来回答问题。如果在文章中找不到答案,就写「我找不到答案」。

图片

• 指示模型从参考文本中引用答案

直接要求模型通过引用所提供文档中的段落来为其答案添加引用。可以提高正确性,增加可验证性。

示例:您将获得一份由三重引号和一个问题分隔的文档。您的任务是仅使用提供的文档回答问题,并引用用于回答问题的文档段落。如果文档不包含回答此问题所需的信息,则只需写:“信息不足”。如果提供了问题的答案,则必须附有引文注释。使用以下格式引用相关段落({“引用”:…})。

“”“<在此插入文档>”“”

问题:<在此插入问题>

图片

三、将复杂的任务拆分为更简单的子任务

任务越复杂,出错率越高,这时候就需要进行拆分细节、子任务、子目标等等。

• 使用意图分类来识别与用户查询最相关的指令

• 对于需要很长对话的对话应用,总结或过滤以前的对话

• 分段总结长文档并递归的构建完整摘要

由于模型具有Token上限,因此要总结一个很长的文档(例如一本书),我们可以使用一系列查询来总结文档的每个部分。章节摘要可以连接起来并进行总结,生成摘要的摘要。这个过程可以递归地进行,直到总结整个文档。

四、给模型时间“思考*”*

提出一个问题,肯定是需要时间思考的,不会立马给出答案,需要时间进行思考和解答,人是这样,模型也是。

• 让模型在急于得出结论之前找出自己的解决方案

如果你给大模型移到数学题问它对还是不对,这时候模型给出的答案很随机,一会儿对一会儿不对,但是如果你先让模型自己做一遍,再去判断对与不对,结果就会准非常多了。

示例:首先制定自己的问题解决方案。然后将你的解决方案与学生的解决方案进行比较,并评估学生的解决方案是否正确。在你自己完成问题之前,不要决定学生的解决方案是否正确。

• 使用内心独白来隐藏模型的推理过程

前面的策略表明,模型有时在回答特定问题之前详细推理问题很重要。对于某些应用程序,大模型用于得出最终答案的推理过程不适合与用户共享。

例如,在辅导应用程序中,我们可能希望鼓励学生得出自己的答案,但模型关于学生解决方案的推理过程可能会向学生揭示答案。

所以内心独白是一种可以用来缓解这种情况的策略。内心独白的思路是指示模型将原本对用户隐藏的部分输出放入结构化格式中,以便于解析它们。然后,在向用户呈现输出之前,将解析输出并且仅使部分输出可见。

• 询问模型在之前的过程中是否遗漏了什么内容

这个技巧适用于长文本问答,比如我们给了一个文档,要让大模型模型来列出与一个特定问题相关的信息。如果源文档很大,模型通常会过早停止并且无法列出所有相关信息。所以在模型输出停止以后,我们可以再继续提问:还有更多相关片段吗?

五、使用外部工具

大模型也有缺点,通过向模型提供其他工具的输出可以弥补模型的不足。

• 使用基于嵌入的搜索实现高效的知识检索

比如涉及到实时信息的搜索,大模型因为知识库更新时间的限制,它就不知道,这时候我们给它联网,它就会自己进行查询,查完以后把一堆资料灌回来,然后根据自己查到的这些资料进行回答。

• 调用外部 API

大模型由于计算能力有限,所以OpenAI建议,如果遇到需要计算的东西,最好让大模型写一段计算的Python代码,也可以把自己的API文档复制给它,让大模型知道该如何写代码调用你的API。

• 赋予模型访问特定功能的权限

偏开发者的一个技巧,普通用户可以直接跳过。

六、系统地测试变更

一般用户基本用不上,主要是帮助开发者判断更改Prompt(例如新指令或新设计)是否使系统变得更好或更差。

有了如此完整的一份Prompt工程指南,还怕写不好Prompt吗!

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树状数组介绍

树状数组&#xff08;Binary Indexed Tree&#xff0c;简称 BIT 或 Fenwick Tree&#xff09;是一种可以高效解决前缀和问题的数据结构。它能在对数时间复杂度内完成单点更新和查询前缀和的操作。树状数组通过一种巧妙的方式&#xff0c;将数组元素的值分布在不同的位置上&…

无线领夹麦克风哪个品牌性价比高?推荐领夹麦克风性价比最高品牌

当今的直播、短视频已经深深的融入到了我们的生活当中&#xff0c;很多小伙伴会通过拍摄短视频、Vlog来分享自己生活精彩的瞬间。不过录制视频时&#xff0c;如果单纯靠手机拾音&#xff0c;距离手机越远&#xff0c;声音越小越不清晰如果有噪音干扰&#xff0c;那更是“惨不忍…

ONVIF相关介绍

ONVIF致力于通过全球性的开放接口标准来推进网络视频在安防市场的应用,这一接口标准将确保不同厂商生产的网络视频产品具有互通性。2008年11月,论坛正式发布了ONVIF第一版规范——ONVIF核心规范1.0。随着视频监控的网络化应用,产业链的分工将越来越细。有些厂商专门做摄像头…

spring和mybatis中的连接池和缓存

文章目录 十、连接池10.1连接池10.2、mybatis连接池的分类 十一、mybatis的缓存一级缓存和二级缓存使用一级缓存失效的四种情况&#xff1a;11.1、不同的SqlSession对应不同的一级缓存。11.2、MyBatis的二级缓存 二级缓存开启的条件&#xff1a;11、3二级缓存的相关配置11.4、m…

计算机视觉与深度学习实战,Python为工具,基于计算机视觉的自动驾驶应用

一、引言 随着人工智能技术的飞速发展,计算机视觉与深度学习已成为当今科技领域的热点。其中,自动驾驶技术作为二者的完美结合,已经引起了广泛关注。自动驾驶技术依赖于计算机视觉实现对周围环境的感知与理解,通过深度学习对大量数据进行处理和分析,从而实现无人驾驶的目标…

pytest中失败用例重跑

pip install pytest-rerunfailures 下载rerunfailures插件包 配置文件中加入命令 --reruns 次数 也可在命令行中pytest --rerun-failures2 可以在allure报告中看到重试效果

【Echarts系列】水平柱状图

【Echarts系列】水平柱状图 序示例数据格式代码 序 为了节省后续开发学习成本&#xff0c;这个系列将记录我工作所用到的一些echarts图表。 示例 水平柱状图如图所示&#xff1a; 数据格式 data [{name: 于洪区,value: 2736},{name: 新民市,value: 2844},{name: 皇姑区,…

使用v-for实现点击当前li,li背景颜色变为红色,其余颜色不变

在 Vue 3 中&#xff0c;可以使用 <script setup> 语法糖来简化组件的编写。 下面是一个使用 Vue 3 和 <script setup> 实现的示例&#xff1a; <template> <ul> <li v-for"(item, index) in items" :key"index" :cl…

C++:SLT容器-->queue

C:SLT容器-->queue 1. queue容器2. queue 常用接口 1. queue容器 先进先出队列允许从一端插入元素&#xff0c;从另一端删除元素队列中只有队头和队尾可以被外界使用&#xff0c;因此队列不允许有遍历行为队列中插入数据称为入队(push)&#xff0c;删除数据称为出队(pop) …

JS 实现动态规划

function getPaths(m, n) {// m * n 二维数组&#xff0c;模拟网格const map new Array(m)for (let i 0; i < m; i) {map[i] new Array(n)}// 如果只走第一行&#xff0c;就只有一条路径。所以第一行所有 item 都填充 1map[0].fill(1)// 如果只走第一列&#xff0c;也只有…

ADAS功能规范总览

前提 本文对ADAS算法相关功能规范进行详细分解&#xff0c;本专栏是对自动驾驶相关从业者进行入门指导&#xff0c;会对功能算法各个部分进行详细梳理&#xff0c;如有不同见解评论或私信交流。相关ADAS的简化版本规范请关注我的ADAS辅助驾驶算法专栏。 功能规范 会按照以下…

快速删除 node_modules

在Windows系统上删除 node_modules 文件夹通常会比较慢&#xff0c;主要原因有以下几个&#xff1a; 1.文件数量多且嵌套深&#xff1a;node_modules 文件夹通常包含大量的子文件夹和文件&#xff0c;其中一些可能嵌套得非常深。Windows在删除文件和文件夹时&#xff0c;需要遍…

【vue3|第8期】深入理解Vue 3 computed计算属性

日期&#xff1a;2024年6月10日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…

合约ABI探秘

EOA使用ABI调用 合约之间使用接口调用 自己写ABI&#xff0c;自己写接口 ABI探秘 EOA使用的ABI数据与合约间调用时调用者持有的接口时等价的&#xff0c;都是对合约函数签名的完整描述调用者使用ABI数据生成message中的calldata message上下文的变化 合约之间的调用也模拟…

8.11 矢量图层线要素单一符号使用六(光栅线)

文章目录 前言光栅线&#xff08;Raster Line&#xff09;QGis设置线符号为光栅线&#xff08;Raster Line&#xff09;二次开发代码实现光栅线&#xff08;Raster Line&#xff09; 总结 前言 本章介绍矢量图层线要素单一符号中光栅线&#xff08;Raster Line&#xff09;的使…

node设置镜像源详细教程

在Node.js环境中&#xff0c;你可以通过设置npm或yarn的镜像源来加速依赖包的下载。以下是如何设置npm和yarn的镜像源的详细步骤&#xff1a; 使用npm设置镜像源 临时设置镜像源&#xff1a; 你可以在安装包时临时指定镜像源&#xff0c;例如&#xff1a; npm install package…

FastWeb网站开发之拦截器(interceptor)使用教程

拦截器用于拦截和处理HTTP请求和响应。在请求开始处理之前进行拦截过滤与处理。 API文档 拦截器一般用于初始化lua脚本中创建拦截规则。 它主要用于浏览器的请求中某些目录或文件不允许访问、某些目录需要验证权限&#xff0c;在拦截器中进行判断并选择是否继续向下执行。 …

在Spigot插件中配置指令

在Spigot插件中配置指令 在Spigot插件开发中&#xff0c;配置指令&#xff08;命令&#xff09;是非常重要的一部分。通过自定义指令&#xff0c;玩家可以与插件进行交互&#xff0c;触发特定的功能和行为。本文将详细介绍如何在Spigot插件中配置指令&#xff0c;并通过一个简…

【C语言】32个关键字

C语言32个关键字 文章目录 C语言32个关键字1.数据类型关键字基本数据类型&#xff08;5个&#xff09;类型修饰关键字&#xff08;4个&#xff09;复杂类型关键字&#xff08;5个&#xff09;存储级别关键字&#xff08;6个&#xff09; 2.流程控制关键字跳转结构&#xff08;4…

如何通过加密U盘 实现数据传输闭环管控?

加密U盘是用来保护存储在其中数据的安全的。通过加密技术&#xff0c;用户可以将其敏感文件和信息存储在U盘中&#xff0c;并设置密码或使用其他加密方法来防止未经授权的访问。这种安全措施可以防止数据泄露或盗窃&#xff0c;特别是在丢失或被盗的情况下&#xff0c;确保数据…