all-in-aigc/gpts-works · 上手攻略

  • 仓库:all-in-aigc/gpts-works
  • 链接:https://github.com/all-in-aigc/gpts-works
  • 分类:ai-platform
  • 作者:Tom
  • 更新:2026-08-22

是什么

GPTs Works 是一个第三方 GPTs 商店,帮助用户发现、搜索和分享 ChatGPT 自定义 GPT。项目包含三部分:

  1. 网站web/):GPTs 展示站点,线上演示 https://gpts.works
  2. 索引系统index/):基于向量数据库的 GPTs 语义搜索引擎
  3. 浏览器插件extension/):在 ChatGPT 探索页面侧边栏显示第三方 GPTs

解决什么问题

OpenAI GPT Store 里找 GPT 靠官方推荐和搜索,缺乏社区驱动的第三方 GPTs 发现渠道。GPTs Works 用向量检索解决"我的需求有哪些 GPTs 能满足"的发现问题,配合浏览器插件让用户在各页面直接看到可用 GPTs。

快速安装

git clone https://github.com/all-in-aigc/gpts-works.git
cd gpts-works

# 1. 创建 Vercel Postgres 数据库(https://vercel.com/docs/storage/vercel-postgres)
# 2. 在数据库执行建表 SQL(见下)

# web 部分
cd web
pnpm install
# 创建 .env
cat >> .env << 'EOF'
POSTGRES_URL="postgres://default:xxx@xxx.postgres.vercel-storage.com/verceldb"
INDEX_API_BASE_URI="http://127.0.0.1:8068"
INDEX_API_KEY="gsk-xxx"
EOF
make dev
# 访问 http://localhost:8067

# index 部分
cd ../index
pip install -r requirements.txt
# 创建 .env
cat >> .env << 'EOF'
DATABASE_URL=postgres://default:xxx@xxx.postgres.vercel-storage.com:5432/verceldb
AZURE_API_KEY=xxx
AZURE_API_BASE=https://xxx.openai.azure.com/
AZURE_API_VERSION=2023-07-01-preview
AZURE_LLM_MODEL=gpt-35-turbo-16k
AZURE_EMBED_MODEL=text-embedding-ada-002
STORE_TYPE=zilliz
STORE_URI=https://xxx.zillizcloud.com
STORE_TOKEN=xxx
STORE_DIM=1536
STORE_COLLECTION=gpts
INDEX_API_KEY=gsk-xxx
EOF
make dev

# 构建索引
curl -X POST -H "Authorization: Bearer gsk-xxx" http://127.0.0.1:8068/gpts/index

# 搜索测试
curl -X POST -H "Authorization: Bearer gsk-xxx" -H "Content-Type: application/json" \
  -d '{"question": "What GPTs are used for coding?"}' \
  http://127.0.0.1:8068/gpts/index

# extension 部分
cd ../extension
pnpm install
make dev
# Chrome: chrome://extensions/ → 加载解压的扩展程序

建表 SQL(Postgres)

CREATE TABLE gpts (
  id SERIAL PRIMARY KEY,
  uuid VARCHAR(255) UNIQUE NOT NULL,
  org_id VARCHAR(255),
  name VARCHAR(255),
  description TEXT,
  avatar_url TEXT,
  short_url VARCHAR(255),
  author_id VARCHAR(255),
  author_name VARCHAR(255),
  created_at timestamptz,
  updated_at timestamptz,
  detail JSON,
  index_updated_at INT NOT NULL DEFAULT 0
);

核心架构

GPTs Works
├── web/        — Next.js 网站,端口 8067
├── index/      — FastAPI 索引服务,端口 8068
│                 ├── Zilliz Cloud 向量存储/检索
│                 ├── Azure OpenAI embedding
│                 └── Vercel Postgres 元数据
└── extension/  — Plasmo 浏览器插件

检索流程:用户查询 → FastAPI → Azure embedding → Zilliz 向量检索 → 返回 GPTs 列表。

典型适用场景

  • 搭建自己的 GPTs 商店:部署一套私有 GPTs 搜索引擎
  • 社区 GPTs 导航站:聚合第三方 GPTs 做垂直导航
  • 向量检索练手:学习 FastAPI + Zilliz + Azure OpenAI 的组合用法
  • 插件开发参考:Plasmo 框架开发 ChatGPT 浏览器插件的实战参考

坑与注意

  1. ⚠️ Azure OpenAI 依赖:index 服务依赖 Azure GPT-35-turbo-16k(不是 OpenAI 原生 API),需要自行准备 Azure 账号和 API 密钥。
  2. ⚠️ Zilliz Cloud 收费:向量数据库 Zilliz Cloud 有用量费用,学习测试注意额度。
  3. ⚠️ GPTs 数据需自行导入:README 没有提供数据导入脚本,需要手动往 Postgres 插 GPTs 数据,或从 GPTs Hunter 获取。
  4. ⚠️ 环境变量多:web + index + extension 各自需要独立的 .env 配置,相互依赖关系复杂。
  5. pnpm 优先:web 和 extension 用 pnpm,不是 npm 或 yarn。
  6. index 服务跨域:web 访问 INDEX_API_BASE_URI=http://127.0.0.1:8068,本地开发需注意 CORS 配置。

技术栈

部分 技术
网站 Next.js(⚠️ 具体版本未标注)
索引 API FastAPI
向量数据库 Zilliz Cloud
嵌入模型 Azure text-embedding-ada-002(⚠️ ada-002 即将废弃,2026 年 8 月)
数据库 Vercel Postgres
浏览器插件 Plasmo
部署 Vercel

与同类对比

项目 定位 检索方式
GPTs Works 第三方 GPTs 商店 Zilliz 向量 + 语义搜索
GPTs Hunter GPTs 数据聚合 爬虫 + 分类
OpenGPTs (OpenGPTs) 自托管 ChatGPT 替代 本地向量库

GPTs Works 的差异化在于完整的端到端方案(前端 + 索引 + 插件),不是单一组件。

一句话推荐结论

三方 GPTs 商店的完整参考实现,Next.js + FastAPI + Zilliz 全家桶,但生产部署需自备 Azure 和 Zilliz 账号,适合学习向量检索全链路。

来源

  • GitHub README:https://github.com/all-in-aigc/gpts-works
  • 在线演示:https://gpts.works
  • GPTs Hunter 数据源:https://www.gptshunter.com