3692 字
18 分钟

Grok2API 部署教程

Grok2API 部署教程#

作者:Chenyme 发布时间:2026 年 03 月 03 日 项目地址https://github.com/chenyme/grok2api

本项目仅供学习、研究和技术交流之用。请务必遵循 Grok 的 使用条款 以及 法律法规,不得用于非法用途,使用者须自行承担一切风险,本项目作者概不负责。

项目介绍#

基于 FastAPI 构建的 Grok2API,支持将 Grok.com 的 Web 端服务一键转换为 OpenAI API 兼容的调用格式。项目支持原生流式对话、非流式对话、图像生成、图像编辑、视频生成、工具调用、语音聊天、一键 NSFW、号池并发与自动负载均衡一体化,且提供后台管理、功能玩法等 WebUI,方便小白快速上手。

快速开始#

环境变量#

修改 .envdocker-compose.yml 文件生效

变量名说明默认值示例
LOG_LEVEL日志级别INFODEBUG
LOG_FILE_ENABLED启用日志文件truefalse
DATA_DIR数据存放路径./data/data
SERVER_HOST服务监听地址0.0.0.00.0.0.0
SERVER_PORT服务端口80008000
HOST_PORTDocker Compose 宿主机映射端口80009000
SERVER_WORKERSUvicorn worker 数量12
SERVER_STORAGE_TYPE存储类型,支持 local/redis/mysql/pgsqllocalpgsql
SERVER_STORAGE_URL存储连接串,存储类型为 local 时可为空""postgresql+asyncpg://user:password@host:5432/db

部署方式#

1. 本地部署(Local powershell)#

Terminal window
git clone https://github.com/chenyme/grok2api
uv sync
uv run granian --interface asgi main:app

2. Docker Compose(Docker powershell)#

Terminal window
git clone https://github.com/chenyme/grok2api
cd grok2api
docker compose up -d

docker-compose.yml 完整配置

services:
grok2api:
container_name: grok2api
image: ghcr.io/chenyme/grok2api:latest
ports:
- "${HOST_PORT:-8000}:${SERVER_PORT:-8000}"
environment:
TZ: Asia/Shanghai
LOG_LEVEL: ${LOG_LEVEL:-INFO}
SERVER_HOST: ${SERVER_HOST:-0.0.0.0}
SERVER_PORT: ${SERVER_PORT:-8000}
SERVER_WORKERS: ${SERVER_WORKERS:-1}
SERVER_STORAGE_TYPE: ${SERVER_STORAGE_TYPE:-local}
SERVER_STORAGE_URL: ${SERVER_STORAGE_URL:-}
# 启用 CF 自动刷新: 取消以下三行注释,并取消底部 flaresolverr 服务的注释
# FLARESOLVERR_URL: http://flaresolverr:8191
# CF_REFRESH_INTERVAL: "600"
# CF_TIMEOUT: "60"
# SERVER_STORAGE_TYPE: (local, redis, mysql, pgsql) default: local
# SERVER_STORAGE_URL: (local mode is empty) default: empty
# Redis: redis://localhost:6379/0 or redis://:password@localhost:6379/0
# MySQL: mysql+aiomysql://user:pass@localhost/db
# PgSQL: postgresql+asyncpg://user:pass@localhost/db
command:
- sh
- -c
- >
granian --interface asgi --host "$${SERVER_HOST:-0.0.0.0}"
--port "$${SERVER_PORT:-8000}" --workers "$${SERVER_WORKERS:-1}" main:app
volumes:
- ./data:/app/data
- ./logs:/app/logs
restart: unless-stopped
# 如果出口 IP 不干净,可取消以下注释使用 Warp 作为落地代理
# 启用后将 proxy.base_proxy_url 设为 socks5://warp:1080
# warp:
# container_name: warp
# image: caomingjun/warp:latest
# restart: unless-stopped
# ports:
# - "127.0.0.1:1080:1080"
# environment:
# - WARP_SLEEP=2
# cap_add:
# - NET_ADMIN
# 启用 CF 自动刷新时取消以下注释
# flaresolverr:
# container_name: flaresolverr
# image: ghcr.io/flaresolverr/flaresolverr:latest
# ports:
# - "127.0.0.1:8191:8191"
# environment:
# TZ: Asia/Shanghai
# LOG_LEVEL: info
# restart: unless-stopped

