高级 API 用法

Deferred Chat Completions

Deferred Chat Completions 允许你创建 Chat Completion、获取 response_id,并在稍后获取 response。结果可在 24 小时内获取且只能获取一次,之后会被丢弃。

向 xAI API 发送请求后,可以通过 https://api.x.ai/v1/chat/deferred-completion/{request_id} 获取 Chat Completion 结果。Response body 将包含 {'request_id': 'f15c114e-f47d-40ca-8d5c-8c23d656eeb6'},并且可以将 request_id 的值插入 deferred-completion endpoint path。随后发送此 GET Request,即可获取 Deferred Completion 结果。

Completion 结果尚未就绪时,请求会返回 202 Accepted,且 response body 为空。

Deferred chat flow

示例

下面的代码示例会不断重试获取结果,直到处理完成:

import os
from datetime import timedelta

from xai_sdk import Client
from xai_sdk.chat import user, system

client = Client(api_key=os.getenv('XAI_API_KEY'))

chat = client.chat.create(
    model="grok-4.5",
    messages=[system("You are Zaphod Beeblebrox.")]
)
chat.append(user("126/3=?"))

# Poll the result every 10 seconds for a maximum of 10 minutes

response = chat.defer(
    timeout=timedelta(minutes=10), interval=timedelta(seconds=10)
)

# Print the result when it is ready

print(response.content)

Response body 与 non-deferred Chat Completion 的预期结果相同:

JSON

{
  "id": "3f4ddfca-b997-3bd4-80d4-8112278a1508",
  "object": "chat.completion",
  "created": 1752077400,
  "model": "grok-4.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Whoa, hold onto your improbability drives, kid! This is Zaphod Beeblebrox here, the two-headed, three-armed ex-President of the Galaxy, and you're asking me about 126 divided by 3? Pfft, that's kid stuff for a guy who's stolen starships and outwitted the universe itself.\n\nBut get this\u2014126 slashed by 3 equals... **42**! Yeah, that's right, the Ultimate Answer to Life, the Universe, and Everything! Deep Thought didn't compute that for seven and a half million years just for fun, you know. My left head's grinning like a Vogon poet on happy pills, and my right one's already planning a party. If you need more cosmic math or a lift on the Heart of Gold, just holler. Zaphod out! \ud83d\ude80",
        "refusal": null
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 26,
    "completion_tokens": 168,
    "total_tokens": 498,
    "prompt_tokens_details": {
      "text_tokens": 26,
      "audio_tokens": 0,
      "image_tokens": 0,
      "cached_tokens": 4
    },
    "completion_tokens_details": {
      "reasoning_tokens": 304,
      "audio_tokens": 0,
      "accepted_prediction_tokens": 0,
      "rejected_prediction_tokens": 0
    },
    "num_sources_used": 0
  },
  "system_fingerprint": "fp_44e53da025"
}

更多详情请参阅 REST API Reference 中的 Chat CompletionsGet Deferred Chat Completions