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

文章目录
- 一.人工智能-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 的编程工具项目,如:
- GitHub Copilot
- Microsoft AI
- chatgpt-plugins
- LangChain
- 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
本页面末更新名单
相关文章:
ChatGPT探索:提示工程详解—程序员效率提升必备技能【文末送书】
文章目录 一.人工智能-ChatGPT1.1 ChatGPT简介1.2 ChatGPT探索:提示工程详解1.2 提示工程的优势 二.提示工程探索2.1 提示工程实例:2.2 英语学习助手2.3 Active-Prompt思维链(CoT)方法2.4 提示工程总结 三.文末推荐与福利3.1《Cha…...
Pytest做性能测试?
Pytest其实也是可以做性能测试或者基准测试的。是非常方便的。 可以考虑使用Pytest-benchmark类库进行。 安装pytest-benchmark 首先,确保已经安装了pytest和pytest-benchmark插件。可以使用以下命令安装插件: pip install pytest pytest-benchmark …...
Swagger各版本访问地址
2.9.x 访问地址: http://ip:port/{context-path}/swagger-ui.html 3.0.x 访问地址: http://ip:port/{context-path}/swagger-ui/index.html 3.0集成knife4j 访问地址: http://ip:port/{context-path}/doc.html...
docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor
docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor 文章目录 docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbordocker-compose私有镜像仓库harbor搭建镜像推送到私有仓库harbor docker-compose D…...
OpenTSDB(CVE-202035476)漏洞复现及利用
任务一: 复现环境中的命令注入漏洞。 任务二: 利用命令注入执行whoami,使用DNS外带技术获取结果 任务三:使用反弹shell,将漏洞环境中的shell反弹到宿主机或者vps服务器。 任务一: 1.搭建好环境 2.先去了…...
Maven无法拉取依赖/构建失败操作步骤(基本都能解决)
首先检查配置文件,确认配置文件没有问题(也可以直接用同事的配置文件(记得修改文件里的本地仓库地址)) 1.file->Invalidate Caches清除缓存重启(简单粗暴,但最有效) 2.刷新maven以及mvn clean,多刷几次,看看还有没有报红的依赖…...
【数据库】数据库并发控制的目标,可串行化序列的分析,并发控制调度器模型
数据库并发控制 专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更…...
带头结点的双向循环链表
目录 带头结点的双向循环链表 1.存储定义 2.结点的创建 3.结点的初始化 4.尾插结点 5.尾删结点 6.头插结点 7.头删结点 8.查找并返回结点 9.在pos结点前插入结点 10.删除pos结点 11.打印链表 12.销毁链表 13.头插结点2.0版 14.尾插结点2.0版 前言: 当…...
2023年11月下旬大模型新动向集锦
2023年11月下旬大模型新动向集锦 2023.12.1版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 1、微软将向中国大陆开放Windows Copilot服务 据微软发布的消息,微软将在 2023 年 12 月 1 日面向中国大陆的企业和教育机构推出 We…...
有IP没有域名可以申请证书吗?
一、IP证书是什么? ip证书是用于公网ip地址的SSL证书,与我们通常所讲的SSL证书并无本质上的区别,但由于SSL证书通常颁发给域名,而组织机构需要公共ip地址的SSL证书,这类SSL证书就是我们所说的ip证书。ip证书具有安全、…...
【软件推荐】卸载360软件geek;护眼软件flux;
卸载360软件geek f.lux: software to make your life better (justgetflux.com) 卸载完扫描残留 护眼软件 hf.lux: software to make your life better (justgetflux.com)https://justgetflux.com/https://justgetflux.com/...
Module build failed: Error: ENOENT: no such file or directory
前言 这个错误通常发生在Node.js 和 vue,js项目中,当你试图访问一个不存在的文件或目录时。在大多数情况下,这是因为你的代码试图打开一个不存在的文件,或者你的构建系统(例如Webpack)需要一个配置文件,但找…...
Postgresql BatchInsert唯一键冲突及解决
Postgresql BatchInsert唯一键冲突及解决 当有唯一键冲突时,批量插入可能会报错; insert into tableA(sno,name,age,emp) values(),(),(); 会报错 insert into tableA(sno,name,age,emp) values(),(),() on conflict on contraint tableA_unique_key do …...
腾讯云AMD服务器标准型SA5实例AMD EPYC Bergamo处理器
腾讯云服务器标准型SA5实例是最新一代的标准型实例,CPU采用AMD EPYC™ Bergamo全新处理器,采用最新DDR5内存,默认网络优化,最高内网收发能力达4500万pps。腾讯云百科txybk.com分享腾讯云标准型SA5云服务器CPU、内存、网络、性能、…...
力扣 --- 加油站
题目描述: 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个…...
C++基础 -25- 动态多态
静态多态在程序编译的时候,确定将要执行的状态。 动态多态在程序运行的时候,才能确定执行的状态。 下面举例实现动态多态 work函数接口通过传参不同做不同的工作 #include "iostream"using namespace std;class person {public:person(){}vi…...
数据库-MySQL之数据库必知必会17-21章
第17章 组 合 查 询 创建组合查询 可用UNION操作符来组合数条SQL查询。利用UNION,可给出多条SELECT语句,将它们的结果组合成单个结果集。 **例子:**假如需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产…...
mysql主从复制-redis集群扩容缩容、缓存优化(缓存更新策略、穿透,击穿,雪崩)、mysql主从搭建、django实现读写分离
基于Docker实现读写分离 1 redis集群扩容缩容 1.1 集群扩容 1.2 集群缩容 2 缓存优化 2.1 缓存更新策略 2.2 穿透,击穿,雪崩 3 mysql主从搭建 4 django实现读写分离 1 redis集群扩容缩容 1.1 集群扩容 # 6台机器,3个节点集群# 8台机器&am…...
docker部署kerberos,群晖nas中nfs开启kerberos校验
背景 nas开启nfs存储共享,默认情况下只能给IP/24做限制, 达不到安全效果 需要增加kerberos策略校验,并且持久化kerberos数据,避免容器重启丢失数据 环境描述 宿主机系统:CentOS Linux release 7.9.2009 (Core) Docker版本…...
【前端】数据行点击选择
前言 【前篇文章】说了,我们公司的核心价值就是让人越来越懒,能怎么便捷就怎么便捷,主打一个简单实用又快捷,为了实现这个目标,我看成这个列表陷入了深思在想,要不要子表的数据加载在点击这个行时,就可以展示数据,这样就不用每次都要点那个小圆圈啦。 查资料 这显然…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