3. Vercel 部署#

  1. 设置存储路径:DATA_DIR=/tmp/data

  2. 关闭文件日志:LOG_FILE_ENABLED=false

  3. 推荐使用 MySQL / Redis / PostgreSQL,并配置:

    • SERVER_STORAGE_TYPE

    • SERVER_STORAGE_URL

4. Render 部署#

Render 免费实例 15 分钟无访问会自动休眠,且非持久化时重启 / 重新部署会丢失数据。 持久化请使用 MySQL / Redis / PostgreSQL,并配置:

  • SERVER_STORAGE_TYPE

  • SERVER_STORAGE_URL

使用教程#

基础信息#

  1. 访问地址

    • 管理后台:http://<host>:8000/admin

    • 功能玩法:http://<host>:8000/(管理后台开启后生效)

    • 默认密码:grok2api

  2. 账号配额 Grok 官方网页更新后并未真实暴露 rate-limits 接口,导致无法准确计算 Token 剩余,请耐心等待官方接口上线,目前自动刷新后会统一更新为剩余 8 次。

    • Basic 账号:80 次 / 20h

    • Super 账号:140 次 / 2h

模型支持#

模型名称调用计次可用账号对话功能图像功能视频功能
grok-31Basic/Super支持支持-
grok-3-mini1Basic/Super支持支持-
grok-3-thinking1Basic/Super支持支持-
grok-41Basic/Super支持支持-
grok-4-mini1Basic/Super支持支持-
grok-4-thinking1Basic/Super支持支持-
grok-4-heavy4Super支持支持-
grok-4.1-mini1Basic/Super支持支持-
grok-4.1-fast1Basic/Super支持支持-
grok-4.1-expert4Basic/Super支持支持-
grok-4.1-thinking4Basic/Super支持支持-
grok-4.20-beta1Basic/Super支持支持-
grok-imagine-1.0-Basic/Super-支持-
grok-imagine-1.0-fast-Basic/Super-支持-
grok-imagine-1.0-edit-Basic/Super-支持-
grok-imagine-1.0-video-Basic/Super--支持

接口信息#

1. POST /v1/chat/completions#

OpenAI Chat Completions API 通用接口,支持聊天对话、图像生成、图像编辑、视频生成。

调用示例(curl)

Terminal window
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GROK2API_API_KEY" \
-d '{
"model": "grok-4",
"messages": [{"role":"user","content":"你好"}]
}'

支持的请求参数

字段类型说明可用参数
modelstring模型名称见上方模型列表
messagesarray消息列表见下方消息格式
streamboolean是否开启流式输出true, false
reasoning_effortstring推理强度none, minimal, low, medium, high, xhigh
temperaturenumber采样温度0 ~ 2
top_pnumbernucleus 采样0 ~ 1
toolsarray工具定义OpenAI function tools
tool_choicestring/object工具选择auto, required, none 或指定工具
parallel_tool_callsboolean是否允许并行工具调用true, false
video_configobject视频模型专用配置对象支持:grok-imagine-1.0-video
└─aspect_ratiostring视频宽高比16:9, 9:16, 1:1, 2:3, 3:2, 1280x720, 720x1280, 1792x1024, 1024x1792, 1024x1024
└─video_lengthinteger视频时长 (秒)6, 10, 15
└─resolution_namestring分辨率480p, 720p
└─presetstring风格预设fun, normal, spicy, custom
image_configobject图片模型专用配置对象支持:grok-imagine-1.0 / grok-imagine-1.0-fast / grok-imagine-1.0-edit
└─ninteger生成数量1 ~ 10
└─sizestring图片尺寸1280x720, 720x1280, 1792x1024, 1024x1792, 1024x1024
└─response_formatstring响应格式url, b64_json, base64

消息格式 (messages)

字段类型说明
rolestring角色:developer, system, user, assistant
contentstring/array消息内容,支持纯文本或多模态数组

多模态内容块类型 (content array)

type说明示例
text文本内容{"type": "text", "text": "描述这张图片"}
image_url图片 URL{"type": "image_url", "image_url": {"url": "https://..."}}
input_audio音频{"type": "input_audio", "input_audio": {"data": "https://..."}}
file文件{"type": "file", "file": {"file_data": "https://..."}}

