ChatGPT探索:提示工程详解—程序员效率提升必备技能【文末送书】

news2024/12/24 20:22:14

文章目录

  • 一.人工智能-ChatGPT
    • 1.1 ChatGPT简介
    • 1.2 ChatGPT探索:提示工程详解
    • 1.2 提示工程的优势
  • 二.提示工程探索
    • 2.1 提示工程实例:
    • 2.2 英语学习助手
    • 2.3 Active-Prompt思维链(CoT)方法
    • 2.4 提示工程总结
  • 三.文末推荐与福利
    • 3.1《ChatGPT进阶:提示工程入门》
    • 3.2领书方式

一.人工智能-ChatGPT

人类一直在追求、制造和运用工具,以拓展我们的能力、适应环境,甚至超越生物限制。每一项工具都在一定程度上塑造了我们的生活和社会,从火和轮子,到印刷术和电力,再到计算机和互联网。如今,我们站在历史性的分水岭上,迎来了人工智能(Artificial Intelligence,AI)的时代。

目前,以ChatGPT为代表的人工智能已成为不可忽视的力量。它们快速重塑着我们的世界,改变生活方式和思考方式。无论是否愿意接受,这已是世界的现状,也是未来的发展趋势。

大语言模型(Large Language Model,LLM)如ChatGPT代表的工具非常强大。然而,其真正的价值取决于我们如何使用它们。
在这里插入图片描述

1.1 ChatGPT简介

ChatGPT是由OpenAI训练的一种新模型,具有交互式对话的能力。该模型经过训练,可以按照提示中的指示,在对话的上下文中提供适当的响应。ChatGPT可以帮助回答问题、建议食谱、以特定风格写歌词、生成代码等等。

ChatGPT使用人类反馈的强化学习(RLHF)进行训练。虽然这个模型比以前的GPT迭代要强大得多(并且还经过了训练以减少有害和不真实的输出),但它仍然有一些限制。让我们通过具体的例子来了解一些能力和限制。

1.2 ChatGPT探索:提示工程详解

当涉及到程序员的效率提升时,提示工程(Snippet Engineering)是一个非常重要的技能。提示工程涉及创建、组织和使用代码片段(snippets),这些片段可以在开发过程中重复使用,从而节省时间和精力。
提示工程是一种通过创建和使用代码片段的方法,以提高程序员的开发效率。这些代码片段可以是小到一行代码的简短片段,也可以是完成特定任务的一组代码。

1.2 提示工程的优势

  • 提高生产力: 通过重复使用代码片段,减少重复劳动,从而提高开发速度。
  • 减少错误: 通过使用已经测试和验证过的代码片段,减少错误的可能性。
  • 保持一致性: 通过使用相同的代码片段,确保在整个项目中保持一致的代码风格和结构。

二.提示工程探索

将GPT的对话界面与编程语言的shell进行类比时,封装的提示可视为形成一个函数。这个函数有一个独特的名称,当我们用输入文本调用这个名称时,它根据内部设定的规则产生结果。简而言之,我们构建了一个可重用的提示,它有一个易于与GPT交互的名称。这就像有一个方便的工具,让GPT代表我们执行特定的任务 - 我们只需提供输入,就可以得到所需的输出。

通过将提示封装成函数,您可以创建一系列函数来建立工作流程。每个函数代表一个特定的步骤或任务,当按特定顺序组合时,它们可以自动化复杂的流程或更高效地解决问题。这种方法使得与GPT的交互更加结构化和高效,最终增强了其功能,使其成为完成各种任务的强大工具。

因此,在使用函数之前,我们需要让GPT知道它的存在。以下是定义该函数的提示内容。

提示:
我们将使用元提示来称呼这个提示。 这个提示已在 GPT3.5 上进行了测试,并在 GPT4 上表现得更好。

在这里插入图片描述

2.1 提示工程实例:

这是一个简单的提示工程实例

你好,ChatGPT!希望你一切都好。我正在寻求你的帮助,想要解决一个特定的功能。我知道你有处理信息和执行各种任务的能力,这是基于提供的指示。为了帮助你更容易地理解我的请求,我将使用一个模板来描述函数、输入和对输入的处理方法。请在下面找到详细信息:
function_name:[函数名称]
input:[输入]
rule:[关于如何处理输入的说明]
我恳请你根据我提供的细节为这个函数提供输出。非常感谢你的帮助。谢谢!
我将使用方括号内的相关信息替换函数所需执行的内容。这个详细的介绍应该能够帮助你更高效地理解我的请求并提供所需的输出。格式是function_name(input)。如果你理解了,请用一个词回答"好的"

