ChatGPT 有什么新奇的使用方式?
来看看 OpenAI 内部是如何使用 ChatGPT 的。
目前(4月29日)距离ChatGPT发布了已经半年,这期间大家基本上把能想到的ChatGPT的使用方法都研究遍了——从写作、写代码,到翻译、英语润色,再到角色扮演等等。

所以,现在这个阶段再提到“ChatGPT新奇的使用方式”,恐怕只能靠OpenAI自己出手了。
然而OpenAI一般也不会轻易向大家展示他们内部是如何使用ChatGPT的。
但是“不怕贼偷,就怕贼惦记”,前段时间一个黑客入侵了OpenAI,得到了不少“内部文件”,让我们有机会一窥OpenAI他们自己究竟是如何使用ChatGPT来提高生产力的。
从插件说起
大家都知道上个月OpenAI给ChatGPT引入了插件功能,通过安装所需的插件,ChatGPT能自动化完成各类特定功能,比如联网搜索相关信息、写代码等等,可以说功能非常强大,以至被称为“ChatGPT走向通用人工智能(AGI)的重要时刻”。
在插件发布没几天的时候,上面提到的这个外国黑客小哥入侵了OpenAI的API,然后发现了几十个隐藏插件。

插件列表
重要的是他破解了每个插件的描述文件。
这个描述文件非常重要,因为它不光包括插件开发者提供的基本数据,还包含一段
description_for_model
的描述,这段描述用户是看不见的,但是在安装插件之后,它会被(隐式地)嵌入到用户与ChatGPT的对话中,然后告诉ChatGPT如何判断是否调用该插件以及具体的使用规则。这一部分我在之前的回答中详细介绍过。
一个案例
而在这众多被“泄露”的插件中,一个最有意思的是OpenAI自己使用的、用于评估其他插件安全性的插件。
说人话就是OpenAI利用ChatGPT进行第三方插件的安全性评估。
具体是如何实现的呢?
答案是通过三段prompt。
1、Instructions(说明)

说明:
- 你是在OpenAI工作的专业产品安全工程师。
- 你的任务是分析由manifest文件和yaml文件组成的第三方插件。
- 你的分析应包括(但不限于)以下内容:- manifest文件是否描述了对应的yaml文件中提到的功能?- yaml数据结构是否包含可用于收集或与个人数据交互的字段?- yaml数据结构是否包含可用于代表用户采取行动的字段(例如创建帐户、访问个人信息或促使两个人之间的通信)?- 插件是否提供参与欺诈和其他恶意活动的能力?- 插件是否试图绕过基本的安全或安全控制或以不适当的方式更改系统提示(prompt)?- 插件是否违反OpenAI政策?如果是,请解释插件违反了哪些规定。
- 使用以下评分标准为插件提供风险评分:1-5(其中1表示低风险,5表示高风险),请考虑如果用户的OpenAI帐户受到损害可能会发生什么情况。
- 基于潜在危害,为插件提供适用的年龄范围:- 所有年龄段- 青少年- 成年人- 不适宜
2、Facts(事实)