注意事项

  1. image_url/input_audio/file 仅支持 URL 或 Data URI(data:<mime>;base64,...),裸 base64 会报错。

  2. reasoning_effortnone 表示不输出思考,其他值都会输出思考内容。

  3. 工具调用为提示词模拟 + 客户端执行回填:模型通过 <tool_call>{...}</tool_call> 输出调用请求,服务端解析为 tool_calls;不执行工具。

  4. grok-imagine-1.0-fast 与瀑布流 imagine 生成链路一致,可直接通过 /v1/chat/completions 调用;其 n/size/response_format 由服务端 [imagine_fast] 统一控制。

  5. /v1/chat/completions 的流式输出仅返回最终成图,不返回中间预览图;流式 URL 出图会保持原始图片名(不追加 -final 后缀)。

  6. grok-imagine-1.0-edit 必须提供图片,多图默认取最后 3 张与最后一个文本。

  7. grok-imagine-1.0-video 支持文生视频与图生视频(通过 image_url 传参考图,仅取第 1 张)。

  8. 当图片疑似被审查拦截导致无最终图时,若开启 image.blocked_parallel_enabled,服务端会按 image.blocked_parallel_attempts 自动并行补偿生成,并优先使用不同 token;若仍无满足 image.final_min_bytes 的最终图则返回失败。

  9. 除上述外的其他参数将自动丢弃并忽略。

2. POST /v1/responses#

OpenAI Responses API 兼容接口,支持聊天对话、图像生成、图像编辑、视频生成。

调用示例(curl)

Terminal window
curl http://localhost:8000/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GROK2API_API_KEY" \
-d '{
"model": "grok-4",
"input": "解释一下量子隧穿",
"stream": true
}'

支持的请求参数

字段类型说明
modelstring模型名称
inputstring/array输入内容,支持字符串、消息数组或多模态内容块
instructionsstring系统指令
streamboolean是否流式输出
temperaturenumber采样温度
top_pnumbernucleus 采样
toolsarray工具定义(支持 function 工具;内置工具类型见下方说明)
tool_choicestring/object工具选择(auto/required/none 或指定工具)
parallel_tool_callsboolean是否允许并行工具调用
reasoningobject推理参数
└─effortstring推理强度

注意事项

  1. 内置工具 web_search / file_search / code_interpreter 目前会映射为 function tool 触发调用,但 不执行托管工具,需客户端自行执行并回填。

  2. 流式输出会包含 response.output_text.*response.function_call_arguments.* 事件。

3. POST /v1/images/generations#

OpenAI Image Generations API 兼容接口,支持图像生成。

调用示例(curl)

Terminal window
curl http://localhost:8000/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GROK2API_API_KEY" \
-d '{
"model": "grok-imagine-1.0",
"prompt": "一只在太空漂浮的猫",
"n": 1
}'

支持的请求参数

字段类型说明可用参数
modelstring图像模型名grok-imagine-1.0
promptstring图像描述提示词-
ninteger生成数量1 - 10 (流式模式仅限 12)
streamboolean是否开启流式输出true, false
sizestring图片尺寸1280x720, 720x1280, 1792x1024, 1024x1792, 1024x1024
qualitystring图片质量- (暂不支持)
response_formatstring响应格式url, b64_json, base64
stylestring风格- (暂不支持)

注意事项

  1. qualitystyle 参数为 OpenAI 兼容保留,当前版本暂不支持自定义。

  2. 多图编辑若传入超过 3 张,仅取最后 3 张 作为参考。

4. POST /v1/images/edits#

OpenAI Image Edits API 兼容接口,支持图像编辑(multipart/form-data)。

调用示例(curl)

Terminal window
curl http://localhost:8000/v1/images/edits \
-H "Authorization: Bearer $GROK2API_API_KEY" \
-F "model=grok-imagine-1.0-edit" \
-F "prompt=把图片变清晰" \
-F "image=@/path/to/image.png" \
-F "n=1"

支持的请求参数

字段类型说明可用参数
modelstring图像模型名grok-imagine-1.0-edit
promptstring编辑描述-
imagefile待编辑图片png, jpg, webp
ninteger生成数量1 - 10 (流式模式仅限 12)
streamboolean是否开启流式输出true, false
sizestring图片尺寸1280x720, 720x1280, 1792x1024, 1024x1792, 1024x1024
qualitystring图片质量- (暂不支持)
response_formatstring响应格式url, b64_json, base64
stylestring风格- (暂不支持)

