Grok2API Merged Edition

March 31, 2026 · View on GitHub

Cloudflare Workers 一键部署 + D1/KV 自动绑定 + IP 地址池代理管理


📋 项目简介

Grok2API Merged 是基于 grok2api 主干,合并了 grok2api-proIP 代理池管理 功能后的增强版本。

提供 OpenAI 兼容 API,将 Grok (xAI) 的接口转换为标准的 /v1/chat/completions/v1/models/v1/images/generations 等端点,可直接对接任意 OpenAI SDK。


🏗️ 架构总览

┌─────────────────────────────────────────────────┐
│           Cloudflare Workers (Edge)              │
│  ┌───────────┐  ┌──────────┐  ┌──────────────┐  │
│  │  Hono 路由  │  │ 代理池管理 │  │ Token 调度器  │  │
│  └─────┬─────┘  └────┬─────┘  └──────┬───────┘  │
│        │              │               │          │
│  ┌─────▼──────────────▼───────────────▼───────┐  │
│  │         Grok API 适配层 (conversation)       │  │
│  └─────────────────┬───────────────────────────┘  │
│                    │                              │
│  ┌─────────┐  ┌────▼─────┐  ┌──────────────┐    │
│  │ D1 数据库 │  │ KV 缓存   │  │ 代理池状态存储 │    │
│  └─────────┘  └──────────┘  └──────────────┘    │
└─────────────────────────────────────────────────┘


              ┌───────────────┐
              │   Grok.com    │
              │  (通过代理/直连) │
              └───────────────┘

✨ 核心功能

基础功能 (来自 grok2api)

  • ✅ OpenAI 兼容 API (/v1/chat/completions, /v1/models, /v1/images/generations)
  • ✅ 流式 / 非流式响应
  • ✅ 图片生成 / 编辑 (legacy + experimental WebSocket 模式)
  • ✅ 视频生成
  • ✅ 多 Token 负载均衡 (sso / ssoSuper)
  • ✅ API Key 管理 + 每日配额
  • ✅ 管理后台 UI
  • ✅ Cloudflare Workers 一键部署
  • ✅ D1 数据库 + KV 缓存

新增功能 (来自 grok2api-pro → 代理池)

  • 🆕 IP 地址池代理管理 - 添加/删除/测试代理
  • 🆕 SSO 绑定 - 每个 Token 固定使用某个代理 (粘性会话)
  • 🆕 健康检查 / 失败熔断 - 连续 3 次失败自动摘除
  • 🆕 Round-Robin 调度 - 自动轮询分配代理
  • 🆕 D1 + KV 双持久化 - 数据不丢失
  • 🆕 代理池管理 API - 7 个管理端点
  • 🆕 启动引导 - 环境变量自动填充代理

📁 项目结构

grok2api-merged/
├── src/                          # TypeScript 源码 (Cloudflare Workers)
│   ├── index.ts                  # Worker 入口 + 路由注册
│   ├── env.ts                    # 环境变量类型定义
│   ├── db.ts                     # D1 数据库工具
│   ├── auth.ts                   # 认证中间件
│   ├── settings.ts               # 配置管理 (D1 读写)
│   ├── proxy/                    # 🆕 代理池模块
│   │   └── pool.ts               # 🆕 代理池核心 (381行)
│   ├── grok/                     # Grok API 适配
│   │   ├── conversation.ts       # 请求构建 + 代理路由
│   │   ├── processor.ts          # 响应处理 (NDJSON→SSE)
│   │   ├── headers.ts            # 动态请求头
│   │   ├── models.ts             # 模型目录 (15个模型)
│   │   ├── rateLimits.ts         # 额度检查
│   │   ├── upload.ts             # 图片上传
│   │   ├── create.ts             # 视频 Post 创建
│   │   └── imagineExperimental.ts # WebSocket 图片生成
│   ├── routes/                   # API 路由
│   │   ├── openai.ts             # OpenAI 兼容端点
│   │   ├── media.ts              # 媒体代理
│   │   └── admin.ts              # 管理 API (含代理池管理)
│   ├── repo/                     # 数据访问层
│   │   ├── tokens.ts             # Token CRUD
│   │   ├── apiKeys.ts            # API Key CRUD
│   │   ├── apiKeyUsage.ts        # 每日配额
│   │   ├── adminSessions.ts      # 管理会话
│   │   ├── cache.ts              # KV 缓存元数据
│   │   ├── logs.ts               # 请求日志
│   │   └── refreshProgress.ts    # 刷新进度
│   ├── kv/                       # KV 清理
│   │   └── cleanup.ts
│   └── utils/                    # 工具函数
│       ├── base64.ts
│       ├── crypto.ts
│       └── time.ts
├── app/                          # Python 版本 (FastAPI,备用)
│   ├── api/
│   ├── core/
│   └── static/                   # 管理后台 UI 静态资源
├── migrations/                   # D1 数据库迁移
│   ├── 0001_init.sql             # 初始表结构
│   ├── 0002_r2_cache.sql
│   ├── 0003_kv_cache.sql
│   ├── 0004_settings_sections.sql
│   ├── 0005_api_key_quotas.sql
│   └── 0006_proxy_pool.sql       # 🆕 代理池表
├── wrangler.toml                 # Workers 配置
├── package.json                  # Node.js 依赖
├── tsconfig.json                 # TypeScript 配置
├── config.defaults.toml          # 默认配置
└── pyproject.toml                # Python 依赖 (备用)

