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。项目包含三部分:
- 网站(
web/):GPTs 展示站点,线上演示 https://gpts.works - 索引系统(
index/):基于向量数据库的 GPTs 语义搜索引擎 - 浏览器插件(
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 浏览器插件的实战参考
坑与注意
- ⚠️ Azure OpenAI 依赖:index 服务依赖 Azure GPT-35-turbo-16k(不是 OpenAI 原生 API),需要自行准备 Azure 账号和 API 密钥。
- ⚠️ Zilliz Cloud 收费:向量数据库 Zilliz Cloud 有用量费用,学习测试注意额度。
- ⚠️ GPTs 数据需自行导入:README 没有提供数据导入脚本,需要手动往 Postgres 插 GPTs 数据,或从 GPTs Hunter 获取。
- ⚠️ 环境变量多:web + index + extension 各自需要独立的
.env配置,相互依赖关系复杂。 pnpm优先:web 和 extension 用pnpm,不是 npm 或 yarn。- 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