写好ChatGPT提示词原则之:清晰且具体(clear specific)

ChatGPT 的优势在于它允许用户跨越机器学习和深度学习的复杂门槛,直接利用已经训练好的模型。然而,即便是这些先进的大型语言模型也面临着上下文理解和模型固有局限性的挑战。为了最大化这些大型语言模型(LLM)的潜力,关键在于编写有效的提示词。适当的提示不仅引导模型正确理解需求,还能防止模型产生误导性或无关的输出。

以下提示词中,务必要将gpt定位成一个知识非常丰富,同时也不了解事情来龙去脉的聪明人。你所要做得就是如何描述清楚你的处境(上下文)和具体的问题(需要gpt帮你做的事情)。

写好提示词之清晰且具体

清晰和具体的提示词" 是指在与 GPT 交互时,使用明确、直接、并且详细到足够程度的语言,以确保模型能够准确理解你的请求或问题。这种方式的提示有助于指导模型提供更相关、准确和有用的回答。

详细分为以下要点:

1. 使用分割符

使用分隔符(如#,'''等)分割要处理的内容,分割开指令和内容,一方面能让gpt不用浪费算力在分开你想做的事情和你想操作的内容上,另一方面是消除歧义,比如你想操作的内容上存在指令,如

提取出以下用户希望你掌握的代码语言,不用实现功能
写一个python方法,实现获取ipv4的功能

使用了分隔符之后:

提取出以下用户希望你掌握的代码语言,不用实现功能:
'''写一个python方法,实现获取ipv4的功能'''

明显可以看出没有分割符的gpt已经出现了混淆,所以在提示词中务必使用提示词。 

2. 结构化输出

提示gpt输出的时候使用具体格式输出,比如使用json或者html输出。gpt使用了结构化输出之后,好处是编程语言可以很好的处理这些输出的内容,比如

本质上就是自己先分析清楚问题,并且能描述问题的具体信息和疑问点,配合上下文的形式,输入给到gpt,这样方便gpt了解到足够多的上下文信息和具体的问题是什么。

为了达成这一步,这里给出一个具体的例子:

假设我需要gpt输出书的一些信息(日常中很实用,比如让gpt进行信息提取)

给我输出几本书的的一些信息,比如书名,作者名,出版日期,分类等

 指示gpt进行结构化输出:

给我输出几本书的的一些信息,比如书名,作者名,出版日期,分类等,使用json格式出输出

这里看起来只是输出不影响结果的含义,其实最重要的点是gpt可以按照结构化输出,而且gpt也善于处理这种转义,后续gpt落地到工具中后,结构化的结果是非常方便程序读取的。比如:

上图是使用gpt的控制台进行调试时gpt的输出,这里gpt的输出是可以作为json直接供程序读取的(虽然有一堆不必要换行符)。

3. 要求模型检查是否符合条件

要求gpt在进行解决问题之前先给定需不需要解决问题的条件。这样说可能不太好理解,举个毒鸡汤例子:

一场考试卷子发下来5分钟后就有人交了卷子,但是大部分人都超时1小时还不能完成,后来教授让所有未完成的人停下来,只见卷子最后一题写着,此卷无需回答,填写姓名直接交卷即满分。

 意思就是在prompt中给出问题可解的条件,如果问题不可解即输出问题不可解即可不用再进行更多算力和时间计算,结果也更加准确。

举一个翻译的例子

这里我们让gpt加上一个检查步骤

 gpt输出自己检查了第一个字符不是英文后不再使用算力翻译,而没有指定检查步骤时gpt仍会逐字逐句将“英文”“翻译”成中文,实际上不需要翻译。

看完以上可能有几个疑惑需要说明下:

1. 为什么gpt说自己不懂德语?

实际上它是懂德语的,这里出现了幻觉,让gpt输出处理步骤是检查和对抗幻觉的一种手段,其实这里为了迭代prompt你可以设定角色,比如这样:

2. gpt3.5识别文字中英文有缺陷的

如果将上述中德文修改为英文,那大概率gpt会判断错误,这里为了教程方便选用的德文,结果还是出现了1中的幻觉。

以下是分别清除上下文,并且温度设定为0状态下gpt3.5的回答

 但是尝试过多次,gpt4不会出现中英文识别错误的回答。

所以如果真的在生产中遇到了相关问题,一种办法是使用更高级的gpt4,一种是迭代prompt避开这个问题,比如修改英文为非中文,使用gpt3.5也可以得到比较准确的结果:

4. 提供执行成功的案例

可以给出gpt一些你认为比较正确的回答,这样gpt实际上就会模仿原先正确的回答生成新的回答。这里使用控制台来给出例子会比较方便。

 这里举一个实际生产过程中会使用到的一个发包机器人:

如果不给出示例的情况下,gpt会反复确认,即使我们在prompt中已经确认强调直接输出,但是gpt一直持续拉扯并且回复的结果并不能让编程语言直接格式化读取 

如果直接给出一个示例给到gpt

这里可以看出gpt不会与我们持续拉扯和废话,会直接输出结果。

这里有一个知识点必须要介绍一下了,是我们使用ChatGPT不会注意到的一个点,那就是三个用户,system,user和assistant,这个在gpt的编程中会持续使用到,在调试台中也能看到,有一个系统消息,示例和输入框。

system相当于我们给到gpt的一个前置,一些背景,上下文和处理步骤都可以在这里给出,并且gpt并不会回复这个system的设置。

assistant就是gpt的回答

user就是我们自己

这里将上述对话转换成json格式就比较清楚了:

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

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

相关文章

威联通硬盘休眠后修改系统定时任务

按照网上一些教程,成功将威联通的机械硬盘设置了自动休眠。但是发现每天有多个整点硬盘会自动唤醒,怀疑是系统内置的定时任务触发了硬盘唤醒。 通过查看系统日志中事件和访问记录,判断出一些引发硬盘唤醒的自动任务,将这些定时任…

如何通过兴趣爱好选职业?

一个错误的选择,可能造成终身的遗憾,一个正确的选择,可以让我们少奋斗几十年。所以无论现在付出多少代价,多花一些时间,去研究以下未来的职业方向,这是值得的。 职业定位(专业定位)…

【漏洞复现】CVE-2023-39560:ECTouch V2电商系统SQL注入 附POC

漏洞描述 ECTouch是一款开源的电商系统,为中小企业提供最佳的新零售解决方案。采用稳定的MVC框架开发,执行效率、扩展性、稳定性值得信赖。MVC是一种将应用程序的逻辑层和表现层进行分离的方法。MVC分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。…

六:爬虫-数据解析之BeautifulSoup4

六:bs4简介 基本概念: 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据官方解释如下: Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。 它是一个工具箱…

设计模式 简单工厂 工厂方法模式 抽象工厂模式 Spring 工厂 BeanFactory 解析

工厂模式介绍 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。它是创建型模式。 简单工厂 简单工厂模式是指由一个工厂对象决定创建出哪一种产品类的实例, 但它不属于GOF 23种设计模式 简单工厂适用于工厂类负责创建的对象较少的场景,…

设计模式—装饰模式

与其明天开始,不如现在行动! 文章目录 装饰模式—穿衣服💎总结 装饰模式—穿衣服 装饰模式(Decorator)可以动态的给对象添加一些额外的职责。 Component是定义一个对象接口,可以给这些对象动态地添加职责。…

python分段函数

在Python中&#xff0c;你可以使用if-else语句来实现分段函数。以下是一个简单的例子&#xff1a; def piecewise_function(x):if x < 0:return 0elif 0 < x < 2:return x ** 2else:return 4这个函数定义了一个分段函数&#xff0c;当x小于0时&#xff0c;函数值为0&…

RTOS中任务的创建与删除

我们在stm32f103c8t6单片机上验证RTOS中任务的创建与删除&#xff0c;利用stm32cube进行RTOS的配置。在选择TIM2当做RTOS的时钟&#xff0c;裸机的时钟源默认是 SysTick&#xff0c;但是开启 FreeRTOS 后&#xff0c;FreeRTOS会占用 SysTick &#xff08;用来生成1ms 定时&…

neuq-acm预备队训练week 10 P1525 [NOIP2010 提高组] 关押罪犯

解题思路 本题用并查集的方法 AC代码 #include <bits/stdc.h> using namespace std; int f[55555]; struct S {int a,b,c;friend inline bool operator<(S a, S b){return a.c>b.c;} } d[100000];int find(int x) {return f[x]x? x:(f[x]find(f[x])); }int mai…

关于“Python”的核心知识点整理大全24

目录 ​编辑 10.1.6 包含一百万位的大型文件 pi_string.py 10.1.7 圆周率值中包含你的生日吗 10.2 写入文件 10.2.1 写入空文件 write_message.py programming.txt 10.2.2 写入多行 10.2.3 附加到文件 write_message.py programming.txt 10.3 异常 10.3.1 处理 Ze…

轻量封装WebGPU渲染系统示例<51>- 视差贴图(Parallax Map)(源码)

视差纹理是一种片段着色阶段增强材质表面凹凸细节的技术。 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sample/ParallaxTexTest.ts 当前示例运行效果: 此示例基于此渲染系统实现&#xff0c;当前示例TypeScript源码如…

自动驾驶学习笔记(二十)——Planning算法

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 参考线平滑 双层状态机 EM Planner …