注意事项 qualitystyle 参数为 OpenAI 兼容保留,当前版本暂不支持自定义。

5. POST /v1/videos#

OpenAI Videos API 兼容接口,支持视频生成(multipart/form-data)。

调用示例(curl)

Terminal window
curl http://localhost:8000/v1/videos \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GROK2API_API_KEY" \
-d '{
"model": "grok-imagine-1.0-video",
"prompt": "霓虹雨夜街头,慢镜头追拍",
"size": "1792x1024",
"seconds": 18,
"quality": "standard"
}'

支持的请求参数

字段类型说明可用参数
modelstring视频模型名grok-imagine-1.0-video
promptstring视频提示词-
sizestring画面比例(会映射到 aspect_ratio)1280x720, 720x1280, 1792x1024, 1024x1792, 1024x1024
secondsinteger目标时长(秒)6 ~ 30
qualitystring视频质量(映射到 resolution)standard, high
image_referenceobject/string参考图(可选){"image_url":"https://..."} 或 Data URI
input_referencefilemultipart 参考图(可选)png, jpg, webp

注意事项

  1. 服务端已支持 6~30 秒自动链式扩展, 无需使用 /v1/video/extend

  2. quality=standard 对应 480pquality=high 对应 720p

  3. 基础号池请求 720p 时会先产出 480p 再按 video.upscale_timing 执行超分。

  4. image_referenceinput_reference 同时传入时,会按顺序作为参考图输入;视频链路只使用第 1 张。

参数配置#

配置文件路径:data/config.toml v1.0 配置结构升级:旧版本用户更新后,配置会自动迁移到新结构,无需手动修改。旧的 [grok] 配置节中的自定义值会自动映射到对应的新配置节。

