如何在工作中利用Prompt高效使用ChatGPT
导读
AI 不是来替代你的,是来帮助你更好工作。用better prompt使用chatgpt,替换搜索引擎,让你了解如何在工作中利用Prompt高效使用ChatGPT。
01背景
现在 GPT 已经开启了人工智能狂潮,不过是IT圈,还是金融圈。
一开始,我觉的它就是一个增强版搜索引擎,在使用了一段时间之后,才发现它可能不仅仅是一个搜索引擎,它可以做更多的事情,它更加智能,搜索引擎能做的,它能做,甚至做得更好,搜索引擎不能做的,它也能做。
刚开始的时候,它的很多回答都是胡编乱造的。例如你问它一些新上映的电影,它即使不知道也会胡编乱造一通。大家又开始贬低它,觉得只不过就是一个普通的聊天机器人,但是一段时间的使用之后,你会发现,它进化了。
虽然,目前chatgpt肯定不是最完善的,当时它已经可以很好的做一些工作了,我们可以看看利用Prompt,chatgpt会给我们那些惊喜。这里我们用国内的文心一言大模型,进行测试。
02AI 可以帮助我们做什么?
2.1 知识总结
刚开始接触学习新知识的时候,难免需要去查看文档。现在的各种在线文档非常丰富。往往对于一个初学者来说,需要接触的信息太多、排版五花八门,学起来很费力。
这时候就可以借助 ChatGPT 的总结能力,例如我想学习一下 K8S 的相关知识,我发给它一个文档的地址,让它帮我总结。
可以看到,它很好地总结了这篇中文的文档,并且对每一个关键点进行了概括,列出了文档中所有重要的知识点。
在这里你继续发一篇英文的文档给它,它也会用中文帮你总结。
prompt: 总结这篇文档https://kubernetes.io/docs/concepts/overview/components/ 。 |
---|
让它总结一下 wikipedia 里的介绍。
prompt: 总结:https://zh.wikipedia.org/zh/%E6%B5%81%E6%B5%AA%E5%9C%B0%E7%90%832 |
---|
当我们将很长的文档的内容复制进来,让 chatgpt 进行总结。但是这时候会发现,文章太长了,可能会收到报错。 这时候,就要运用自己的想象力,使用 prompt 来进行优化了。我们需要把文章进行段落拆分,每一段都符合它的标准。
这样,就能得到了一篇文档的正确总结。
2.2 拆解任务
我们从需求端获取一个需求以后,很多情况下需要我们将任务拆分清楚,平且非常准确的估计时间,这时候可以简要描述一下我们这次的需求点,让 ChatGPT 帮我们进行任务拆解。
任务整体被拆成了一个个细小的任务。它可以很快的让我们将任务转换为 task,或者是需求跟踪单。这既方便和产品经理进行沟通,也便于我们自身排期。如果仍有疑问,可以继续询问拆解。比如我们想要询问第三步应该如何进一步实现。
2.3 阅读代码/优化代码
开发者经常接手别人的代码。质量参差不齐,还会夹在很多奇怪的命名。当我们阅读整体逻辑或者修改逻辑,可能会因为自身阅读的问题造成理解偏差,进一步引发 bug。
如果将这个方法交给 AI 去阅读呢?可以看看效果。
我们还可以让Chatgpt对每一行分别进行解释。这时候继续和它对话:
prompt: 在每一行代码上面加上注释 |
---|
我们还可以尝试让它帮我们做代码的优化和重构。
prompt:对代码进行优化和重构 |
---|
你可以对某一个部分提出更细节的要求,为它提出更好的优化方向。
prompt: 这个函数怎么重构为更加通用? |
---|
2.4 代码生成
开发者在工作中还有一种场景的工作量比较大,需要复杂的逻辑思考。但是实际上最终的代码可能只需要几行就可以搞定。你在思考过程中觉得很痛苦,想和身边的同事去沟通。也许你给他解释完这个逻辑以后,他非但不能帮你思考,反而将一人份痛苦变成两人份。
例如,我们要进行数据转换,是否也可以交给AI来做?我们发送给 GPT 这样的 prompt:
将数据结构进行转换。数据源为:[ { "candidates": null, "candidatesX": null, "description": "role---用户角色", "label": "角色", "name": "role", "optional": true, "schema": null, "type": "String" },{ "candidates": null, "candidatesX": null, "description": "Topics of the pulsar server to create---需要创建的主题", "items": { "schema": [ { "candidates": null, "candidatesX": null, "description": "topic name---主题名称", "label": "主题名称", "name": "name", "schema": null, "type": "String" }, { "candidates": null, "candidatesX": null, "default": 1, "description": "partition number---分区数", "label": "分区数", "name": "partitions", "schema": null, "type": "Integer", "validator": ">0" } ], "type": "Object" }, "label": "主题列表", "name": "topics", "optional": true, "schema": null, "type": "List" }]我想要得到的数据是 type 为 List 的数据,并且数据结构为:[{type:List, name:"topics", needValidates:[{ name:"name", type:"String"},{name:"partitions", type:"Integer"}] }] |
---|
GPT 会为我们得到正确的结果:
我们只需要输入目标数据结构,转换后的数据结构,无需指定语言。因为它会从你的上下文里理解到你是想要问什么实现方式。
还有执行脚本,我们只需要描述清楚我们的需求,它也会帮助我们进行完善。
上面可以看到,我们在这里使用了一次“自然语言编程”的操作流程。不论你是否会使用 python、bash 你都可以正常的描述你的需求。进行生成。
我们这里就可以打开一下思路,我们还可以进行代码转换,例如你写了一段 js 代码,你希望将这段代码转化为python。
2.5 生成单测
我们刚刚那段数据转化的代码,如果我们想要进行测试,只需要告诉 AI 帮我生成单测即可。
03Prompt 能力
3.1 Prompt 是什么?
整体来说,上述 AI 的强大之处有几点:
总结/理解能力。它能够很好的总结你发给它的内容,进行总结。这也就是一种理解能力。
强大的上下文关联能力。你不需要像使用搜索引擎一样,每一次的操作都是独立的。你可以将整个对话都变成一个巨大的搜索,通过多次对话来阐述自己想要的信息。甚至还能让它帮助你向它自己提问。
为了更好使用AI、利用这些能力,我们需要做 prompt。prompt 就是提示词,表达语言的能力。我们需要转换自己的思维,从工程师到产品经理,或者是一个 Business Analysis 的角色。我们需要将接到手的任务,进行拆解,一步步的变为提示词。
3.2 Better Prompt
开发者可以利用它的上下文能力,帮助自己纠正语法以及提供更好的 prompt 的训练。
不管你用任何一种语言,它都是利用数据模型进行分析,并不是用单一的语言进行思考。也就是说结果的生成质量不会差异很大。当然每一种语言会有所差异,目前来看英文的效果是最好的。目前国内的大厂也推出文心一言、通义千问。希望国内的大语言模型越来越好,这边文章就是使用了ai回答就是文心一言,目前来看能力还是不错的。
04总结
使用 ChatGPT 一开始进行简单的尝试,并没有觉得有什么特别的。在浏览各类教程时,才发现利用 GPT 进行代码创作来丰富自己的武器库,比如进行图标分析、软件制作等等。实际上,AI 并不是简单的问答而已,它具有一定的解决问题甚至是创造知识的能力。我们要对自己手里的任务、方法、逻辑,有更清晰的认知。让人类做人类该做的事情,让 AI 做它擅长的事情。
05分享
chatgpt prompt学习资料分享
相关文章:

如何在工作中利用Prompt高效使用ChatGPT
导读 AI 不是来替代你的,是来帮助你更好工作。用better prompt使用chatgpt,替换搜索引擎,让你了解如何在工作中利用Prompt高效使用ChatGPT。 01背景 现在 GPT 已经开启了人工智能狂潮,不过是IT圈,还是金融圈。 一开…...

uniapp-小程序button分享传参,当好友通过分享点开该页面时,进行一些判断……
一、需求描述: 该小程序中,点击圈子列表页面—>进入圈子详情页面,在圈子详情页面点击button分享按钮后,发送给好友。当好友通过分享点开该页面时: 1.先判断是否登录,如果没有,先去登录&#…...

Ceph部署方法介绍
Ceph部署方法介绍 Installing Ceph — Ceph Documentation Ceph环境规划 admin是一个部署节点...

GoogleLeNet V2 V3 —— Batch Normalization
文章目录 Batch Normalizationinternal covariate shift激活层的作用BN执行的位置数据白化网络中的BN层训练过程 BN的实验效果MNIST与GoogleLeNet V1比较 GoogleLeNet出来之后,Google在这个基础上又演进了几个版本,一般来说是说有4个版本,之前…...

Mac 系统钥匙串证书不受信任
Mac 系统钥匙串证书不受信任 解决办法 通过尝试安装 Apple PKI 的 Worldwide Developer Relations - G4 (Expiring 12/10/2030 00:00:00 UTC) 解决该异常问题 以上便是此次分享的全部内容,希望能对大家有所帮助!...

