如何将ChatGPT训练成某个领域的专家!附完整示例!

news2024/11/15 8:23:59

背景

最近听了
八叉的一个ChatGPT讲座,讲的是如何将ChatGPT训练成领域专家,这样我们就可以用它来解决该领域的各种问题。

整个讲座中最让我印象深刻的就是训练方法,它是通过让ChatGPT向我们提问,然后由我们给出答案的方式进行训练。这和我日常使用ChatGPT的方法完全相反。

训练方法

第一步:输入已知需求

我们需要把当前已知的需求输入给ChatGPT。想象一下,当我们需要别人完成一项任务时,要做的第一件事就是向其介绍任务的基本情况。

第二步:让ChatGPT提问

在输入已知需求后,我们需要确认ChatGPT是否理解需求。这里最重要的是,要让ChatGPT在不理解需求时提出问题。这就像,在我们介绍完任务的基本情况后,总要问上一句,“有没有问题?”。

这是最关键的一步。ChatGPT能够帮助我们发现已知需求中的遗漏点,这通常能够引起我们更深层次的思考。

第三步:回答问题并再次让ChatGPT提问

在ChatGPT提出问题后,我们要先给出答案,然后回到第二步,看ChatGPT是否还有问题。这就像,在我们回答完别人的问题后,总要问上一句,“还有问题吗?”。

第四步:重复上述步骤直到ChatGPT没有问题

不断的重复第二步和第三步,直到ChatGPT没有任何问题。这是一个由扩散到收敛的过程,刚开始时问题会很多,但随着信息输入的增多,问题会越来越少。

第五步:输出完整需求

在ChatGPT没有任何问题后,我们可以让其输出一份它理解的完整需求。这份需求就是我们的领域模型,在输入该模型后,ChatGPT可以更加准确的解决该领域内的问题。

示例

基于上述训练方法,我让ChatGPT帮我完善了一个爬虫程序的需求。

已知需求

在已知需求中,我对架构,技术栈和业务逻辑做了描述。

在需求描述完成后,我让ChatGPT在不理解或需要澄清时进行提问。

第一轮提问

ChatGPT第一轮问了三个问题

  1. 在URL不能访问或返回错误时,程序该如何处理?
  2. 如何实现定时任务?是使用程序外部的定时任务还是程序内部的定时任务?
  3. 如何对S3上的文件进行命名?

第三个问题我没有考虑过,这是ChatGPT找到的第一个遗漏点

第二轮提问

ChatGPT第二轮问了六个问题

  1. 是否支持同时爬取多个URL?
  2. 在S3上传失败时,程序该如何处理?
  3. 如何获取S3的鉴权信息?
  4. 上传到S3的文件是否有大小限制?如果有,限制是多大?
  5. 在自动爬取时,我们是否需要给用户返回信息?自动爬取是否是一个后台进程?
  6. 如果一次爬取的时间超过了5分钟,程序该如何处理?(在原始需求里,自动爬取的时间间隔是5分钟)

第四个和第六个问题我没有考虑过,这次ChatGPT帮我找到了两个遗漏点。

第三轮提问

ChatGPT第三轮问了六个问题

  1. 如果程序关闭时爬取操作正在进行,是否要停止爬取操作?
  2. 如果S3上传失败,是否需要重试?如果要,重试几次?
  3. 自动爬取的时间间隔是否可配置?还是固定在5分钟?
  4. 程序是否需要支持一些特定的返回值?例如301。
  5. 程序是否需要对一些异常做特殊处理?
  6. 程序使用的是哪种日志框架?

第一个,第二个和第四个问题我没考虑过,这次ChatGPT帮我找到了三个遗漏点。

第四轮提问

ChatGPT第四轮问了六个问题

  1. 是否需要支持HTTPS?
  2. 爬取时是否有不同的请求方法?例如POST或PUT。
  3. 爬取时是否需要设置HTTP Header?例如Authorization。
  4. 爬取时是否需要设置查询参数?如果需要,S3的文件名要如何生成?
  5. 错误消息的格式是什么?
  6. 程序是否需要支持不同的S3区域?

