# Supergate：面向大语言模型提供商的生产级多租户API网关

> Supergate是一个统一的多租户API网关，为OpenAI、Anthropic、Google等LLM提供商提供单一稳定的API接口，具备语义缓存、速率限制、成本归因等企业级功能。

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-06-01T15:06:12.000Z
- 最近活动: 2026-06-01T15:22:11.295Z
- 热度: 159.7
- 关键词: LLM网关, API管理, 多租户, 语义缓存, OpenAI, Fastify, PostgreSQL, TypeScript
- 页面链接: https://www.zingnex.cn/forum/thread/supergate-api
- Canonical: https://www.zingnex.cn/forum/thread/supergate-api
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者**: shivanshshekhar11
- **来源平台**: GitHub
- **原始标题**: supergate
- **原始链接**: https://github.com/shivanshshekhar11/supergate
- **发布时间**: 2026年6月

---

## 背景与问题

随着大语言模型（LLM）在企业中的应用日益广泛，开发团队面临一个共同挑战：如何统一管理多个LLM提供商的API访问。不同的提供商有不同的API格式、认证方式和计费模型，这给生产系统的运维带来了复杂性。

Supergate应运而生，它位于OpenAI、Anthropic、Google、Cohere和Mistral等提供商之前，为团队提供一个稳定的统一API，并具备生产系统所需的运营功能。

---

## 核心功能特性

Supergate提供了一系列企业级功能，解决了LLM集成的常见痛点：

### 统一API接口

无论底层使用哪个提供商，Supergate都提供OpenAI兼容的端点。这意味着开发者只需学习一种API格式，即可在后台灵活切换或组合多个LLM提供商。

### 多租户架构

通过PostgreSQL的行级安全（RLS）实现租户隔离。每个租户拥有独立的API密钥、基于角色的访问控制（RBAC）和使用数据。这种设计既支持初创公司的简单场景，也能满足大型企业的合规要求。

### 混合密钥管理

支持两种密钥模式：
- **网关托管密钥**：简化入门流程，适合快速启动
- **租户自带密钥（BYOK）**：满足企业合规需求，租户自行管理提供商API密钥

BYOK密钥使用AES-256-GCM加密存储，确保安全性。

### 语义缓存

基于pgvector的余弦相似度缓存是Supergate的一大亮点。当收到相似提示词时，系统直接从缓存返回结果，无需调用底层LLM。这带来了两个显著优势：
- **降低延迟**：缓存响应几乎是即时的
- **节省成本**：避免重复调用产生的token费用

### 速率限制

使用Redis支持的滑动窗口算法，按租户实施每分钟请求数（RPM）和每分钟token数（TPM）限制。原子操作确保在高并发场景下也不会出现竞态条件。

### 成本归因与可观测性

系统跟踪每个租户的token使用量，并计算美元成本归因。同时提供结构化日志、断路器状态、缓存命中率等指标，以及Swagger UI进行API探索。

### PII脱敏

在存储请求数据前，使用正则表达式对敏感信息进行脱敏处理，帮助满足数据隐私合规要求。

---

## 技术架构

### 项目结构

Supergate采用Turborepo单体仓库结构：

```
supergate/
├── apps/
│   ├── gateway/          # Fastify API (端口3000)
│   ├── dashboard/        # Next.js 15管理面板 (端口3001)
│   └── docs/             # Fumadocs文档站点 (端口3002)
├── packages/
│   ├── schemas/          # 共享Zod模式定义
│   └── sdk/              # @supergate/sdk TypeScript SDK
├── nginx/                # nginx反向代理配置
└── docker-compose.yml    # 本地开发基础设施
```

### 请求处理流程

每个请求按顺序流经中间件管道：

```
请求 → 认证 → 速率限制 → PII脱敏 → 语义缓存 → 提供商 → 使用日志
```

认证中间件支持两种令牌类型：
- 网关API密钥（`gw_...`前缀）：用于程序化访问
- 仪表板JWT（三段式）：用于Web界面

系统通过令牌格式自动检测类型，无需额外配置。

### 关键技术决策

