深色模式
Grok API Python 教程:调用 Responses API、配置密钥与错误处理
xAI 的开发者入口是 console.x.ai,官方文档是 docs.x.ai。本文在 2026 年 10 月 6 日更新;示例中的 grok-4.6 只是写作时的参考值,模型名称、价格、上下文和限流都可能变化。部署前请以 模型与价格页 和控制台实际返回的可用模型为准。
想先比较兼容 API 入口?
可查看 ZeoAPI 注册入口,核对当前是否提供所需模型与兼容接口。ZeoAPI 是独立第三方服务,不是 xAI 官方 API;Base URL、模型路由、价格、额度、日志和数据处理规则以登录后的页面及服务条款为准。注册链接含推荐参数,是否使用完全自愿。需要 xAI 官方能力时,请优先使用本文列出的 console.x.ai 与官方文档。
先核验模型 ID,再复制代码:在控制台或官方模型页确认项目可用的精确
model字符串。网页端显示的“最新 Grok”名称不一定等于 API ID,也不能把grok-4.6、grok-latest等别名当成永久兼容的接口。
一、开始前需要什么
| 项目 | 说明 |
|---|---|
| xAI 开发者账号 | 用于控制台、项目和账单 |
| API Key | 只在服务端使用,不放入前端 |
| Python 3.10+ | 建议使用虚拟环境 |
| 官方 SDK | 示例使用 xai-sdk |
| 成本控制 | 在控制台设置预算或告警 |
第三方 API 中转并不等同于 xAI 官方 API。如果使用第三方服务,要单独核对模型、计费、日志和数据处理规则。
二、安装 SDK
powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade xai-sdkmacOS 或 Linux:
bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade xai-sdk三、安全配置 API Key
PowerShell 当前会话:
powershell
$env:XAI_API_KEY = "你的密钥"Bash 当前会话:
bash
export XAI_API_KEY="你的密钥"不要把真实密钥写入 Markdown、截图、前端 JavaScript 或 Git 仓库。生产环境应使用部署平台的加密环境变量。
四、第一次请求
python
import os
from xai_sdk import Client
api_key = os.environ.get("XAI_API_KEY")
if not api_key:
raise RuntimeError("XAI_API_KEY is not configured")
client = Client(
api_key=api_key,
base_url="https://api.x.ai/v1",
)
response = client.responses.create(
model="grok-4.6", # 以控制台当前可用模型 ID 为准
input=(
"请用简体中文解释这段函数的错误,并给出最小修复:"
"function median(a){a.sort();return a[a.length/2]}"
),
)
print(response.output_text)运行:
powershell
python .\app.py如果当前文档推荐的模型已经变化,将 model 改成控制台和官方模型页列出的有效名称。
五、使用 curl 验证账号和模型
SDK 报错时,可以先用最小 HTTP 请求排除本地依赖问题:
bash
curl https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.6",
"input": "Return exactly: ok"
}'如果 curl 也失败,优先检查密钥、项目权限、账单、模型名称和服务状态。
六、生产代码的最小错误处理
python
import os
import time
from xai_sdk import Client
client = Client(
api_key=os.environ["XAI_API_KEY"],
base_url="https://api.x.ai/v1",
)
def ask_grok(prompt: str, attempts: int = 3) -> str:
if not prompt.strip():
raise ValueError("prompt must not be empty")
last_error: Exception | None = None
for attempt in range(attempts):
try:
response = client.responses.create(
model="grok-4.6", # 以控制台当前可用模型 ID 为准
input=prompt,
)
return response.output_text
except Exception as error:
last_error = error
if attempt == attempts - 1:
break
time.sleep(2 ** attempt)
raise RuntimeError("xAI request failed") from last_error
print(ask_grok("列出审查一段Python代码时最重要的5个检查项。"))示例使用有限次数的指数退避。真实项目还应:
- 为网络请求设置超时;
- 只对可重试错误重试;
- 记录请求 ID 和错误类型,不记录完整敏感输入;
- 对用户输入、输出长度和并发进行限制;
- 在业务层设置总成本和失败降级策略。
七、API 可以做什么:从单次问答到工作流
Grok API 的价值在于把模型接入已有系统,而不只是手动打开网页提问。常见的落地方式包括:
| 场景 | 调用方式 | 实施要点 |
|---|---|---|
| 客服与工单分流 | 服务端接收问题,返回分类、优先级和草稿回复 | 让模型输出固定 JSON,敏感操作交给人工确认 |
| 批量内容处理 | 队列逐条发送摘要、标签或改写任务 | 限制并发、记录请求 ID 和用量,失败任务可重放 |
| RAG 知识库问答 | 检索相关片段后拼入 input | 限制片段长度,要求模型引用来源,避免把整库直接上传 |
| 代码审查与 CI | 提交或流水线触发 API 请求 | 固定检查清单,结果写回评论,密钥只放 CI Secret |
| 多模型路由 | 先用轻量模型分类,再按任务调用 Grok 或其他模型 | 路由表使用实际可用的模型 ID,并为每个提供商单独统计成本 |
与 GPT-6 等其他模型协同
当前我们的多模型产品已支持 GPT-6。它与 Grok API 是不同提供商、不同鉴权和计费链路:不要把 GPT-6 的模型名直接填到 xAI 的 model 参数,也不要假设两个接口的工具调用、上下文长度和返回字段完全相同。推荐在自己的服务端建立统一任务层:
- 先定义业务输入、输出 JSON Schema 和超时上限。
- 根据任务类型选择 Grok、GPT-6、Claude 或 Gemini 的实际可用模型 ID。
- 为每个提供商写一层适配器,统一错误、重试、日志和用量记录。
- 用同一组验收样本比较质量、延迟和成本,再决定是否自动切换。
如果只是想在产品内切换模型,请以产品当日显示的模型列表为准;如果是直接调用 API,则必须分别查看对应官方文档。
八、常见错误怎么排查
| 现象 | 常见原因 | 排查方向 |
|---|---|---|
| 401 / 403 | 密钥错误、权限或账号问题 | 重新生成密钥,检查项目与账单 |
| 404 / model not found | 模型名称过期或账号未开放 | 查看官方模型页 |
| 429 | 触发请求或 Token 限流 | 降低并发,按响应提示重试 |
| 请求超时 | 输入过长、网络或服务繁忙 | 缩短输入,设置超时和重试 |
| 成本异常 | 循环调用、输入过长、未限制输出 | 记录用量,设置预算和上限 |
| 输出不稳定 | 任务约束不足或输入不同 | 固定模板、测试集和验收标准 |
排查时按“最小请求 → 权限 → 模型 → 限流 → 业务代码”的顺序缩小范围:先用上面的 curl 发送 Return exactly: ok,再逐步加回长提示词、文件、工具和并发。若 SDK 报错信息被包装过,保留 HTTP 状态码、响应中的 request ID 和时间戳,方便在控制台或官方支持渠道定位;不要把完整用户输入和 API Key 写进日志。
九、成本与数据安全
xAI 在 2026年8月12日的 Grok 4.6 公告 中写明,标准版本价格从每百万输入 Token 2 美元、每百万输出 Token 6 美元起;当前实际价格、长上下文价格和快速变体仍以模型页与控制台为准。
数据安全建议:
- 不把密钥写进客户端应用。
- 为开发、测试和生产使用不同密钥。
- 对日志中的用户输入、文件名和个人信息做脱敏。
- 给高成本操作设置确认和额度上限。
- 删除不再使用的密钥,并定期轮换。
- 查看 xAI 当前隐私、企业和数据条款。
十、第三方 API 入口怎么判断
如果官方账号、支付或地区条件不适合,也可能遇到第三方 API 平台。使用前确认:
- 服务方明确说明自己不是 xAI;
- 模型名称和版本是否可验证;
- 是否支持 Responses API、流式输出或工具调用;
- 日志保留、密钥管理、退款和故障责任;
- 是否提供可导出的用量记录。
不要只因为接口兼容 OpenAI 格式,就假设底层模型、上下文和工具与官方完全相同。
常见问题
Grok API和grok.com会员是一回事吗?
不是。网页产品订阅和开发者 API 通常属于不同的账号权益与计费路径,应分别查看官方页面。
可以直接在浏览器调用API吗?
不建议。这样会暴露密钥。应由服务端调用,并对用户请求做权限和额度控制。
应该使用哪个模型名称?
使用 官方模型页 当前列出的名称,并确认该模型已对你的项目开放。本文示例使用 grok-4.6,仅用于演示;如果接口返回 model not found,先不要盲目重试,改用控制台实际列出的 ID。
可以把 GPT-6、Claude 或 Gemini 的模型名填给 xAI API 吗?
不可以。模型 ID 属于各自提供商。需要跨模型时,在服务端分别配置凭据和适配器;我们的产品虽然已经支持 GPT-6 等模型,直接调用 xAI 仍应遵循 xAI 的模型列表和鉴权方式。
API支持图片输入吗?
官方模型页会列出各模型的输入模态。具体请求格式应参考对应的官方指南。
如何控制费用?
限制输入与输出长度、并发和重试次数,记录用量,并在控制台设置预算或告警。