惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
G
Google Developers Blog
罗磊的独立博客
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
A
About on SuperTechFans
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
The Register - Security
The Register - Security
U
Unit 42
D
Docker
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
博客园_首页
Google DeepMind News
Google DeepMind News

PaulGuo

DeepSeek研究路线和原理分析 诸行无常:迈向醒觉之路 技术规划的逻辑 前端感官性能的衡量和优化实践 美团点评酒旅前端的技术体系 NodeJS服务监控报警系统的核心实现和开源共建 美团酒店Node全栈开发实践 深入了解MongoDB连接池 Node Cluster 笔记
ChatGPT Plugin开发记录
2023-06-25 · via PaulGuo

Open AI announced ChatGPT plugins on March 23rd, 2023. ChatGPT插件的推出,是LLM在应用领域的里程碑,更有人将其比作AI领域的AppStore Moment。曾经在5月12日就拿到了ChatGPT Plugins的开发者权限,但不幸的是由于Depay的问题,5月27日账号被BAN,ChatGPT的插件开发者权限,以及GPT-4 API的调用权限全都被付之一炬,也是变相感受了一次“科技封锁”。

不过幸运的是,5月27日重新申请新的账号后,6月16日插件开发者权限重新申请成功,6月18日趁热打铁,完成第一个插件(Mifuzi Domain AI)的开发和提审,5月19日插件审核通过,正式上架ChatGPT Plugin Store。这个插件能够帮助创业者、产品经理、或者任意有想法的人,基于自己的idea和创意,自动生成相应的域名建议,并查询对应的域名注册状态,此外还可以查询详细的域名注册WHOIS信息。

看到目前关于ChatGPT插件开发的介绍还比较少,觉得有必要记录下大致的过程。首先让我们通过一张流程图来描述下ChatGPT Plugin的工作流程和一些相关细节,ChatGPT Plugin在整体的过程中充当了类似Middleware的职责:

如果你有全栈开发的基础或经验,ChatGPT插件的开发其实会非常简单。插件部署后需要提供几个关键的描述文件,ai-plugins.json是插件的描述文件,需要存储在插件域名的.well-known目录下。其中分别描述了给人(for Human)和给模型(for Model)理解的插件名称和插件介绍,也声明了openapi.yaml的访问路径、Logo地址、Legal Info等信息。

{
    "schema_version": "v1",
    "name_for_human": "TODO List",
    "name_for_model": "todo",
    "description_for_human": "Manage your TODO list. You can add, remove and view your TODOs.",
    "description_for_model": "Help the user with managing a TODO list. You can add, remove and view your TODOs.",
    "auth": {
        "type": "none"
    },
    "api": {
        "type": "openapi",
        "url": "http://localhost:3333/openapi.yaml"
    },
    "logo_url": "http://localhost:3333/logo.png",
    "contact_email": "[email protected]",
    "legal_info_url": "http://www.example.com/legal"
}

openapi.yaml则通过OpenAPI Specification,定义了插件对应的服务端接口的请求格式和响应格式。但值得一提且比较有趣的地方是,openapi.yaml文件中针对接口描述的summarydescription字段将起到类似Hidden Prompt的作用,ChatGPT将基于这些Hidden Prompt对用户的消息内容(User Prompt)进行处理,并将相关内容转换成插件接口所需的数据格式。

openapi: 3.0.1
info:
  title: TODO Plugin
  description: A plugin that allows the user to create and manage a TODO list using ChatGPT.
  version: 'v1'
servers:
  - url: http://localhost:3333
paths:
  /todos:
    get:
      operationId: getTodos
      summary: Get the list of todos
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getTodosResponse'
components:
  schemas:
    getTodosResponse:
      type: object
      properties:
        todos:
          type: array
          items:
            type: string
          description: The list of todos.

其实到此为止,ChatGPT Plugin的运行机制和核心细节已经介绍完了,剩下的都是具体实现细节。比如工程目录结构如下,ai-plugins.json必须放置于.well-known目录下,并且能够通过域名(如https://example.com/.well-known/ai-plugins.json)进行访问,服务必须支持HTTPS访问:

├── README.md
├── .well-known
│   └── ai-plugins.json
├── server.py
├── logo.png
├── openapi.yaml
└── legal

由于OpenAI支持localhost本地方式进行插件的开发和调试,并且ChatGPT设置中支持开启Plugin Devtools,因此整个插件的开发体验还是相当流畅的。当你完成插件开发后,还需要通过Ticket正式提交OpenAI审核。

审核顺利的话会非常快通过审核,注意插件的名称和描述内容中不能包含ChatGPTGPT等关键词,并且务必要提供可访问的Legal Info,我的插件从提审到通过基本上只用了十几个小时不到,审核通过后你会收到一封通知邮件。

Hey there,

We’re excited to share that your ChatGPT plugin has been approved.
Your plugin will be made available in the store today.
Please read this note in its entirety to avoid any future confusion.
...