当前位置: 首页 > news >正文

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 的编程工具项目,如:

  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
本页面末更新名单

相关文章:

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版本&#xf…...

【前端】数据行点击选择

前言 【前篇文章】说了,我们公司的核心价值就是让人越来越懒,能怎么便捷就怎么便捷,主打一个简单实用又快捷,为了实现这个目标,我看成这个列表陷入了深思在想,要不要子表的数据加载在点击这个行时,就可以展示数据,这样就不用每次都要点那个小圆圈啦。 查资料 这显然…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...