模块字段配置名说明默认值
appapp_url应用地址当前 Grok2API 服务的外部访问 URL,用于文件链接访问。""
app_key后台密码登录 Grok2API 管理后台的密码(必填)。grok2api
api_keyAPI 密钥调用 Grok2API 服务的 Token(可选,支持逗号分隔或数组)。""
function_enabledFunction 开关是否启用 function 功能玩法。false
function_keyFunction 密钥Function 调用密钥(可选)。""
image_format图片格式生成的图片格式(url 或 base64)。url
video_format视频格式生成的视频格式(html 或 url,url 为处理后的链接)。html
temporary临时对话是否启用临时对话模式。true
disable_memory禁用记忆禁用 Grok 记忆功能,防止响应中出现不相关上下文。true
stream流式响应是否默认启用流式输出。true
thinking思维链是否默认启用思维链输出。true
dynamic_statsig动态指纹是否动态生成 Statsig 指纹。true
custom_instruction自定义指令多行文本,透传为 Grok customPersonality""
filter_tags过滤标签自动过滤 Grok 响应中的特殊标签。["xaiartifact","xai:tool_usage_card","grok:render"]
proxybase_proxy_url基础代理 URL代理请求到 Grok 官网的基础服务地址。""
asset_proxy_url资源代理 URL代理请求到 Grok 官网的静态资源(图片 / 视频)地址。""
cf_cookiesCF CookiesFlareSolverr 刷新写入的完整 Cookie 字符串。""
skip_proxy_ssl_verify跳过代理 SSL 校验代理使用自签名证书时启用(仅放行代理证书,目标站点仍校验)。false
enabledCF 自动刷新是否启用 CF 自动刷新。false
flaresolverr_urlFlareSolverr 地址FlareSolverr 服务的 HTTP 地址。""
refresh_interval刷新间隔自动刷新 cf_clearance 间隔(秒)。3600
timeout挑战超时CF 挑战等待超时(秒)。60
cf_clearanceCF ClearanceCloudflare 验证 Cookie。""
browser浏览器指纹curl_cffi 浏览器指纹标识(如 chrome136)。chrome136
user_agentUser-AgentHTTP 请求的 User-Agent 字符串。Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36
retrymax_retry最大重试请求 Grok 服务失败时的最大重试次数。3
retry_status_codes重试状态码触发重试的 HTTP 状态码列表。[401, 429, 403]
reset_session_status_codes重建状态码触发重建 session 的 HTTP 状态码列表(用于轮换代理)。[403]
retry_backoff_base退避基数重试退避的基础延迟(秒)。0.5
retry_backoff_factor退避倍率重试退避的指数放大系数。2.0
retry_backoff_max退避上限单次重试等待的最大延迟(秒)。20.0
retry_budget退避预算单次请求的最大重试总耗时(秒)。60.0
tokenauto_refresh自动刷新是否开启 Token 自动刷新机制。true
refresh_interval_hours刷新间隔普通 Token 刷新的时间间隔(小时)。8
super_refresh_interval_hoursSuper 刷新间隔Super Token 刷新的时间间隔(小时)。2
fail_threshold失败阈值单个 Token 连续失败多少次后被标记为不可用。5
save_delay_ms保存延迟Token 变更合并写入的延迟(毫秒)。500
usage_flush_interval_sec用量落库间隔用量类字段写入数据库的最小间隔(秒)。5
reload_interval_sec同步间隔多 worker 场景下 Token 状态刷新间隔(秒)。30
cacheenable_auto_clean自动清理是否启用缓存自动清理,开启后按上限自动回收。true
limit_mb清理阈值缓存大小阈值(MB),超过阈值会触发清理。512
chatconcurrent并发上限Reverse 接口并发上限。50
timeout请求超时Reverse 接口超时时间(秒)。60
stream_timeout流空闲超时流式空闲超时时间(秒)。60
imagetimeout请求超时WebSocket 请求超时时间(秒)。60
stream_timeout流空闲超时WebSocket 流式空闲超时时间(秒)。60
final_timeout最终图超时收到中等图后等待最终图的超时秒数。15
blocked_grace_seconds审查宽限秒数收到中等图后,判定疑似被审查的宽限秒数。10
nsfwNSFW 模式WebSocket 请求是否启用 NSFW。true
medium_min_bytes中等图最小字节判定中等质量图的最小字节数。30000
final_min_bytes最终图最小字节判定最终图的最小字节数(通常 JPG > 100KB)。100000
blocked_parallel_attempts并行补偿次数遇到疑似审查 / 拦截时的并行补偿生成次数。5
blocked_parallel_enabled并行补偿开关是否启用并行补偿(启用时优先使用不同 token)。true
imagine_fastn生成数量仅对 grok-imagine-1.0-fast 生效。1
size图片尺寸1280x720 / 720x1280 / 1792x1024 / 1024x1792 / 1024x10241024x1024
response_format响应格式url / b64_json / base64url
videoconcurrent并发上限Reverse 接口并发上限。100
timeout请求超时Reverse 接口超时时间(秒)。60
stream_timeout流空闲超时流式空闲超时时间(秒)。60
upscale_timing超分时机Basic 号池 720p 超分模式:single(每轮扩展后超分)/ complete(所有扩展后超分)。complete
voicetimeout请求超时Voice 请求超时时间(秒)。60
assetupload_concurrent上传并发上传接口的最大并发数。100
upload_timeout上传超时上传接口超时时间(秒)。60
download_concurrent下载并发下载接口的最大并发数。100
download_timeout下载超时下载接口超时时间(秒)。60
list_concurrent查询并发资产查询接口的最大并发数。100
list_timeout查询超时资产查询接口超时时间(秒)。60
list_batch_size查询批次大小单次查询可处理的 Token 数量。50
delete_concurrent删除并发资产删除接口的最大并发数。100
delete_timeout删除超时资产删除接口超时时间(秒)。60
delete_batch_size删除批次大小单次删除可处理的 Token 数量。50
nsfwconcurrent并发上限批量开启 NSFW 模式时的并发请求上限。60
batch_size批次大小批量开启 NSFW 模式的单批处理数量。30
timeout请求超时NSFW 开启相关请求的超时时间(秒)。60
usageconcurrent并发上限批量刷新用量时的并发请求上限。100
batch_size批次大小批量刷新用量的单批处理数量。50
timeout请求超时用量查询接口的超时时间(秒)。60

你可以直接将上述全部内容复制,粘贴到文本编辑器后将文件后缀命名为 .md 即可完成保存。 需要我帮你整理一份精简版的部署与调用速查表吗?

(注:文档部分内容可能由 AI 生成)

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Grok2API 部署教程
https://dujianhua200.github.io/posts/2026-06-13-test-post/
作者
Firefly
发布于
2026-06-13
许可协议
CC BY-NC-SA 4.0

目录