第一个,第二个,第三个和第四个问题我没有考虑过,这次ChatGPT帮我找到了四个遗漏点。

第五轮提问

ChatGPT第五轮只问了一个问题

  1. 在爬取时是否需要限速?例如,如果某个网站对每分钟的请求数量有限制,我们是否需要处理?

这个问题我已经考虑过,但没有写在已知需求里

完整需求

在没有问题后,ChatGPT输出了它所理解的完整需求

总结

在我第一次听到这种训练方法时,我其实不太相信ChatGPT的提问能够收敛,但事实胜于雄辩,它不但能够收敛,而且还可以找到非常重要的遗漏点,让需求更加完备。

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

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

相关文章

牛客 BM40 重建二叉树

描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。 提示: 1.vin.length pre.length 2.pre 和 vin 均无重复元素…

Redis未授权漏洞复现

Redis简介 Redis是C语言开发的一个开源高性能(key-value)键值对类型的内存NoSQL数据库,可以用作数据库、缓存、信息中间件(性能非常优秀,支持持久化到硬盘且高可用)。由于其自身特点,可以广泛应用在数据集群&#xff…

threeJs进阶 让模型沿着指定轨迹移动与转向

效果图: 涉及相关知识点: 欧拉对象和四元数主要用来表达对象的旋转信息。 关键词:欧拉Euler、四元数Quaternion、矩阵Matrix4 欧拉对象Euler 欧拉角描述一个旋转变换,通过指定轴顺序和其各个轴向上的指定旋转角度来旋转一个物体…

小红书达人等级有哪些,达人种草力度判断

小红书对于产品及品牌的传播作用,来自于达人自身的分享。以笔记为媒介,对产品进行情景化展示,从而吸引消费,就被称作是种草。而种草力度的强弱,则与达人等级息息相关。下面,就来跟详细为大家解读。 一、小红…

VHDL的基本语法(一)

1 VHDL基本结构 1 实体 Entity:描述所设计的系统的外部接口信号,定义电路设计中所有的输入和输出端口 2 结构体 Architecture:描述系统内部的结构和行为 3 包集合 package:存放各设模块能共享的数据类型、常数和子程序等&#xf…

一百一十、Hive时间转换——from_unixtime踩坑(不要用from_unixtime,而是用from_utc_timestamp)

