Prompt 用法大全!让 ChatGPT 更智能的六种策略(下)

news2024/11/23 16:53:27

上两篇介绍了 Pormpt 用法大全中前四种策略,本篇继续讲解后两种策略。‍‍‍‍‍

点燃创作灵感:Prompt 实践指南揭秘!让 ChatGPT 更智能的六种策略(上)

Prompt 用法大全!让 ChatGPT 更智能的六种策略(中)

ea92264ba1cbe11190d1316ca1fe4acd.png

五、使用外部工具

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

如果在输入时提供外部信息源,ChatGPT 模型是可以利用的。这可以帮助 ChatGPT 模型生成更明智和最新的响应。

例如,如果用户询问有关特定电影的问题,将有关电影的高质量信息(例如演员、导演等)添加到输入中可能会很有用。这种外部信息的嵌入,可用于实现高效的知识检索,以便在运行时将相关信息动态添加到模型输入中。

文本嵌入是一个向量,可以衡量文本字符串之间的相关性。相似或相关的字符串将比不相关的字符串靠得更近。这一事实以及快速向量搜索算法的存在意味着嵌入可用于实现高效的知识检索。

特别是,一个文本语料库可以被分割成块,每个块都可以被嵌入和存储。然后可以嵌入给定的查询并执行向量搜索,以便从语料库中找到与查询最相关(即在嵌入空间中最接近)的嵌入文本块。

示范的例子可以参考第一篇文章《点燃创作灵感:Prompt 实践指南揭秘!让 ChatGPT 更智能的六种策略(上)》中,“指示模型使用参考文本回答”。

5.2 使用代码执行来执行更准确的计算或调用外部 API

不能依赖 ChatGPT 自行准确地执行算术或者多步计算。

在需要的情况下,可以指示模型编写和运行代码,而不是进行 ChatGPT自己的计算。

特别提醒:可以指示模型将要运行的代码放入指定的格式中,例如三个反引号。生成输出后,可以提取并运行代码。最后,如果有必要,可以将代码执行引擎(即 Python 解释器)的输出作为输入提供给下一个查询的模型。

系统您可以通过用三个反引号将其括起来来编写和执行 Python 代码,例如,```code goes here```。使用它来执行计算。
用户找出以下多项式的所有实值根:3*x**5 - 5*x**4 - 3*x**3 - 7*x - 10。

4a780c98d0726d6876644a5645ccecac.png

另一个代码执行的用例是调用外部 API。如果指导模型正确使用 API,则它可以编写使用外部 API 的代码。通过向模型提供说明如何使用 API 的文档和/或代码示例,可以指导模型如何使用 API。

您可以通过用三重反引号括起来来编写和执行 Python 代码。另请注意,您可以访问以下模块以帮助用户向他们的朋友发送消息:```python import message message.write(to="John", message="嘿,下班后想见面吗?")`` `

用户:让 Alice 知道我10点在咖啡店见她。

ec2e6b0177578e5500b7e0bd286a7640.png

警告:执行模型生成的代码本身并不安全,任何试图执行此操作的应用程序都应采取预防措施。特别需要一个沙盒代码执行环境来限制不受信任的代码可能造成的危害。

(注:沙盒,计算机专业术语,在计算机安全领域中是一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。)

六、系统地测试变化

有时很难判断新指令或新设计是否会使您的系统变得更好或更糟。查看几个示例可能会提示出哪个更好,但是样本量较小时,很难区分真正的改进还是随机的运气。也许这种变化有助于某些输入的性能,但会损害其他输入的性能。

评估程序对于优化系统设计很有用。好的评价是:

  • 代表现实世界的使用(或至少是多样化的)

  • 包含许多测试用例以获得更大的统计能力(有关指南,请参见下表)

  • 易于自动化或重复


要检测的差异
95% 置信度所需的样本量
30%
~10
10%
~100
3%
~1000
1%
~10000

输出的评估可以由计算机、人类或混合来完成。计算机可以使用客观标准(例如,具有单一正确答案的问题)以及一些主观或模糊标准来自动评估,其中模型输出由其他模型查询评估。