2.2 英语学习助手

以下是创建一个英语学习助手的示例,包括一个名为 trans_word 的函数,用于将中文翻译成英文。请注意,这仅是一个简单的示例,您可以根据自己的需求扩展和修改这些函数。

首先,将上面定义的 GPT 元提示粘贴到这一节中:

# 将 GPT 元提示粘贴在这里

然后,创建 trans_word 函数:

def trans_word(chinese_text):
    """
    将中文文本翻译成英文。

    参数:
    chinese_text (str): 待翻译的中文文本。

    返回:
    str: 翻译后的英文文本。
    """
    prompt = f"将以下中文翻译成英文:\n{chinese_text}\n翻译结果:"
    return gpt3(prompt, temperature=0.7, max_tokens=150)

这个函数使用 gpt3 函数,该函数负责调用 GPT 进行生成。请确保在您的代码中有适当的 GPT 调用逻辑,以便这些函数能够正常工作。

使用这个 trans_word 函数时,只需提供中文文本作为参数,它将返回相应的英文翻译。这样,您可以建立更多类似的函数,以创建一个更全面的英语学习助手。

提示:

function_name: [trans_word]
input: ["文本"]
rule: [我希望你能扮演英文翻译员、拼写纠正员和改进员的角色。我将提供包含任何语言中"文本"的输入形式,你将检测语言,翻译并用英文纠正我的文本,并给出答案。]

编写一个扩展文本的函数。

提示:

function_name: [expand_word]
input: ["文本"]
rule: [请充当一个聊天机器人、拼写纠正员和语言增强员。我将提供包含任何语言中的"文本"的输入形式,并输出原始语言。我希望你保持意思不变,但使其更具文学性。]

编写一个纠正文本的函数。

提示:

function_name: [fix_english]
input: ["文本"]
rule: [请充当英文专家、拼写纠正员和语言增强员的角色。我将提供包含"文本"的输入形式,我希望你能改进文本的词汇和句子,使其更自然、更优雅。保持意思不变。]

最后,你可以独立运行这个函数,或者将它们串联在一起。

提示:

trans_word('婆罗摩火山处于享有“千岛之国”美称的印度尼西亚. 多岛之国印尼有4500座之多的火山, 世界著名的十大活火山有三座在这里.')
fix_english('Finally, you can run the function independently or chain them together.')
fix_english(expand_word(trans_word('婆罗摩火山处于享有“千岛之国”美称的印度尼西亚. 多岛之国印尼有4500座之多的火山, 世界著名的十大活火山有三座在这里.')))

通过以这种格式表示函数,你可以清晰地看到每个函数的名称、输入以及处理输入的规则。这为理解工作流程中每个步骤的功能和目的提供了一种有组织的方式。

提示: 如果你不想让 ChatGPT 输出过多的信息,你可以在定义函数规则后简单地添加一句话。

除非你不理解该函数,否则请不要说其他事情。

2.3 Active-Prompt思维链(CoT)方法

思维链(CoT)方法依赖于一组固定的人工注释范例。问题在于,这些范例可能不是不同任务的最有效示例。为了解决这个问题,Diao等人(2023)最近提出了一种新的提示方法,称为Active-Prompt,以适应LLMs到不同的任务特定示例提示(用人类设计的CoT推理进行注释)。

下面是该方法的说明。第一步是使用或不使用少量CoT示例查询LLM。对一组训练问题生成k个可能的答案。基于k个答案计算不确定度度量(使用不一致性)。选择最不确定的问题由人类进行注释。然后使用新的注释范例来推断每个问题。

在这里插入图片描述

2.4 提示工程总结

目前,有多个基于 GPT 的编程工具项目,如:

  1. GitHub Copilot
  2. Microsoft AI
  3. chatgpt-plugins
  4. LangChain
  5. marvin

这些项目主要服务于产品客户或懂得使用 Python 等编程语言的用户。对于普通用户而言,可以使用以下简单模板进行日常工作,并进行几次迭代:

  • 使用笔记应用记录函数
  • 将其逐步更新为一个库

此外,一些开源的 ChatGPT 工具如 ChatGPT-Next-Web、chatbox 和 ChatGPT-Desktop 也可供使用。ChatGPT-Next-Web 目前支持在启动新聊天前添加片段,可以利用此功能添加自定义函数并进行使用。

三.文末推荐与福利

免费包邮送出3本!

3.1《ChatGPT进阶:提示工程入门》

