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

2023-12-18 07:20

本文主要是介绍写好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格式就比较清楚了:

这篇关于写好ChatGPT提示词原则之:清晰且具体(clear specific)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/507543

相关文章

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法

《电脑提示找不到openal32.dll文件怎么办?openal32.dll丢失完美修复方法》openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到... 在使用电脑过程中,我们常常会遇到一些.dll文件丢失的问题,而openal32.dll的丢失是其中比较

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

电脑提示msvcp90.dll缺少怎么办? MSVCP90.dll文件丢失的修复方法

《电脑提示msvcp90.dll缺少怎么办?MSVCP90.dll文件丢失的修复方法》今天我想和大家分享的主题是关于在使用软件时遇到的一个问题——msvcp90.dll丢失,相信很多老师在使用电脑时... 在计算机使用过程中,可能会遇到 MSVCP90.dll 丢失的问题。MSVCP90.dll 是 Mic

电脑开机提示krpt.dll丢失怎么解决? krpt.dll文件缺失的多种解决办法

《电脑开机提示krpt.dll丢失怎么解决?krpt.dll文件缺失的多种解决办法》krpt.dll是Windows操作系统中的一个动态链接库文件,它对于系统的正常运行起着重要的作用,本文将详细介绍... 在使用 Windows 操作系统的过程中,用户有时会遇到各种错误提示,其中“找不到 krpt.dll”

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2