Skip to content

基于 FastAPI 重构的 Grok2API,适配最新的Web调用格式,支持流式对话、图像生成、图像编辑、联网搜索、视频生成、深度思考,支持号池并发调用和自动负载均衡。

License

Notifications You must be signed in to change notification settings

Tomiya233/grok2api

 
 

Repository files navigation

Grok2API

基于 FastAPI 重构的 Grok2API,全面适配最新 Web 调用格式,支持流式对话、图像生成、图像编辑、联网搜索、深度思考,号池并发与自动负载均衡一体化。

🆕 Fork 增强功能

本 Fork 在原版基础上新增以下功能:

  • 多 Key 管理与持久化:支持管理员批量创建、备注、删除 API Key,支持多选批量操作。所有密钥均实现持久化存储,重启不丢失。
  • 日志审计支持:实时记录请求细节,且日志数据支持文件持久化存储。
  • 并发性能优化 (Critical):重构了底层的 Grok 请求和响应处理逻辑。采用全异步流式迭代 (aiter_lines),彻底解决了在消息生成过程中后台管理面板“卡死”或响应缓慢的问题。
  • Token 智能冷却:请求失败后自动冷却,避免连续使用故障 Token
    • 普通错误:冷却 5 次请求
    • 429 限流 + 有额度:冷却 1 小时
    • 429 限流 + 无额度:冷却 10 小时
  • 一键刷新所有 Token:后台按钮批量刷新剩余次数,带实时进度显示
  • 并发保护:刷新任务进行中自动拒绝重复请求
  • 请求统计与持久化:按小时/天统计请求趋势,包含成功率和模型分布图表,统计数据支持持久化。
  • 缓存预览:后台添加缓存预览板块,可查看缓存的图片/视频

使用说明

调用次数与配额

  • 普通账号(Basic):免费使用 80 次 / 20 小时
  • Super 账号:配额待定(作者未测)
  • 系统自动负载均衡各账号调用次数,可在管理页面实时查看用量与状态

图像生成功能

  • 在对话内容中输入如“给我画一个月亮”自动触发图片生成
  • 每次以 Markdown 格式返回两张图片,共消耗 4 次额度
  • 注意:Grok 的图片直链受 403 限制,系统自动缓存图片到本地。必须正确设置 Base Url 以确保图片能正常显示!

视频生成功能

  • 选择 grok-imagine-0.9 模型,传入图片和提示词即可(方式和 OpenAI 的图片分析调用格式一致)
  • 返回格式为 <video src="{full_video_url}" controls="controls"></video>
  • 注意:Grok 的视频直链受 403 限制,系统自动缓存图片到本地。必须正确设置 Base Url 以确保视频能正常显示!
curl https://你的服务器地址/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $GROK2API_API_KEY" \
  -d '{
    "model": "grok-imagine-0.9",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "让太阳升起来"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://your-image.jpg"
            }
          }
        ]
      }
    ]
  }'

关于 x_statsig_id

  • x_statsig_id 是 Grok 用于反机器人的 Token,有逆向资料可参考
  • 建议新手勿修改配置,保留默认值即可
  • 尝试用 Camoufox 绕过 403 自动获 id,但 grok 现已限制非登陆的x_statsig_id,故弃用,采用固定值以兼容所有请求

如何部署

方式一:Docker Compose(推荐)

由于本项目包含修改,建议直接构建运行:

  1. 克隆本仓库
git clone https://github.com/Tomiya233/grok2api.git
cd grok2api
  1. 启动服务
docker-compose up -d --build

docker-compose.yml 参考:

services:
  grok2api:
    build: .
    image: grok2api:latest
    container_name: grok2api
    restart: always
    ports:
      - "8000:8000"
    volumes:
      - grok_data:/app/data
      - ./logs:/app/logs
    environment:
      - LOG_LEVEL=INFO
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

volumes:
  grok_data:

方式二:Python 直接运行

前置要求:Python 3.10+,建议使用 uv 包管理器

  1. 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 运行服务
# 安装依赖并运行
uv sync
uv run python main.py

服务默认运行在 http://127.0.0.1:8000

环境变量说明

环境变量 必填 说明 示例
STORAGE_MODE 存储模式:file/mysql/redis file
DATABASE_URL 数据库连接URL(MySQL/Redis模式时必需) mysql://user:pass@host:3306/db

