模型能力
Ephemeral Tokens
Ephemeral token 为客户端应用提供安全、短生命周期的身份验证。从浏览器或移动应用连接 Speech to Speech API 时请使用它们,以避免暴露 API key。
工作原理
你的 server 使用 API key 向 xAI 请求 ephemeral token
Server 将 ephemeral token 传递给 client
该 client 使用 ephemeral token 验证 WebSocket 连接
Token 会在配置的时长后自动过期
创建 Ephemeral Token
你需要设置一个 server endpoint,从 xAI 获取 ephemeral token。Ephemeral token 会为持有者提供限定范围的资源访问权限。
Endpoint: POST https://api.x.ai/v1/realtime/client_secrets
curl --url https://api.x.ai/v1/realtime/client_secrets \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
--data '{
"expires_after": {
"seconds": 300
}
}'
# Note: Does not support "session" or "expires_after.anchor" fields使用 Ephemeral Token
Ephemeral token 的使用方式与 API key 相同:
import os
import websockets
base_url = "wss://api.x.ai/v1/realtime?model=grok-voice-latest"
# Connect with API key in Authorization header
async with websockets.connect(
uri=base_url,
ssl=True,
additional_headers={"Authorization": f"Bearer {OBTAINED_EPHEMERAL_TOKEN}"}
) as websocket:
# WebSocket connection is now authenticated
pass浏览器 WebSocket 身份验证
如果需要从浏览器发送 ephemeral token,可以添加带有前缀 xai-client-secret. 的 ephemeral token 到 sec-websocket-protocol header:
new WebSocket("wss://api.x.ai/v1/realtime", [\`xai-client-secret.\${OBTAINED_EPHEMERAL_TOKEN}\`]);