🔧 环境变量

wrangler.toml 配置

变量说明默认值
CACHE_RESET_TZ_OFFSET_MINUTES时区偏移 (分钟)480 (UTC+8)
KV_CACHE_MAX_BYTESKV 值最大字节数26214400 (25MB)
KV_CLEANUP_BATCH每日清理批次大小200
PROXY_URLS🆕 代理 URL 列表 (逗号分隔)""
PROXY_POOL_URL🆕 外部代理池 API 地址""
PROXY_POOL_INTERVAL🆕 代理池刷新间隔 (秒)300

D1 数据库表

表名用途
settings全局配置 (JSON)
tokensSSO Token 管理
api_keysAPI Key 管理
api_key_usage_daily每日配额统计
admin_sessions管理员会话
request_logs请求日志
token_refresh_progressToken 刷新进度
kv_cacheKV 缓存元数据
proxy_pool🆕 代理池
proxy_sso_bindings🆕 SSO-代理绑定

🚀 快速部署

前置条件

一键部署步骤

# 1. 进入项目目录
cd grok2api-merged

# 2. 安装依赖
npm install

# 3. 登录 Cloudflare
wrangler login

# 4. 创建 D1 数据库
wrangler d1 create grok2api
# 记下返回的 database_id

# 5. 创建 KV 命名空间
wrangler kv:namespace create KV_CACHE
# 记下返回的 id

# 6. 编辑 wrangler.toml,填入 database_id 和 KV id
# database_id = "你的D1数据库ID"
# id = "你的KV命名空间ID"

# 7. 执行数据库迁移 (包含代理池表)
wrangler d1 migrations apply DB --remote

# 8. 部署
wrangler deploy

部署完成后会得到一个 *.workers.dev 域名,访问 /login 进入管理后台。


🔌 API 端点

OpenAI 兼容端点

端点方法说明
/v1/modelsGET列出所有可用模型
/v1/models/{model_id}GET获取模型详情
/v1/chat/completionsPOST聊天补全 (支持流式)
/v1/images/generationsPOST图片生成
/v1/images/editsPOST图片编辑
/v1/images/methodGET获取图片生成方法

管理端点

端点方法说明
/api/loginPOST管理员登录
/api/settingsGET/POST配置读写
/api/tokensGETToken 列表
/api/tokens/addPOST添加 Token
/api/tokens/deletePOST删除 Token
/api/tokens/testPOST测试 Token
/api/tokens/refresh-allPOST刷新所有 Token
/api/statsGET统计数据
/api/logsGET请求日志
/api/v1/admin/keysGET/POSTAPI Key 管理
/api/v1/admin/configGET/POST高级配置

🆕 代理池管理端点

端点方法说明
/api/v1/admin/proxiesGET获取代理池列表
/api/v1/admin/proxiesPOST添加代理 (单个/批量)
/api/v1/admin/proxiesDELETE删除代理
/api/v1/admin/proxies/assignPOST绑定 SSO 到代理
/api/v1/admin/proxies/unassignPOST解绑 SSO
/api/v1/admin/proxies/health/resetPOST重置代理健康状态
/api/v1/admin/proxies/testPOST测试代理可用性
/api/v1/admin/proxies/clearPOST清空代理池

🤖 可用模型

模型 ID类型说明
grok-3文本Grok 3 基础模型
grok-3-mini文本Grok 3 Mini
grok-3-thinking文本Grok 3 思维链
grok-4文本Grok 4 基础模型
grok-4-mini文本Grok 4 Mini
grok-4-thinking文本Grok 4 思维链
grok-4-heavy文本Grok 4 Heavy (需 Super Token)
grok-4.1-mini文本Grok 4.1 Mini
grok-4.1-fast文本Grok 4.1 Fast
grok-4.1-expert文本Grok 4.1 Expert
grok-4.1-thinking文本Grok 4.1 思维链
grok-4.20-beta文本Grok 4.20 Beta
grok-imagine-1.0图片图片生成
grok-imagine-1.0-edit图片图片编辑
grok-imagine-1.0-video视频视频生成

📜 协议说明

本项目采用 MIT License 开源协议。

来源声明

免责声明

  1. 本项目仅供学习和个人使用
  2. 使用本项目即代表你同意自行承担一切风险
  3. 请遵守 Grok/xAI 的服务条款
  4. 不得用于任何违法违规用途
  5. 作者不对任何滥用行为负责

第三方依赖


🔗 相关链接