内容简介
   本书是一本面向所有人的提示工程工具书,旨在帮助你掌握并有效利用以ChatGPT为代表的AI工具。学习完本书后,你将能够自如地将ChatGPT运用在生活和专业领域中,成为ChatGPT进阶玩家。
  本书共分为9章,内容涵盖三个层次:介绍与解读、入门学习、进阶提升。第1~2章深入介绍与剖析了ChatGPT与提示工程,并从多个学科的角度探讨了提示工程学科。第3~5章演示了ChatGPT的实际运用,教你如何使用ChatGPT解决自然语言处理问题,并为你提供了一套可操作、可重复的提示设计框架,让你能够熟练驾驭ChatGPT。第6~9章讲解了来自学术界的提示工程方法,以及如何围绕ChatGPT进行创新;此外,为希望ChatGPT进行应用开发的读者提供了实用的参考资料,并介绍了除ChatGPT之外的其他选择。

在这里插入图片描述

推荐理由:

  • 系统:全面剖析ChatGPT应用技巧,带你从小白变身ChatGPT应用专家。
  • 实用:内含开箱即用的“提示公式”,聚焦ChatGPT实际应用。
  • 有思路,有办法,能落地:带你将ChatGPT真正转化为生产力,开启AI驱动的工作流程。
  • 简单易读:深入浅出,循序渐进,内含60+个示例,适合初学者和进阶读者。
  • 深度:理论结合实际,涵盖提示工程学科深度讨论,授人以鱼更授人以渔。

爆火全网的原创提示词设计框架BROKE,带你5步掌握向人工智能提问的艺术
从小白变身ChatGPT应用专家,将AI转化为生产工具,重塑你的工作流!
购买链接:
当当网链接:http://product.dangdang.com/29612772.html
京东的链接:https://item.jd.com/14098844.html

3.2领书方式

抽奖方式:评论区随机抽取3位小伙伴免费送出!
(采取随机算法程序在满足点赞、收藏、评论的用户中随机抽取~)
参与方式:关注博主、点赞、收藏、评论区评论“人生苦短,拒绝内卷!”(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!)
活动截止时间:2023-12-6 20:00:00

名单公布时间:2023-12-6 21:00:00
本页面末更新名单

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

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

相关文章

防孤岛装置在光伏发电、燃气发电等新能源并网供电系统的应用

• AM5SE-IS防孤岛保护装置主要适用于35kV、10kV及低压380V光伏发电、燃气发电等新能源并网供电系统。 • 当发生孤岛现象时,可以快速切除并网点,使本站与电网侧快速脱离,保证整个电站和相关维护人员的生命安全**。 保护功能** ● 三段式过流…

【2024年趋势】推荐5个好用的产品手册制作工具

随着科技的快速发展,人们对于网站产品手册的需求也日益增加。一份详细且易用的产品手册可以帮助用户更好地了解和使用产品,提高用户满意度和忠诚度。之前整理了一期关于2023年我推荐的一些知识库软件,已经12月了,最近我也去关注了…

Ranger安装和使用

Ranger部署 1.准备 1.1 编译 Ranger编译(已经编译过的话,直接看1.2) 1.1.1 准备到Ranger官网下载ranger的源码:http://ranger.apache.org/download.html 1.1.2 Ranger编译的过程实在非虚拟机环境下完成的,下载好r…

简单了解下IP的全球划分【笔记】

国际互联网号码分配机构 (The Internet Assigned Numbers Authority,简称IANA)。它是互联网名称与数字地址分配机构(The Internet Corporation for Assigned Names and Numbers,简称ICANN)旗下的一个机构,主…

wpf devexpress 使用IDataErrorInfo实现input验证