| 决策 | 原因 |
|-----|------|
| 共享Zod模式 | 单一定义 → 验证 + OpenAPI文档 + 仪表板类型，实现端到端类型安全 |
| PostgreSQL RLS | 数据库级租户隔离，即使ORM存在bug也能保证安全 |
| Redis Lua原子速率限制 | 避免并发请求间的竞态条件 |
| pgvector HNSW语义缓存 | 使用自适应余弦阈值，为近似重复提示词提供缓存服务 |
| SSE流式透传 | 网关对任何OpenAI兼容客户端透明 |
| 按提供商的断路器 | 自修复机制，三态设计（CLOSED/OPEN/HALF_OPEN） |

---

## API端点概览

Supergate提供丰富的API端点，覆盖聊天、使用分析、密钥管理、缓存分析等功能：

### 聊天接口
- `POST /v1/chat/completions`：OpenAI兼容的聊天完成接口，支持流式和非流式响应

### 使用分析
- `GET /v1/usage`：聚合摘要（日/周/月周期）
- `GET /v1/usage/breakdown`：按模型和提供商的使用细分
- `GET /v1/usage/chart`：预分桶的图表数据（24小时/7天/30天）
- `GET /v1/usage/logs`：带过滤的分页请求日志

### 密钥管理
- `POST /v1/keys`：创建网关API密钥（管理员）
- `GET /v1/keys`：列出密钥（仅前缀和元数据）
- `DELETE /v1/keys/:id`：撤销密钥

### BYOK管理
- `POST /v1/tenant/keys`：存储提供商密钥（AES-256-GCM加密）
- `GET /v1/tenant/keys`：列出BYOK密钥（脱敏显示）
- `PUT /v1/tenant/keys/:provider`：轮换密钥
- `DELETE /v1/tenant/keys/:provider`：删除密钥

### 缓存分析
- `GET /v1/cache/stats`：缓存命中率、成本节省、热门模型
- `GET /v1/cache/timeseries`：每日缓存性能时序数据

### 认证
- `POST /v1/auth/register`：创建用户和租户
- `POST /v1/auth/login`：验证凭证并返回JWT
- `GET /v1/auth/me`：当前用户信息

---

## SDK与集成

Supergate提供官方TypeScript SDK，简化客户端集成：

```typescript
import { SupergateClient } from '@supergate/sdk'

const client = new SupergateClient({
  apiKey: 'gw_your_key',
  baseUrl: 'https://your-gateway.com',
})

// 聊天
const res = await client.chat.completions.create({
  model: 'gpt-4o-mini',
  messages: [{ role: 'user', content: 'Hello' }],
})

// 使用分析
const summary = await client.usage.getSummary({ period: 'weekly' })

// 密钥管理
const key = await client.keys.create({ name: 'ci', role: 'user' })
```

---

## 管理仪表板

基于Next.js 15的管理仪表板提供直观的Web界面：

| 页面 | 路径 | 访问权限 |
|-----|------|---------|
| 概览 | `/` | 所有角色 |
| 使用日志 | `/usage` | 所有角色 |
| API密钥 | `/api-keys` | 管理员：完整权限，成员：查看 |
| LLM密钥（BYOK） | `/keys` | 管理员：完整权限，成员：查看 |
| 游乐场 | `/playground` | 所有角色 |
| 设置 | `/settings` | 所有角色 |

---

## 部署与运维

Supergate支持多种部署方式：

### 本地开发
使用Docker Compose一键启动完整开发环境：
```bash
pnpm install
docker compose up -d
pnpm db:migrate
pnpm dev
```

### 生产部署
提供`deploy.sh`脚本支持DigitalOcean Droplet一键部署。完整的生产栈包含7个容器：网关、仪表板、文档、PostgreSQL、Redis、nginx。

---

## 应用场景

Supergate特别适合以下场景：

1. **多提供商策略**：需要在OpenAI、Anthropic等提供商间灵活切换的企业
2. **成本优化**：通过语义缓存和精细的速率限制控制LLM支出
3. **多团队管理**：为不同团队提供隔离的环境和独立的成本追踪
4. **合规要求**：支持BYOK和数据脱敏，满足企业安全合规需求

---

## 总结

Supergate是一个设计精良、功能完备的LLM API网关。它解决了生产环境中管理多个LLM提供商的核心挑战，通过统一接口、多租户隔离、智能缓存和全面的可观测性，为企业LLM应用提供了坚实的基础设施支撑。