OpenAI Evals (https://github.com/openai/evals)是一个用于创建自动评估工具的开源软件框架。

当存在一系列可能被认为质量相同的输出时(例如,对于答案很长的问题),基于模型的评估可能很有用。使用基于模型的评估可以实际评估的内容与需要人工评估的内容之间的界限是模糊的,并且随着模型变得更强大而不断变化,则需要通过实验来弄清楚基于模型的评估对您的用例的适用程度。

6.1 参考黄金标准答案评估模型输出

假设已知问题的正确答案应该参考一组特定的已知事实。然后我们可以使用模型查询来计算答案中包含了多少所需事实。

例如,使用以下系统消息:

系统:您将获得由三重引号分隔的文本,这些文本应该是问题的答案。检查以下信息是否直接包含在答案中: - Neil Armstrong 是第一个在月球上行走的人。- 尼尔·阿姆斯特朗首次踏上月球的日期是 1969 年 7 月 21 日。对于这些要点中的每一个,请执行以下步骤: 1 - 重申要点。2 - 引用最接近这一点的答案。3 - 考虑阅读引文但不了解主题的人是否可以直接推断出这一点。在下定决心之前解释为什么或为什么不。4 - 如果对 3 的回答是“是”,则写“是”,否则写“否”。最后,提供有多少个“是”答案的计数。将此计数提供为 {"count": <insert count here>}。

用户:"""尼尔阿姆斯特朗因成为第一个踏上月球的人类而闻名。这一历史性事件发生在 1969 年 7 月 21 日,阿波罗 11 号任务期间。"""

cab22f3ce64460929d715e6ae9fa8936.png

满足两点的示例输入‍‍

用户:"""尼尔·阿姆斯特朗走下登月舱,创造了历史,成为第一个踏上月球的人。"""

280491930dce31992b83d150ba7e7d81.png

满足一点的示例输入

用户:"""在 69 年的夏天,阿波罗 11 号的宏伟航行,像传说中的手一样大胆。阿姆斯特朗迈出了一步,历史展开了,"一小步,"他说,为了一个新世界。"""

6bca389ec49d57cb33e9a1d4fa843dde.png

不满足示例的输入

这种基于模型的评估有很多可能的变化。需要考虑以下情况的变化,它跟踪候选答案和黄金标准答案之间的重叠类型,并跟踪候选答案是否与黄金标准答案的任何部分相矛盾。

系统:

使用以下步骤响应用户输入。在继续之前完全重述每个步骤。即“第 1 步:原因……”。第 1 步:逐步推理提交的答案中的信息与专家答案相比是否是:不相交、相等、子集、超集或重叠(即一些交集但不是子集/超集)。第 2 步:逐步推理提交的答案是否与专家答案的任何方面相矛盾。第 3 步:输出结构如下的 JSON 对象:{"type_of_overlap": "disjoint" or "equal" or "subset" or "superset" or "overlapping", "contradiction": true or false}

用户:

问题:“”“尼尔·阿姆斯特朗最著名的事件是什么?它发生在什么日期?假定 UTC 时间。”””提交的答案:“”“他不是在月球上行走吗?”“”专家回答: """尼尔·阿姆斯特朗最著名的是他是第一个在月球上行走的人。这一历史性事件发生在 1969 年 7 月 21 日。"""

d0f146915c05958accc67820dbfe41b2.png

这是一个带有不合标准答案的示例输入,但与专家答案并不矛盾

用户

问题:“”“尼尔·阿姆斯特朗最著名的事件是什么?它发生在什么日期?假定 UTC 时间。”””提交的答案:“”“1969 年 7 月 21 日,尼尔·阿姆斯特朗成为第二个走上这条路的人登月,继巴兹奥尔德林之后。""" 专家回答:"""尼尔阿姆斯特朗最著名的是他是第一个登上月球的人。这一历史性事件发生在 1969 年 7 月 21 日。"""

47465ef96090918c39ebe522f139d47c.png

这是一个示例输入,其答案直接与专家答案相矛盾。

用户

问题:“”“Neil Armstrong 最著名的事件是什么?它发生在什么日期?假定 UTC 时间。”””提交的答案:“”“在 1969 年 7 月 21 日大约 02:56 UTC,Neil Armstrong 成为第一个人类踏上月球表面,标志着人类历史上的巨大成就。""" 专家解答:"""尼尔·阿姆斯特朗最著名的是他是第一个在月球上行走的人。这一历史性事件发生在 7 月 21 日, 1969."""

51176eee5414c5e88c141693c0248378.png

这是一个带有正确答案的示例输入,它还提供了比必要的更多的细节。

其他资源

六种策略到此已经全部介绍完,如需更多的灵感,请访问官方的文档:OpenAI Cookbook (https://github.com/openai/openai-cookbook),其中包含示例代码以及第三方资源的链接,例如:

提示库和工具

https://github.com/openai/openai-cookbook#prompting-libraries--tools‍

提示指南

https://github.com/openai/openai-cookbook#prompting-guides

视频课程

https://github.com/openai/openai-cookbook#video-courses

关于改进推理的高级提示的论文

https://github.com/openai/openai-cookbook#papers-on-advanced-prompting-to-improve-reasoning

之前还有一些使用的 Pompt 的实际用法用例,可以参考我之前的两篇文章:‍

实用教学Prompt 提示词实战:如何用 ChatGPT 指导高考语文作文写作

ChatGPT 创业:如何用人工智能 AI 开一家赚钱的公司


关注我,一起学习 ChatAI,掌握 AI 工具。

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

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

相关文章

基于html+css的图展示122

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

docker 的网络模式

一、docker网络概述 1、docker网络实现的原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c; 同时Docker网桥是 每个容器的…

ISO21434 操作和维护(十)

目录 一、概述 二、目标 三、网络安全事件响应 3.1 输入 3.1.1 先决条件 3.1.2 进一步支持信息 3.2 要求和建议 3.3 输出 四、更新 4.1 输入 4.1.1 先决条件 4.1.2 进一步支持信息 4.2 要求和建议 4.3 输出 一、概述 本条款描述了对文件中的项目…

Mysql中explain的用法详解

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

企业级信息系统开发讲课笔记4.8 Spring Boot整合Redis

文章目录 零、学习目标一、Redis概述1、Redis简介2、Redis优点&#xff08;1&#xff09;存取速度快&#xff08;2&#xff09;数据类型丰富&#xff08;3&#xff09;操作具有原子性&#xff08;4&#xff09;提供多种功能 3、Redis官网与在线教程 二、使用Spring Boot 整合 R…

c++11 标准模板(STL)(std::ios_base)(二)

定义于头文件 <ios> class ios_base; 类 ios_base 是作为所有 I/O 流类的基类工作的多用途类。它维护数种数据&#xff1a; 1) 状态信息&#xff1a;流状态标志&#xff1b; 2) 控制信息&#xff1a;控制输入和输出序列格式化和感染的本地环境的标志&#xff1b; 3)…

音视频技术开发周刊 | 297

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 Geenee AR为品牌商和零售商提供虚拟试穿应用 这意味着Geenee AR的虚拟试穿解决方案能够与品牌商现有的销售渠道无缝集成。 谁说苹果掉队了&#xff1f;WWDC上只字未提AI&a…

macbook pro存储空间不足怎么办? MacBook Pro怎么优化或清理Mac磁盘空间?

MacBook Pro用久了之后都会堆积很多残留文件或缓存垃圾&#xff0c;久经之下MacBook Pro磁盘空间将会面临不够用的情况。 macbook pro存储空间不足怎么办&#xff1f;macbook pro笔记本中的存储空间不足&#xff0c;想要优化一下&#xff0c;该怎么优化呢&#xff1f; 这时候…

【电路】电路与电子技术基础 课堂笔记 第8章 负反馈放大电路

反馈放大电路有很多好处&#xff0c;可以增加放大电路的输入电阻&#xff0c;使输出电流京可能稳定&#xff0c;保证输出电压随负载变化波动较小&#xff0c;减小电路元件参数变化对电路性能的影响等。 反馈放大电路分为正反馈和负反馈放大电路。 8.1 反馈的基本概念 8.1.1 反…

在(Linux)ubuntu下通过GTK调用libvlc开发视频播放器

一、项目介绍 本项目实现了一个基于GTK和libvlc的视频播放器。使用GTK创建GUI界面,使用libvlc播放视频。用户可以通过选择视频文件,然后启动播放器来观看视频。 二、VLC介绍 VLC是一款自由、开放源代码的跨平台媒体播放器,支持播放几乎所有常见的音频和视频格式。最初于20…

STM32管脚模拟协议驱动双路16位DAC芯片TM8211

STM32管脚模拟协议驱动双路16位DAC芯片TM8211 TM8211是一款国产的低成本双路16位DAC驱动芯片&#xff0c;可以应用于普通数模转换领域及音频转换领域等。这里介绍STM32 HAL库驱动TM8211的逻辑,时序和代码。 TM8211的功能特性为&#xff1a; TM8211的内部电路功能框图为&…

一个人最大的愚蠢,就是 “习惯性反驳”

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID&#xff1a;jishulingdaoli) 每个人都有“反驳的义务”&#xff0c;这是全球顶级咨询公司麦肯锡&#xff0c;对所有员工的行为要求&#xff0c;即对于自己不认同的看法和意见&#xff0c;明确表示出自己的想法并提出反驳。麦肯锡认…

揭秘报表新玩法!标配插件不再单调,手把手教你如何在浏览器中引入柱形图插件。

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 图表作为一款用于可视化数据的工具&#xff0c;可以帮助我们更好的分析和理解数…

【Rust日报】2023-06-10

nt-apiset: 一个用于 WindowsAPI API Set Map文件 的 Rust 解析器 我的bootloader程序项目的下一个构建块已经准备好了&#xff01;Nt-apiset 是用 Rust 编写的用于 Windows10及更高版本的 API Set Map 文件的解析器。 API Set是名称以“ API-”或“ ext-”开头的 PE 可执行文件…

【MySQL】View 视图用法及作用

文章目录 1. 视图概述1.1 为什么使用视图&#xff1f;1.2 视图的理解 2. 创建视图2.1 创建单表视图2.2 创建多表联合视图2.3 基于视图创建视图 3. 查看视图4. 更新视图的数据4.1 一般情况4.2 不可更新的视图 5. 删除视图6. 总结6.1 视图优点6.2 视图缺点 1. 视图概述 1.1 为什么…

STL之优先级队列(堆)的模拟实现与仿函数(8千字长文详解!)

STL之优先级队列&#xff08;堆&#xff09;的模拟实现与仿函数 文章目录 STL之优先级队列&#xff08;堆&#xff09;的模拟实现与仿函数优先级队列的概念priority_queue的接口介绍优先级队列的构造函数 priority_queue模拟实现类成员构造函数向下调整算法——正常实现 push向…

正负10V电压输入±电流输出伺服阀控制器

10V、4~20mA模拟指令输入伺服阀放大器是一种控制元件&#xff0c;用于控制液压系统中的比例阀或伺服阀。它主要由三个部分组成&#xff1a;比例阀或伺服阀、放大器。 比例阀或伺服阀是控制流量或压力的元件&#xff0c;它的输出信号通常是电压或电流。放大器用于将实际值转换为…

微信小程序开发uni-app-8分钟上手开发

本篇文章uni-app微信小程序开发-8分钟上手开发 -首先到微信小程序官网登录/注册微信小程序 微信小程序官网 uni-app 微信小程序 注册微信小程序 这里要注意&#xff1a; 激活邮箱之后&#xff0c;选择主体类型为 “个人类型”&#xff0c;并按要求登记主体信息。主体信息提…

一种直流转交流的代码实现 - through FFT

# show how to use FFT, filtered DC signal and return back to SampleValue-time zone. # the basic concept is coming from ChatGPT. # Write in python language. # # created by twicave. # Jun09,2023 # import numpy as np import matplotlib.pyplot as plt# 定义正弦信…

【C# 10 和 .NET 6】构建和使用 Web 服务(第16章)

Building and Consuming Web Services 构建和使用 Web 服务 本章介绍如何使用 ASP.NET Core Web API 构建 Web 服务&#xff08;也称为 HTTP 或 REST 服务&#xff09;&#xff0c;以及如何使用 HTTP 客户端使用 Web 服务&#xff0c;这些客户端可以是任何其他类型的 .NET 应用…