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

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

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

相关文章

这几款 idea 插件让效率起飞!

作者:苍何,前大厂高级 Java 工程师,阿里云专家博主,CSDN 2023 年 实力新星,土木转码,现任部门技术 leader,专注于互联网技术分享,职场经验分享。 🔥热门文章推荐&#xf…

【CAD二次开发】标注箭头,获取修改标注箭头图块

常见的的标注箭头有以下种类 public static List<string> ArrowBlock = new List<string>(){" ","_CLOSEDBLANK&

如何选择靠谱的安防监控系统?优秀的安防智能系统应该具备哪些特点?

随着科技的不断进步&#xff0c;安防智能系统变得越来越重要。当前的安防监控市场系统五花八门&#xff0c;用户该如何选择性比价高、功能又靠谱的平台&#xff1f;一个优秀的安防智能系统应该具备哪些特点&#xff1f;今天我们来针对这个话题讨论和分享一下。 1、高效性&…

带你手搓阻塞队列——自定义实现

&#x1f308;&#x1f308;&#x1f308;今天给大家分享的是——阻塞队列的自定义实现&#xff0c;通过自定义实现一个阻塞队列&#xff0c;可以帮助我们更清晰、更透彻的理解阻塞队列的底层原理。 清风的CSDN博客 &#x1f6e9;️&#x1f6e9;️&#x1f6e9;️希望我的文章…

Java全栈基础篇--集合

集合 集合&#xff1a;集合是java中提供的一种容器&#xff0c;可以用来存储多个数据。 特点&#xff1a; 长度不固定&#xff0c;还可以存储不同的数据&#xff08;但是一般都用同一类型&#xff09; 集合和数组既然都是容器&#xff0c;它们有啥区别呢&#xff1f; 数组的长…

EasyAmplicon (易扩增子)-扩增子高通量序列分析软件流程及脚本-详细使用方法——来自刘永鑫团队的秘籍

其他不重要&#xff0c;重要的是方向&#xff0c;资源&#xff0c;还要好用&#xff0c;建议大家先看看论文介绍&#xff1a; https://doi.org/10.1002/imt2.83EasyAmplicon: An easy‐to‐use, open‐source, reproducible, and community‐based pipeline for amplicon data…

软件测试-测试用例案例及思维导图展示

自动售货机的测试用例 一个杯子的测试用例 一支笔的测试用例 朋友圈点赞的测试用例 功能测试 1点赞后是否显示结果 2.点赞后是否可以取消; 3.点赞取消后是否可以重复点赞; 4.共同好友点赞后&#xff0c;是否有消息提醒; 5.非共同好友点赞后&#xff0c;是否有消息提醒; 6.点击…

[数据结构]深入浅出讲解二叉树-平衡二叉树-左右旋转

树是一种数据结构&#xff0c;单位为Node(节点)。不同于链表的直线排列&#xff0c;树呈现一种自上而下的分层排序规则。 树->数据结构&#xff1a; 单元为Node(节点)->当这样的节点多了 就可以关联出不同的形态 一个父节点有一个左子节点&#xff0c;有…

uniapp-从后台返回的一串地址信息上,提取省市区进行赋值

1.这是接口返回的地址信息 2.要实现的效果 3.实现代码&#xff1a; <view class"address">{{item.address}}</view>listFun() {let url this.$url.url.positionInfoCompany;let param {page: this.page,limit: this.limit,keyword: this.keyword,};thi…

Python 入门

目录 编译性语言 解释型语言 Python语言介绍 Python安装 配置环境变量 Pycharm安装 Pycharm基本使用 编译性语言 解释型语言 计算机是不能理解高级语言的&#xff0c;更不能直接执行高级语言&#xff0c;它只能直接理解机器语言&#xff0c;所以使用任何高级语言编写的程…

应用于智慧金融的AI边缘计算盒子+AI算法软硬一体化方案

传统金融营业厅存在运营管理模式落后、资源投放不平衡、从业人员培训效果不达预期、客户体验割裂等普遍现象&#xff1b; 部署英码数字金融解决方案&#xff0c;将助力企业从传统金融模式快速向数字金融模式转变&#xff0c;可针对每一个客户定制个性化“一对一”服务&#xff…

基于springboot+vue的点餐系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

【23真题】耗时一周还原,终于有真题啦!

今天分享的是23年上海电力850的信号与系统回忆版试题及解析。上电的真题资源极其稀少&#xff0c;去年我找了3份&#xff0c;全部为假&#xff01;好在今年有刚刚上岸的同学全力协助&#xff0c;为大家弄出一份回忆版真题&#xff0c;希望对大家有帮助&#xff01; 小马哥Tips…

HarmonyOs 4 (二) HelloWord

目录 一 开发工具下载安装1.1 下载安装包1.2 下载相关依赖 二 开发者注册与个人实名认证三 第一个程序2.1 创建第一个程序2.2 认识开发者界面2.3 目录结构认识2.3.1 父目录认识2.3.2 AppScope 目录2.3.3 entry目录2.3.3.1 ets 目录2.3.3.2 resources目录 2.3.4 认识配置文件2.3…

马蹄集第34周

1.战神的对称谜题 不知道为什么超时&#xff01; def main():s input()result 0for i in range(len(s)):l i - 1r i 1while l > 0 and r < len(s) and s[l] s[r]:result max(result, r - l 1)l - 1r 1l ir i 1while l > 0 and r < len(s) and s[l] s…

【LeetCode】 160. 相交链表

相交链表 题目题解 题目 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&am…

FileInputStream 与 FileOutputStream

IO流&#xff1a;存贮和解决数据的存储方案 以上都是抽象类&#xff0c;不能创建实例 FileOutputStream 操作本地的文件&#xff0c;把文件写入本地磁盘 步骤&#xff1a; 1.创建字节输出流对象 参数是字符串表示的路径或者是File对象都是可以的如果文件不存在会创建一个新的…

redis笔记 -- 基础数据结构

redis笔记 基础的数据结构&#xff1a;string、list、hash、set、zset 容器型数据结构&#xff08;list、hash、set、zset&#xff09;通用规则 如果容器不存在&#xff0c;就创建一个&#xff0c;再进行操作如果容器里没有数据了&#xff0c;就立即删除&#xff0c;回收内存…

持续集成交付CICD:GitLabCI 运行前后端项目

目录 一、理论 1.spring项目自动构建 2.阿里云云效 Maven 3.Maven安装 4.Go安装 5.NPM安装 二、实验 1.GitLabCI 运行Maven项目 2.GitLabCI 运行Go项目 3.GitLabCI 运行NPM项目 三、问题 1.前端脚手架如何初始化项目 2.NPM下载如何指定 3.Go项目下载源如何指定 …

c++面试题

1.static的使用 1&#xff09;修饰局部变量&#xff1a;在函数内部使用static修饰局部变量&#xff0c;会使它成为静态局部变量。静态局部变量只会被初始化一次&#xff0c;且只有在第一次调用该函数时才会被初始化&#xff0c;之后每次调用该函数时都会保留上一次的值.从原来…