此处下载源码 当form初始化显示,Register按钮应该启动和没有输入错误应该显示。如果用户点击注册按钮在特定的输入无效数据,form将显示输入错误和禁用的注册按钮。实现逻辑在标准的IDataErrorInfo接口。请查阅IDataErrorInfo接口(System.Com…

机器学习(2)回归

0.前提 上一期,我们简单的介绍了一些有关机器学习的内容。学习机器学习的最终目的是为了服务我未来的毕设选择之一——智能小车,所以其实大家完全可以根据自己的需求来学习这门课,我做完另一辆小车后打算花点时间去进行一次徒步行&#xff0…

【ONNX】多个ONNX 模型合并为一个模型

ONNX 模型直接合并,输入和输出不一致也可以,各自输入输出各自的 示例代码 import onnxruntime# version : 1.16.0 import onnxdef log_model(model):model_1_outs {o.name for o in model.graph.output}model_1_ins {i.name for i in model.graph.in…

【Web】NISACTF 2022 个人复现

目录 ①easyssrf ②babyupload ③ level-up ④bingdundun~ 明天就新生赛了,练套题保持下手感吧 (文章只选取了一部分) ①easyssrf 输入/flag 输入file:///fl4g 访问/ha1x1ux1u.php ?filephp://filter/convert.base64-encode/resource/…

PyQt基础_012_对话框类控件QInputDialog

基本操作 import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *class InputdialogDemo(QWidget):def __init__(self, parentNone):super(InputdialogDemo, self).__init__(parent)layout QFormLayout()self.btn1 QPushButton(&qu…

YOLOv8改进 | 2023 | AKConv轻量级架构下的高效检测(可变核卷积)

一、本文介绍 本文给大家带来的改进内容是AKConv(可变核卷积)是一种创新的卷积神经网络操作,它旨在解决标准卷积操作中的固有缺陷(采样形状是固定的),AKConv的核心思想在于它为卷积核提供了任意数量的参数…

Android超简单实现-即时更新Toast(可直接复制)

效果 实现 第一步、封装个工具类ToastUtil.class(可直接复制拿走) public class ToastUtil {private static Toast mToast null; // toast对象,用于判断是否第一次使用/*** 即时更新Toast* param content content* param message 消息内容…

FLASK博客系列4——再谈路由

最近好像拖更有点久了。抱歉抱歉~ 今天我们继续来聊聊路由(其实就是我上次偷懒剩下一点没讲完)。 通过上次的文章,我们基本了解了Flask中的路由,是不是比较简单呢?别急,今天来点猛料。 一、路由之HTTP方法绑…

在CentOS系统下的Tomcat8.5或9安装SSL证书

您可以在CentOS系统下的Tomcat服务器安装SSL证书,实现通过HTTPS安全访问Web服务。本文介绍如何CentOS系统下Tomcat 8.5或9安装SSL证书。 环境准备 操作系统:CentOS 7.6 64位 Web服务器:Tomcat 8.5或9 说明 Tomcat服务器需要提前安装JDK环…

C++基础 -25- 动态多态

静态多态在程序编译的时候,确定将要执行的状态。 动态多态在程序运行的时候,才能确定执行的状态。 下面举例实现动态多态 work函数接口通过传参不同做不同的工作 #include "iostream"using namespace std;class person {public:person(){}vi…

10个让UI设计更轻松的工具

UI设计软件对设计师来说非常重要。UI设计工具的使用是否直接影响到最终结果的质量,然后有人会问:UI界面设计使用什么软件?这里有一些UI设计师和那些对UI设计感兴趣的朋友列出了10个易于使用和免费的UI设计软件。 即时设计 即时设计是一款免…

《曾国藩传》:崇尚笨拙的人生哲学

哈喽啊,大家好,我是雷工! 以前读书喜欢读小说,喜欢看《我从你的全世界路过》《云间有个小卖铺》这些轻松的小说,读起来很轻松。 随着年龄增长,阅历的增加开始喜欢读历史,读人物传记,…

【涂鸦T2-U】2、添加光感bh1750

文章目录 前言一、基础介绍二、电路图2.1 电路图12.2 电路图2——实际采用 三、代码四、编译五、刷机六、测试结果小结 前言 本章介绍如何在涂鸦T2-U开发板上添加光感bh1750驱动并实现定时读取数据。 一、基础介绍 BH1750( GY-302 )光照传感器 这篇文章有bh1750的基础介绍。…

关于 ls -s 输出文件大小的单位问题的讨论

自己看书正好看到这里,正纳闷呢,上网查了下,发现不是我自己在为这个问题感到困惑。 有个大哥提出一个问题: 问题标题: ls -s的单位到底是什么? man ls -s, --size print the alloca…

库位角点检测之Centernet/CornerNet算法

1.CornerNet CornerNet 那么我们从bounding box左上角(top-left corner)看物体。视线横着的话,物体就在视线的下面(那么视线所在位置为the topmost boundary of an object)。视线竖着的话,物体就在视线的右边,那么视线…

CCFCSP试题编号:202009-2试题名称:风险人群筛查

#include <iostream> using namespace std;//判断是否在区域 bool isIn(int xl, int yd, int xr, int yu, int x, int y) {if ((x > xl && x < xr) && (y > yd && y < yu)){return true;}return false; }struct position {int a, b;…