Python 接入 Grok API
更新于:
使用 OpenAI SDK 和 Grok API Dev base URL 在 Python 中调用 Grok 4.5。本页包含普通请求、AsyncOpenAI、流式输出、超时和 API 错误处理。
安装 Python SDK
在虚拟环境中安装当前版本的 OpenAI 包。不要把 API 密钥写入源代码,并在 requirements 文件或 lockfile 中固定经过测试的依赖版本。
Bash
python -m pip install --upgrade openaiBash
export GROK_API_DEV_KEY="sk-lg-YOUR_API_KEY"base_url 已包含 /v1。创建客户端时不要追加 /responses,SDK 会自行添加方法路径。
发送第一个 Grok 请求
最小文本请求可以直接把字符串传给 Responses API 的 input。完整回答位于 output_text,token 用量位于 usage。
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["GROK_API_DEV_KEY"],
base_url="https://api.llm-gate.tech/v1",
timeout=3600.0,
max_retries=2,
)
response = client.responses.create(
model="grok-4.5",
input="Explain SSE in two sentences.",
)
print(response.output_text)
print(response.usage)请在服务器、本地脚本或可信 worker 中运行代码,不要把 API 密钥打包到浏览器端。
使用 AsyncOpenAI
异步客户端适合 FastAPI、后台任务和 asyncio 服务。async 本身不会限制并发量,流量较高时应使用队列或 semaphore。
Python async
import asyncio
import os
from openai import AsyncOpenAI
client = AsyncOpenAI(
api_key=os.environ["GROK_API_DEV_KEY"],
base_url="https://api.llm-gate.tech/v1",
)
async def main() -> None:
response = await client.responses.create(
model="grok-4.5",
input="Hello!",
)
print(response.output_text)
asyncio.run(main())重复使用同一个客户端,避免每次请求都新建 HTTP 连接。
流式获取 Grok 回答
设置 stream=True 后,可以在生成过程中接收事件。只把 response.output_text.delta 追加到文本,并在 response.completed 后再标记请求完成。
Python streaming
stream = client.responses.create(
model="grok-4.5",
input="Write a short Python example.",
stream=True,
)
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)连接建立后仍可能收到错误。请区分部分文本和已完成回答。
超时、重试与错误
OpenAI SDK 会自动重试部分临时故障。设置有限的 timeout 和 max_retries,避免请求无限等待或重复。
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["GROK_API_DEV_KEY"],
base_url="https://api.llm-gate.tech/v1",
max_retries=2,
timeout=3600.0,
)- 401:检查 GROK_API_DEV_KEY 以及密钥是否有效。
- 404:检查 base URL 和 grok-4.5 模型 ID。
- 429:降低并发量并等待后重试。
- 临时 5xx:使用次数有限的指数退避重试。