1.详情 从kettle转换任务得到时间戳为13位,1683701579457。想看看这个时间戳与createTime字段的关系,于是一开始使用了from_unixtime,结果踩坑了 2.运行问题(晚8个小时) hive> select from_unixtime(cast(1683701…

产品经理怎样活着走出需求评审会?

需求评审是产品经理工作的重要环节,是团队成员间衔接需求的重要桥梁,产品经理的方案能准确落地的重要保障。 一场成功的需求评审会,是能够完整清晰传递产品目标、产品功能,能获得团队认同,并且会后团队能够配合实施的…

orin配置系统

查看linux下的opencv安装版本: pkg-config --modversion opencv查看linux下的opencv安装路径: sudo find / -iname "*opencv*"可知opencv安装在/usr/local/lib里面。 在~/.bashrc中配置如下 在刷机完成的Orin,执行如下命令以安装…

uboot下内存操作mw和md命令详解

mw简介 u-boot 中的 mw 命令是用于向内存写入数据的命令,它有4种形式: mw.b - 写入 1 个字节(8 比特)的数据mw.w - 写入 1 个字(2 字节,16 比特)的数据mw.l - 写入 1 个长字(4 字节,32 比特)的数据mw.q - 写入 1 个四字(8 字节,64 比特)的数据 它们的语法格式是: mw.b addres…

servlet的运行原理

Servlet在容器中的执行过程 1.浏览器向服务器发出GET请求 2.服务器上的Tomcat接收到该url,根据该url判断为Servlet请求,此时Tomcat将产生两个对象:请求对象(HttpServletRequest)和响应对象(HttpServletResponce) 3.Tomcat根据url找到目标Servlet,且创建…

kubernetes详细介绍

kubernetes组件 1 kubernetes组件2 kubernetes概念3 Pod3.1 pod的生命周期1. Pod会出现5种状态2. pod的创建过程3. pod的终止过程 3.2 Pod控制器1. 什么是Pod控制器2. ReplicaSet(RS)3. Deployment4. Horizontal Pod Autoscaler(HPA)5. DaemonSet6. Job7. Cronjob 4 Service4.1…

TypeScript extends和implements区别

(被人理解是幸运的,但不被理解未必不幸。一个把自己的价值完全寄托于他人的理解上面的人往往并无价值。——周国平) extends 相关文章 implements implements是一个类实现一个接口用的关键字.实现一个接口,必须实现接口中的所有…

React+Antd+Vite+TypeScript 项目实战教程(一)

本教程属于react入门教程,课程围绕如何搭建一个项目框架展开,会带你快速了解react、redux、redux-devtool、react-router-dom、axiox这些常见技术的使用方式,教程最后会附上项目源码。 一、创建项目 在搭建项目时,我们通常会使用…

QT界面开发杂记(五)

QString转char* QString("name").toStdString().c_str() c_str()没有‘\0’结尾可能导致一些错误可以使用以下方法解决: QString xmlPath "path"; const char cXmlName[1024] {0}; memcpy((void*)cXmlName,xmlPath.toStdStri…

目标检测 pytorch复现CenterNet目标检测项目

目标检测 pytorch复现CenterNet目标检测项目 1、项目创新点2、CenterNet网络结构3、CenterNet的模型计算流程如下:4、详细实现原理4.1、heatmap(热力图)理解和生成4.1.1 heatmap生成4.1.2 heatmap高斯函数半径的确定 4.1.3 CenterNet中生成高斯核的部分代码进行解析…

关于hashmap,希望能够帮到你

文章目录 前言介绍hashmap前先说一下关于的map知识 一、Map的概念和场景1.map的概念2.模型1. 纯 key 模型2. Key-Value 模型 二、Map的使用1.关于Map的使用2. 关于Map.Entry<K, V>的说明3. Map 的常用方法说明 三.hashmap1.方法构造2 冲突-概念3. 冲突-避免-哈希函数设计…

深入学习MYSQL-数据检索

前言 由于大部分基础知识都已经学过了&#xff0c;这里只把觉得应该记录一下的知识点做个笔记。然后以下笔记和sql均来自书籍(MYSQL必会知识) LIKE模糊查询 通配符% 相当于是查询一jet开头后面任意的数据 select prod_id,prod_name from products where prod_name like jet…

GRPC 程序在 Kubernetes 中的负载均衡

本文的背景使用的是 kratos 框架。 背景 众所周知 grpc 底层使用 http2 协议&#xff0c;而 http2 是一个长链接多路复用的。在正常情况下客服端与服务端一对一不会需要负载均衡手段&#xff1b;但是当服务上云之后为了保障服务的可用性所以我们服务端一般是多副本&#xff0…

用chatgpt实现 java导出excel复杂表。

记录一次使用chatgpt解决实际问题的&#xff0c;需求是在页面添加一个订单导出excel的功能&#xff0c;订单编号、订单明细&#xff0c;相同订单编号合并单元格&#xff0c;模板如下 表头表尾不用说&#xff0c; 主要是表格内容部分&#xff0c;左边是订单编号&#xff0c;右边…

clickhouse linux 离线安装

1. 下载离线安装包&#xff0c;下四个包&#xff0c;版本号要一致, (在此下的是20.8.3.18-1.el7.x86_64版) clickhouse-server, clickhouse-client, clickhouse-common-static, clickhouse-server-common Altinity/clickhouse - Packages packagecloudBrowse pa…