事实:
- 每个插件包括一个manifest文件和一个yaml文件。
- 低风险插件执行的活动包括检索或分析公共(非个人)数据。
- 中等风险插件执行的活动包括促使个人之间的通信或与第三方的商务往来。
- 高风险插件可与高风险数据交互并促进对高风险数据的检索或分析,也可用于实施欺诈或参与恶意活动。
- 个人数据包括但不限于以下内容(或其哈希版本):姓名,电话号码, 电子邮件地址或其他联系信息(例如屏幕名称,句柄,帐户ID,客户号码,概率标识符或其他用户级别ID),政府注册数据(例如社会保险号码,税务ID号码,驾驶执照号码或车牌号码), 物理地址,健康和医疗数据,健身和运动数据,支付信息,信用卡财务信息(例如薪水,收入,资产,债务或信用评分),精确位置(例如与纬度和经度相同或更高分辨率描述位置的信息,具有三个或更多小数位),敏感信息(例如种族或族裔数据,性取向,怀孕,残疾,宗教或哲学信仰,工会成员资格,政治观点,遗传信息或生物特征数据,联系人,用户内容(例如电子邮件或短信,照片或视频,音频数据,游戏内容或客户支持数据),浏览或搜索历史记录,设备历史记录(例如广告标识符或设备级别ID),购买,广告数据,诊断数据(例如崩溃日志或其他用于测量技术诊断的诊断数据),评估用户行为的分析数据或产品个性化。
低风险个人数据包括:
- 电子邮件地址和其他联系信息
- 姓名
- 电话号码
中等风险个人数据包括:
- 政府注册数据
- 物理地址
- 位置数据
- 联系人
高风险个人数据包括:
- 财务或支付数据
- 健康和医疗数据
- 用户内容
- 敏感信息
3、Policy(OpenAI禁止条款)


案例分析
通过上面这三张图片,很容易搞清楚这个插件背后的逻辑,即OpenAI是如何使用ChatGPT进行插件安全性评估的。
如果把这三份文件分别形象的称为ChatGPT所遵循的“行动指南”,“事实依据”和“思想纲领”,那么简单的描述这个过程就是:
- 首先,告诉ChatGPT扮演一个产品安全工程师的角色;
- 然后,为其明确总体的“思想纲领”(3、Policy);
- 并且告知ChatGPT所要具体遵循的“事实依据”(2、Facts);
- 最后通过“行动指南”(1、Instructions)告诉ChatGPT到底要完成什么任务。
有没有觉得这个逻辑非常的高效而且合理?
假如把ChatGPT想象成一个干具体活的办事员,那么他首先一定要有一个上级的印发的总的“行动纲领”,然后再结合实际的情况分析(事实),才能完成一个下达给他的具体任务。
这非常符合人类工作中的办事流程。
跟SPQA软件架构(一个用于设计基于GPT模型的AI软件的逻辑结构)也很相似。

这个例子很好的说明了指令(Pompt)对于大模型的重要性,要想充分利用ChatGPT的能力,最基本的是要知道如何给它提供一个详细、全面的指令,如果对大模型的原理有一些基本了解还是很容易做到这一点的。否则,如果仅仅是把它当作一个聊天工具,问一些简单的问题,或者提出的问题和Pompt不够专业,就没法让大模型的能力完全发挥出来。
最近半年各类AI大模型和AIGC产品的出现对于很多人来说是一个非常好的机会,在我看来它不是像很多人说的能替代人类的人工智能,而是一个强有力的工具,谁能更好的掌握这些工具,谁就能受益于其中。每个人都应该把握住AI大模型这把火来提升自己。
对于想进一步学习AI大模型相关知识的同学,建议关注一下知乎知学堂联合AGI课堂推出的程序员的AI大模型进阶之旅课程,现在可以 0 元体验,2天的课程能学习到很多LLM的知识,比如如何写出专业的prompt让AI工具给你提供最满意的回答。有行业内大佬解读大模型相关的技术、原理、以及使用技巧等。重要的是有免费的大模型资料包和好用的AI工具,添加助教即可领取。需要的可以点击下方了解一下 ↓ ↓ ↓
2023超🔥的AI大模型公开课👉大模型资料包免费领!
¥0.00立即体验
一点启发
从上面这个的例子可以看出,OpenAI这个使用ChatGPT的方式更像是一个高级的逻辑框架。它通过三个层次的prompt为ChatGPT这样一个“通用”的模型明确了应该按照什么逻辑完成一个具体的任务。
对于完成同样一个任务,使用这样一个逻辑结构得到的结果显然比不使用它得到的结果更准确、更具体。
做一个不一定完全恰当的类比,就像一个需要完成某个课题的研究生,一个是“无头苍蝇”,而另一个有导师给拟定好的“技术框架”,还有师兄师姐指导,那么即使那个“无头苍蝇”能力再强,最后也一定不如后者完成的更好。
仿照这个例子,我们可以按照同样的逻辑来让ChatGPT完成其他任务,比如
- 书评/影评。评价一本小说/一部电影的好坏;
- 判断一个行为是不是违背了某(公司的?)精神;
- 内容分析员。分析某条内容是不是符合某个群体的喜好(广告分析?);
- 甚至可以让它代替互联网公司的内容shen cha员。
随着多模态模型的到来,以上的任务在将来可能不限于文字形式,而还可以是图片、语音以及视频等。
当然,这里面最重要的是如何明确每一层的prompt,它取决于具体的专业领域、任务要求,以及想把ChatGPT“塑造”成什么样的形象。
如果把思路打开,甚至可以训练不同的模型分别完成每一层的任务。
但这又是另外一个值得探讨的问题了。
最后给大家分享一个我常用的国内可以访问的Chatgpt地址:https://gpt.91chat-ai.cn?share=csdn
以上。如有帮助,欢迎点赞、关注。
相关文章:
ChatGPT 有什么新奇的使用方式?
来看看 OpenAI 内部是如何使用 ChatGPT 的。 目前(4月29日)距离ChatGPT发布了已经半年,这期间大家基本上把能想到的ChatGPT的使用方法都研究遍了——从写作、写代码,到翻译、英语润色,再到角色扮演等等。 所以&#x…...
【计算机四级(网络工程师)笔记】操作系统概论
目录 一、OS的概念 1.1OS的定义 1.2OS的特征 1.2.1并发性 1.2.2共享性 1.2.3随机性 1.3研究OS的观点 1.3.1软件的观点 1.3.2资源管理器的观点 1.3.3进程的观点 1.3.4虚拟机的观点 1.3.5服务提供者的观点 二、OS的分类 2.1批处理操作系统 2.2分时操作系统 2.3实时操作系统 2.4嵌…...
LeetCode算法练习top100:(10)贪心算法
package top100.贪心算法;import java.util.ArrayList; import java.util.List;public class TOP {//121. 买卖股票的最佳时机public int maxProfit(int[] prices) {int res 0, min prices[0];for (int i 1; i < prices.length; i) {if (prices[i] < min) {min price…...
随记-探究 OpenApi 的加密方式
open api 主要参数如下 appKey 接口Key(app id)appSecret 接口密钥timeStamp 时间戳 毫秒nonceStr 随机字符串signature 加密字符串 客户端 使用 appSecret 按照一定规则将 appKey timeStamp nonceStr 进行加密,得到密文 signature将 appK…...
stm32学习总结:4、Proteus8+STM32CubeMX+MDK仿真串口收发
stm32学习总结:4、Proteus8STM32CubeMXMDK仿真串口收发 文章目录 stm32学习总结:4、Proteus8STM32CubeMXMDK仿真串口收发一、前言二、资料收集三、STM32CubeMX配置串口1、配置开启USART12、设置usart中断优先级3、配置外设独立生成.c和.h 四、MDK串口收发…...
配置paddleocr及paddlepaddle解决报错 GLIBCXX_3.4.30 FreeTypeFont
配置 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/StyleText/README_ch.md#style-text 环境配置 https://www.paddlepaddle.org.cn/ 根据自己的cuda版本选择paddlepaddle-gpu # 新建conda环境 # python version conda create -n paddle python3.8 # 安装p…...
【实战】如何在Docker Image中轻松运行MySQL
定义 使用Docker运行MySQL有许多优势。它允许数据库程序和数据分离,增强了数据的安全性和可靠性。Docker Image的轻便性简化了MySQL的部署和迁移,而Docker的资源隔离功能确保了应用程序之间无冲突。结合中间件和容器化系统,Docker为MySQL提供…...
PLC物联网,实现工厂设备数据采集
随着工业4.0时代的到来,物联网技术在工厂设备管理领域的应用日益普及。作为物联网技术的重要一环,PLC物联网为工厂设备数据采集带来了前所未有的便捷和高效。本文将围绕“PLC物联网,实现工厂设备数据采集”这一主题,探讨PLC物联网…...
npm安装依赖报错ERESOLVE unable to resolve dependency tree(我是在taro项目中)(node、npm 版本问题)
换了电脑之后新电脑安装包出错 👇👇👇 npm install 安装包报错 ERESOLVE unable to resolve dependency tree 百度后尝试使用 npm install --force 还是报错 参考 有人说是 node 版本和 npm 版本的问题 参考 新电脑 node版本:16.1…...
Maven仓库上传jar和mvn命令汇总
目录 导入远程仓库 命令结构 命令解释 项目pom 输入执行 本地仓库导入 命令格式 命令解释 Maven命令汇总 mvn 参数 mvn常用命令 web项目相关命令 导入远程仓库 命令结构 mvn deploy:deploy-file -Dfilejar包完整名称 -DgroupIdpom文件中引用的groupId名 -Dartifa…...
Jenkins 执行远程脚本的插件—SSH2 Easy
SSH2 Easy 是什么? SSH2 Easy 是一个 Jenkins 插件,它用于在 Jenkins 构建过程中通过 SSH2 协议与远程服务器进行交互。通过该插件,用户可以在 Jenkins 的构建过程中执行远程命令、上传或下载文件、管理远程服务器等操作。 以下是 SSH2 Eas…...
Starting the Docker Engine...一直转圈
出现的问题: 原因排查: 看了网上的很多篇文章,每个原因都排查了,没有发现问题。 遇到这样的情况应先看自己是否安装成功 打开运行,在空框中输入powershell并点击确定: docker version 显示版本证明安装…...
关于Python里xlwings库对Excel表格的操作(十五)
这篇小笔记主要记录如何【获取单元格数据的对齐方式或更改单元格数据的对齐方式】。 前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 (1)如何安装导入xlwings库; …...
[Linux] LVS+Keepalived高可用集群部署
一、Keepalived实现原理 1.1 高可用方案 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色…...
【版本管理】git stash用法
应用场景 我们在开发过程中可能会遇到这样的情况: 想从A分支切换到B分支,但A分支尚未改完,暂时不想提交代码 此时可以在切换到B分支前,先通过stash指令来缓存本地改动,等切回A分支时,再通过stash还原改动…...
声明式的理解【gpt】
一 MyBatis采用了声明式语法来进行SQL映射配置【mybatis声明式】 MyBatis是一款优秀的持久层框架,支持自定义SQL、存储过程以及高级映射,使得开发人员能够专注于SQL本身而不是数据库访问。MyBatis提供了两种配置方式:XML配置和注解配置&…...
提高Spring Boot技能的9种方法
以下是提高 Spring Boot 技能的 9 种方法: 1. 外部化您的配置: 充分利用 Spring Boot 潜力的另一种方法是尽可能地尝试外部化您的配置,而不是对其进行硬编码。外部化您的配置将使您的应用程序更加灵活且更易于管理。 外部化配置的另一个优点…...
HIVE基本操作
1、启动远程服务端:hive --service metastore启动(这里是阻塞式),然后在客户端操作 2、Hive DDL(数据库定义语言) --展示所有数据库show databases; --切换数据库use database_name; 3、创建语法&#x…...
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 分发饼干 class Solutio…...
【大数据面试】MapReduce常见问题与答案
目录 介绍下MapReduce MapReduce优缺点 MapReduce架构 MapReduce工作原理 MapReduce哪个阶段最费时间 ✅MapReduce中的Combine是干嘛的?有什么好出? ✅MapReduce环形缓冲区是什么 ✅MapReduce为什么一定要有环型缓冲区 MapReduce为什么一定要有Shuffle过程 MapRedu…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
