← 返回信息流
GitHub 热榜GitHub Trending · 日·1 小时前

Grok2API —— 多账号API网关,整合Grok Build、Web与Console

原标题:chenyme/grok2api
Go5,756 stars+179 今日

速览

通过抽象Grok Build、Grok Web与Grok Console三种接口,实现多账号轮询、负载均衡与请求转发,适用于需要频繁调用Grok的自动化任务或应用集成场景,降低单点故障风险。

AI 深度解读

这是什么

Grok2API 是一个纯 Go 语言实现的 Grok API 网关,由 GitHub 用户 chenyme 开发(主语言 Go,★5756)。它整合了 Grok Build(OAuth)、Grok Web(SSO)与 Grok Console(SSO)三种账号体系,将其组织为独立的账号池,对外提供与 OpenAI 及 Anthropic 兼容的接口。项目通过 Docker Compose 一键部署,包含管理后台(React)与 API 服务,支持多账号调度、媒体生成、代理池、安全加密等企业级能力。

解决的问题

  1. 原生 Grok 接口碎片化:Grok 官方通过不同平台(Build、Web、Console)提供访问,每个平台有不同的认证方式和接口限制,缺乏统一的 API 网关来聚合管理。
  2. 多账号管理与负载均衡困难:多个 Grok 账号的额度、并发、冷却和故障切换需要人工协调,Grok2API 提供了自动化的账号池管理和调度策略。
  3. 缺少标准兼容接口:现有 Grok 接口不直接兼容 OpenAI Chat Completion 或 Anthropic Messages 格式,开发者需要额外转换。Grok2API 提供了这两类标准接口,可直接复用现有 LLM 工具链。
  4. 运维与管理缺失:没有可视化的账号、密钥、用量和模型管理面板,Grok2API 内置了完整的 Admin Dashboard 和热加载设置。

核心功能

  • 三 Provider 独立路由:grok_build、grok_web、grok_console 各自拥有独立的账号池、额度上限和故障状态,请求根据模型和来源自动路由。
  • 多协议兼容:支持 OpenAI Responses API、Chat Completions API、Images API、Async Videos API,以及 Anthropic Messages API。
  • 多账号调度引擎:支持优先级排序、并发限制、额度门控、会话粘滞、冷却时间与故障切换机制。
  • 多方式账号接入:Device OAuth、OAuth JSON、SSO JSON、逐行 SSO Token 均可导入,支持按需续期(Build)或失效重新授权(Web/Console)。
  • 媒体能力:图片生成、图片编辑、视频生成,支持本地归档或返回 URL/Base64。
  • 基础设施:存储层支持 SQLite/PostgreSQL,缓存层支持 Memory/Redis,网络层支持 HTTP 与 SOCKS5 代理池。
  • 安全边界:凭据使用 AES-256-GCM 加密(由环境密钥保护),客户端密钥哈希存储,日志脱敏,SSRF 防护和传输上限控制。
  • 管理后台:Dashboard 概览、账号管理、模型管理、客户端密钥管理、请求审计、接口文档与热加载设置面板。

亮点 / 与同类相比

  • 纯 Go 实现,轻量与高性能:单一二进制,无额外运行时依赖;空载占用极低(同作者另一项目 DEEIX-Chat 仅 34MB),适合边缘或低资源部署。
  • 账号池深度管理:同类项目多侧重单一账号转发,Grok2API 将三种 Provider 各自建模,支持优先级、并发、额度、冷却、粘滞与故障切换,粒度远超简单轮询。
  • 标准接口兼容:同时兼容 OpenAI 和 Anthropic 格式,可无缝接入 LangChain、OpenAI SDK、Anthropic SDK 等生态工具。
  • 内置管理后台:无需额外搭建监控面板,开箱即提供账号、模型、密钥、用量审计的可视化管理,支持 API 文档展示。
  • 安全设计完善:凭据加密存储、SSRF 防护、传输上限、日志脱敏,避免常见网关项目的安全遗漏。
  • 可热加载配置:大多数设置(Provider、并发、路由、审计、代理等)均可通过管理端修改,无需重启或编辑数据库。
  • 多实例支持:通过 PostgreSQL + Redis 组合,支持多实例部署,Redis 承担分布式锁、限流、粘滞路由和额度恢复等协调工作。

适合谁用 / 上手

适合人群

  • 需要将 Grok 能力封装为 OpenAI/Anthropic 兼容接口的开发团队。
  • 管理多个 Grok 账号,期望自动化调度、额度监控和故障转移的运维人员。
  • 希望集成 Grok 的图片/视频生成能力,但不愿处理复杂认证与多平台对接的 AI 应用开发者。
  • 需要白标 API 网关,且希望拥有完整管理后台的个人或中小企业。

上手步骤

  1. 克隆仓库,复制 config.example.yamlconfig.yaml
  2. 生成并填入 jwtSecret(hex 随机值)、credentialEncryptionKey(Base64 随机密钥)和 bootstrapAdmin 密码。
  3. 执行 docker compose pull && docker compose up -d,访问 http://127.0.0.1:8000
  4. 使用引导管理员登录,在“上游账号”中添加 Grok Build/Web/Console 账号。
  5. 等待额度与模型同步完成,在“模型管理”确认对外名称和启用状态。
  6. 创建 g2a_ 开头客户端密钥,即可通过 /v1/* 接口调用。

生产建议:启用 HTTPS、关闭 Swagger、使用 PostgreSQL + Redis、多实例部署时共享媒体目录、定期备份配置文件和数据库。首次登录后务必修改管理员密码并从 config 中删除 bootstrapAdmin 段。

查看原文 →github.com