存储模式:

  • file: 本地文件存储(默认)
  • mysql: MySQL数据库存储,需设置DATABASE_URL
  • redis: Redis缓存存储,需设置DATABASE_URL

接口说明

与 OpenAI 官方接口完全兼容,API 请求需通过 Authorization header 认证

方法 端点 描述 是否需要认证
POST /v1/chat/completions 创建聊天对话(流式/非流式)
GET /v1/models 获取全部支持模型
GET /images/{img_path} 获取生成图片文件

管理与统计接口(展开查看更多)
方法 端点 描述 认证
GET /login 管理员登录页面
GET /manage 管理控制台页面
POST /api/login 管理员登录认证
POST /api/logout 管理员登出
GET /api/tokens 获取 Token 列表
POST /api/tokens/add 批量添加 Token
POST /api/tokens/delete 批量删除 Token
GET /api/settings 获取系统配置
POST /api/settings 更新系统配置
GET /api/cache/size 获取缓存大小
POST /api/cache/clear 清理所有缓存
POST /api/cache/clear/images 清理图片缓存
POST /api/cache/clear/videos 清理视频缓存
GET /api/stats 获取统计信息
POST /api/tokens/tags 更新 Token 标签
POST /api/tokens/note 更新 Token 备注
POST /api/tokens/test 测试 Token 可用性
GET /api/tokens/tags/all 获取所有标签列表
GET /api/storage/mode 获取存储模式信息
POST /api/tokens/refresh-all 一键刷新所有Token
GET /api/tokens/refresh-progress 获取刷新进度
GET /api/keys 获取 API Key 列表
POST /api/keys/add 创建新 API Key
POST /api/keys/delete 删除 API Key
POST /api/keys/status 切换 Key 启用状态
POST /api/keys/name 修改 Key 备注名称
GET /api/logs 获取请求日志(1000条)
POST /api/logs/clear 清空所有审计日志

可用模型一览

模型名称 计次 账户类型 图像生成/编辑 深度思考 联网搜索 视频生成
grok-4 1 Basic/Super
grok-4.1-thinking 1 Basic/Super
grok-imagine-0.9 - Basic/Super
grok-4-fast 1 Basic/Super
grok-4-fast-expert 4 Basic/Super
grok-4-expert 4 Basic/Super
grok-4-heavy 1 Super
grok-3-fast 1 Basic/Super

配置参数说明

服务启动后,登录 /login 管理后台进行参数配置

参数名 作用域 必填 说明 默认值
admin_username global 管理后台登录用户名 "admin"
admin_password global 管理后台登录密码 "admin"
log_level global 日志级别:DEBUG/INFO/... "INFO"
image_mode global 图片返回模式:url/base64 "url"
image_cache_max_size_mb global 图片缓存最大容量(MB) 512
video_cache_max_size_mb global 视频缓存最大容量(MB) 1024
base_url global 服务基础URL/图片访问基准 ""
api_key grok API 密钥(可选加强安全) ""
proxy_url grok HTTP代理服务器地址 ""
stream_chunk_timeout grok 流式分块超时时间(秒) 120
stream_first_response_timeout grok 流式首次响应超时时间(秒) 30
stream_total_timeout grok 流式总超时时间(秒) 600
cf_clearance grok Cloudflare安全令牌 ""
x_statsig_id grok 反机器人唯一标识符 "ZTpUeXBlRXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgdW5kZWZpbmVkIChyZWFkaW5nICdjaGlsZE5vZGVzJyk="
filtered_tags grok 过滤响应标签(逗号分隔) "xaiartifact,xai:tool_usage_card,grok:render"
show_thinking grok 显示思考过程 true(显示)/false(隐藏) true
temporary grok 会话模式 true(临时)/false true

⚠️ 注意事项

本项目仅供学习与研究,请遵守相关使用条款!


本项目基于以下项目学习重构,特别感谢:LINUX DOVeroFess/grok2apixLmiler/grok2api_python

About

基于 FastAPI 重构的 Grok2API,适配最新的Web调用格式,支持流式对话、图像生成、图像编辑、联网搜索、视频生成、深度思考,支持号池并发调用和自动负载均衡。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 63.8%
  • HTML 33.6%
  • Shell 2.1%
  • Dockerfile 0.5%