模型能力

Ephemeral Tokens

Ephemeral token 为客户端应用提供安全、短生命周期的身份验证。从浏览器或移动应用连接 Speech to Speech API 时请使用它们,以避免暴露 API key。

工作原理

  1. 你的 server 使用 API key 向 xAI 请求 ephemeral token

  2. Server 将 ephemeral token 传递给 client

  3. client 使用 ephemeral token 验证 WebSocket 连接

  4. 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:

JavaScript

new WebSocket("wss://api.x.ai/v1/realtime", [\`xai-client-secret.\${OBTAINED_EPHEMERAL_TOKEN}\`]);