一个企业级的文件上传组件应该是什么样的
目录 1.最简单的文件上传 2.拖拽粘贴样式优化 3.断点续传秒传进度条 文件切片 计算hash 断点续传秒传(前端) 断点续传秒传(后端) 进度条 4.抽样hash和webWorker 抽样hash(md5) webWorker 时间切片 5.文件类型判断 通过文件头判断文件类型 6.异步并发数控制(重要…...
安全渗透重点内容
this是js中的一个关键字,在不同的场合使用,this的值会发生变化,下面我将详细的介绍this在函数中的各种指向。 在方法中,this表示该方法所属的对象。 如果单独使用,this表示全局对象。 在函数中,this表示全…...

【触觉智能Purple Pi OH开发板体验】开箱体验:开源主板Purple Pi RK3566 上手指北
前言 前段时间收到来自【电子发烧友】的一款开发板,名叫:PurplePi,216G售价仅249元。它使用的芯片是rk3566,适配的OpenHarmony版本为3.2 Release 是目前最便宜的OpenHarmony标准系统开源开发板,并且软硬件全部开源&am…...
flink1.16使用消费/生产kafka之DataStream
flink高级版本后,消费kafka数据一种是Datastream 一种之tableApi。 上官网 Kafka | Apache Flink Kafka Source 引入依赖 flink和kafka的连接器,里面内置了kafka-client <dependency><groupId>org.apache.flink</groupId><arti…...

【多任务编程-线程通信】
进程/线程通信的方式 某些应用程序中,进程/进程和线程/线程之间不可避免的进行通信,进行消息传递,数据共享等 同一进程的线程之间通信方式包括Windows中常用Event, Message等。 不同进程之间的通信可以利用Event, FileMapping(内存共享), W…...

K8S暴露pod内多个端口
K8S暴露pod内多个端口 一、背景 公司统一用的某个底包跑jar服务,只暴露了8080端口 二、需求 由于有些服务在启动jar服务后,会启动多个端口,除了8080端口,还有别的端口需要暴露,我这里就还需要暴露9999端口。 注&a…...

Python 列表
""" #list函数 ls list() #创建一个空列表 print(list()) print(list(str(1234)))#[1, 2, 3, 4] print(list(range(5)))#[0, 1, 2, 3, 4] print(list((1,2,3,4)))#[1, 2, 3, 4] print(list(Lift is short, you need python))#注意空格也算一个字符 #[L, i, f,…...

Rabbitmq的安装与使用(Linux版)
目录 Rabbitmq安装 1.在Ubuntu上安装RabbitMQ: 打开终端,运行以下命令以更新软件包列表: 安装RabbitMQ: 安装完成后,RabbitMQ服务会自动启动。你可以使用以下命令来检查RabbitMQ服务状态: 2.在CentOS…...

Kubernetes对象深入学习之四:对象属性编码实战
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Kubernetes对象深入学习》系列的第四篇,前面咱们读源码和文档,从理论上学习了kubernetes的对象相关的知识ÿ…...

深度学习入门教程(2):使用预训练模型来文字生成图片TextToImageGenerationWithNetwork
本深度学习入门教程是在polyu HPCStudio 启发以及资源支持下进行的,在此也感谢polyu以及提供支持的老师。 本文内容:在GoogleColab平台上使用预训练模型来文字生成图片Text To Image Generation With Network (1)你会学到什么&a…...

ORA-38760: This database instance failed to turn on flashback database
早晨接一个任务,使用rman备份在虚拟化单机上恢复实例,恢复参数文件、控制文件和数据文件都正常,recover归档时报错如下: Starting recover at 2023-07-28 10:25:01 using channel ORA_DISK_1 starting media recovery media reco…...
避免低级错误:深入解析Java的ConcurrentModificationException异常
在软件开发中,我们常常会遇到各种错误和异常。其中有一类比较低级但又常见的错误就是ConcurrentModificationException异常。最近了我就写了个这种异常,这个异常通常发生在使用迭代器遍历集合时,同时对集合进行修改,从而导致迭代器…...

7.28
1.思维导图 2.qt的sever #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> //服务器类 #include<QTcpSocket> //客户端类 #include<QMessageBox> //对话框类 #include<QList> …...

java线程中的常见方法(详解)
方法简介 方法名 功能 说明 start() 启动一个新线程,在新的线程运行 run 方法中的代码 start 方法只是让线程进入就绪,里面代码不一定立刻运行(CPU 的时间片还没分给它)。每个线程对象的start方法只能调用一次,如…...
线程池参数配置
上次面试被人问到,如果是IO 密集型的任务,该如何配置合适的线程数,当初我说要按照IO具体的请求毫秒时间,来配置具体的线程数。 NthreadsNcpu*(1w/c) 公式中 W/C 为系统 阻塞率 w:等待时间 c:计算时间一般情况下,如果存…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...