从写代码,到创作下一幕

探索 字节跳动 - 火山方舟 的 AI 编程与视频创作活动。

火山方舟 Agent Plan 与 Coding Plan 活动,价格 ¥9.9 起

Agent Plan & Coding Plan

一站体验多款热门模型,为 AI 编程与智能体开发提供更多选择。新用户可联系(微信: goo_lvyouyou)免费体验 9.9 agent plan。

查看套餐优惠
Seedance 2.5 视频创作活动:30 秒视频、多模态参考、局部编辑

Seedance 2.5

让创意,跃然成片。探索 30 秒视频、多模态参考与局部编辑,把脑海中的画面变成下一支作品。

探索视频创作

推理 API

Responses

查看 Markdown

Responses API 是文本生成、推理和工具使用的主要接口。请参阅文本生成指南了解用法。

采样时,temperature 的上限为 1,另一项上限是模型默认的 top_p。请求可将 temperature 设为 0 到 2 之间的值,top_p 可设至 1。响应会原样返回所传的值,实际采样时超出上限的值会按上限处理。参见采样参数。



创建新 response

/v1/responses

根据文本或图像提示生成响应。响应 ID 可用于稍后检索响应,或在不重复先前上下文的情况下继续对话。新响应会保存 30 天,随后永久删除。

请求体

inputstring | array<object | object | object | object | object>

传递给 `/v1/response` 请求的输入内容。

响应体

backgroundboolean

OpenResponses 兼容字段。 目前未使用,仅用于 OpenResponses 兼容性。 是否在后台异步处理响应。

created_atinteger

响应创建时间的 Unix 时间戳(秒)。

errorobject

模型未能生成响应时返回的错误对象。

frequency_penaltynumber

(Responses API 不支持)正值根据 token 在已有文本中的出现频率惩罚新 token,降低模型逐字重复同一行的可能性。

idstring

响应的唯一 ID。

metadataobject

仅为兼容性而包含。

modelstring

用于生成响应的模型名称。

objectstring

此资源的对象类型,始终为 `response`。

outputarray<object | object | object | object | object | object | object | object | object | object | object | object>

模型生成的响应。

parallel_tool_callsboolean

是否允许模型并行调用工具。

presence_penaltynumber

(Responses API 不支持)正值根据 token 是否已在文本中出现来惩罚新 token,提高模型讨论新话题的可能性。

service_tier"default" | "priority" | "fast"

("default" | "priority" | "fast",必填)

statusstring

响应状态,为 `completed`、`in_progress` 或 `incomplete`。

storeboolean

是否保存输入消息和模型响应,供稍后检索。

textobject

tool_choicestring | object

控制模型如何选择工具的参数。

toolsarray<object | object | object | object | object | object | object | object | object>

(array<object | object | object | object | object | object | object | object | object>,必填)— 模型可调用的工具列表,以 JSON Schema 表示。目前仅支持函数和网页搜索,最多支持 1000 个工具。

top_logprobsinteger

介于 0 和 8 之间的整数,指定每个 token 位置返回多少个最可能的 token。

truncationstring

模型响应使用的截断策略。

代码示例

**响应示例:**


Example
import { xai } from "@ai-sdk/xai";
import { generateText } from "ai";

const result = await generateText({
  model: xai.responses("grok-4.7"),
  prompt: "What is the meaning of life?",
});

console.log(JSON.stringify(result, null, 2));
Exampletext

text

{
  "steps": [
    {
      "stepNumber": 0,
      "model": {
        "provider": "xai.responses",
        "modelId": "grok-4.20-beta-latest-non-reasoning"
      },
      "content": [
        {
          "type": "text",
          "text": "**42.**"
        }
      ],
      "finishReason": "stop",
      "rawFinishReason": "completed",
      "usage": {
        "inputTokens": 129,
        "inputTokenDetails": {
          "noCacheTokens": 1,
          "cacheReadTokens": 128
        },
        "outputTokens": 477,
        "outputTokenDetails": {
          "textTokens": 477,
          "reasoningTokens": 0
        },
        "totalTokens": 606,
        "raw": {
          "input_tokens": 129,
          "output_tokens": 477,
          "total_tokens": 606,
          "input_tokens_details": {
            "cached_tokens": 128
          },
          "output_tokens_details": {
            "reasoning_tokens": 0
          },
          "num_sources_used": 0,
          "num_server_side_tools_used": 0
        },
        "reasoningTokens": 0,
        "cachedInputTokens": 128
      },
      "warnings": [],
      "request": {
        "body": {
          "model": "grok-4.20-beta-latest-non-reasoning",
          "input": [
            {
              "role": "user",
              "content": [
                {
                  "type": "input_text",
                  "text": "What is the meaning of life?"
                }
              ]
            }
          ]
        }
      },
      "response": {
        "id": "6622e6fd-731d-9e8d-a8f1-9d721316e2a5",
        "timestamp": "2026-03-17T19:19:16.000Z",
        "modelId": "grok-4.20-beta-0309-non-reasoning",
        "body": {
          "created_at": 1773775156,
          "completed_at": 1773775158,
          "id": "6622e6fd-731d-9e8d-a8f1-9d721316e2a5",
          "max_output_tokens": null,
          "model": "grok-4.20-beta-0309-non-reasoning",
          "object": "response",
          "output": [
            {
              "content": [
                {
                  "type": "output_text",
                  "text": "**42.**",
                  "logprobs": [],
                  "annotations": []
                }
              ],
              "id": "msg_6622e6fd-731d-9e8d-a8f1-9d721316e2a5",
              "role": "assistant",
              "type": "message",
              "status": "completed"
            }
          ],
          "parallel_tool_calls": true,
          "previous_response_id": null,
          "reasoning": {
            "effort": null,
            "summary": null
          },
          "temperature": 0.7,
          "text": {
            "format": {
              "type": "text"
            }
          },
          "tool_choice": "auto",
          "tools": [],
          "top_p": 0.95,
          "usage": {
            "input_tokens": 129,
            "input_tokens_details": {
              "cached_tokens": 128
            },
            "output_tokens": 477,
            "output_tokens_details": {
              "reasoning_tokens": 0
            },
            "total_tokens": 606,
            "num_sources_used": 0,
            "num_server_side_tools_used": 0,
            "cost_in_usd_ticks": 28896000
          },
          "user": null,
          "incomplete_details": null,
          "status": "completed",
          "store": true,
          "metadata": {},
          "background": false,
          "service_tier": "default",
          "truncation": "disabled",
          "top_logprobs": 0,
          "presence_penalty": 0,
          "frequency_penalty": 0,
          "prompt_cache_key": null,
          "max_tool_calls": null,
          "safety_identifier": null,
          "error": null,
          "instructions": null
        },
        "messages": [
          {
            "role": "assistant",
            "content": [
              {
                "type": "text",
                "text": "**42.**"
              }
            ]
          }
        ]
      }
    }
  ],
  "_output": "**42.**",
  "totalUsage": {
    "inputTokens": 129,
    "inputTokenDetails": {
      "noCacheTokens": 1,
      "cacheReadTokens": 128
    },
    "outputTokens": 477,
    "outputTokenDetails": {
      "textTokens": 477,
      "reasoningTokens": 0
    },
    "totalTokens": 606,
    "reasoningTokens": 0,
    "cachedInputTokens": 128
  }
}

获取之前的 response

/v1/responses/{response_id}

检索先前生成的响应。

路径参数

response_idstring

先前创建响应请求返回的响应 ID。

响应体

backgroundboolean

OpenResponses 兼容字段。 目前未使用,仅用于 OpenResponses 兼容性。 是否在后台异步处理响应。

created_atinteger

响应创建时间的 Unix 时间戳(秒)。

errorobject

模型未能生成响应时返回的错误对象。

frequency_penaltynumber

(Responses API 不支持)正值根据 token 在已有文本中的出现频率惩罚新 token,降低模型逐字重复同一行的可能性。

idstring

响应的唯一 ID。

metadataobject

仅为兼容性而包含。

modelstring

用于生成响应的模型名称。

objectstring

此资源的对象类型,始终为 `response`。

outputarray<object | object | object | object | object | object | object | object | object | object | object | object>

模型生成的响应。

parallel_tool_callsboolean

是否允许模型并行调用工具。

presence_penaltynumber

(Responses API 不支持)正值根据 token 是否已在文本中出现来惩罚新 token,提高模型讨论新话题的可能性。

service_tier"default" | "priority" | "fast"

("default" | "priority" | "fast",必填)

statusstring

响应状态,为 `completed`、`in_progress` 或 `incomplete`。

storeboolean

是否保存输入消息和模型响应,供稍后检索。

textobject

tool_choicestring | object

控制模型如何选择工具的参数。

toolsarray<object | object | object | object | object | object | object | object | object>

(array<object | object | object | object | object | object | object | object | object>,必填)— 模型可调用的工具列表,以 JSON Schema 表示。目前仅支持函数和网页搜索,最多支持 1000 个工具。

top_logprobsinteger

介于 0 和 8 之间的整数,指定每个 token 位置返回多少个最可能的 token。

truncationstring

模型响应使用的截断策略。

Exampletext

text

No parameters.
Exampletext

text

{
  "created_at": 1754475266,
  "id": "ad5663da-63e6-86c6-e0be-ff15effa8357",
  "max_output_tokens": null,
  "model": "latest",
  "object": "response",
  "output": [
    {
      "content": [
        {
          "type": "output_text",
          "text": "101 multiplied by 3 is 303.",
          "logprobs": null,
          "annotations": []
        }
      ],
      "id": "msg_ad5663da-63e6-86c6-e0be-ff15effa8357",
      "role": "assistant",
      "type": "message",
      "status": "completed"
    },
    {
      "id": "",
      "summary": [
        {
          "text": "First, the user asked: \"What is 101*3?\"\n\nThis is a simple multiplication: 101 multiplied by 3.\n\nCalculating: 100 * 3 = 300, and 1 * 3 = 3, so 300 + 3 = 303.\n\nI should respond helpfully and directly, as per my system prompt: \"You are a helpful assistant that can answer questions and help with tasks.\"\n\nKeep the response concise and accurate. No need for extra fluff unless it adds value.\n\nFinal answer: 303.",
          "type": "summary_text"
        }
      ],
      "type": "reasoning",
      "status": "completed"
    }
  ],
  "parallel_tool_calls": true,
  "previous_response_id": null,
  "reasoning": null,
  "temperature": null,
  "text": {
    "format": {
      "type": "text"
    }
  },
  "tool_choice": "auto",
  "tools": [],
  "top_p": null,
  "usage": {
    "prompt_tokens": 32,
    "completion_tokens": 9,
    "total_tokens": 151,
    "prompt_tokens_details": {
      "text_tokens": 32,
      "audio_tokens": 0,
      "image_tokens": 0,
      "cached_tokens": 8
    },
    "completion_tokens_details": {
      "reasoning_tokens": 110,
      "audio_tokens": 0,
      "accepted_prediction_tokens": 0,
      "rejected_prediction_tokens": 0
    },
    "num_sources_used": 0
  },
  "user": null,
  "incomplete_details": null,
  "status": "completed",
  "store": true
}

删除之前的 response

/v1/responses/{response_id}

删除先前生成的响应。

路径参数

response_idstring

先前创建响应请求返回的响应 ID。

响应体

deletedboolean

是否成功删除响应。

idstring

要删除的 response_id。

objectstring

已删除对象的类型,始终为 `response`。

Exampletext

text

No parameters.
Exampletext

text

{
  "id": "ad5663da-63e6-86c6-e0be-ff15effa8357",
  "object": "response",
  "deleted": true
}

压缩对话

/v1/responses/compact

将完整的 Responses API 输入窗口压缩为更短的规范窗口。

请求体

inputstring | array<object | object | object | object | object>

传递给 `/v1/response` 请求的输入内容。

modelstring

用于压缩摘要的模型(必填)。

响应体

created_atinteger

压缩后对话的创建时间,以 Unix 时间戳(秒)表示。

idstring

本次压缩的唯一 ID(例如 `cmp_<uuid>`)。

modelstring

用于压缩摘要的模型。

objectstring

始终为 `"response.compaction"`。

outputarray<object | object | object | object | object>

压缩后的输出,包含一个压缩项。 将其原样作为下一次 `/v1/responses` 调用的输入。

代码示例

**响应示例:**

Example
import os

from openai import OpenAI

client = OpenAI(
    api_key=os.environ["XAI_API_KEY"],
    base_url="https://api.x.ai/v1",
)

compacted = client.responses.compact(
    model="grok-4.7",
    input=[
        {"role": "system", "content": "You are a concise and knowledgeable science tutor."},
        {"role": "user", "content": "What is the Higgs boson and why is it important?"},
        {
            "role": "assistant",
            "content": (
                "The Higgs boson is an elementary particle in the Standard Model, predicted by "
                "Peter Higgs in 1964 and confirmed at CERN in 2012. It is the quantum excitation "
                "of the Higgs field, which gives mass to fundamental particles via the Higgs mechanism."
            ),
        },
        {"role": "user", "content": "How does the Higgs mechanism actually work?"},
        {
            "role": "assistant",
            "content": (
                "Through spontaneous symmetry breaking. The Higgs field has a nonzero vacuum value, "
                "and particles acquire mass in proportion to how strongly they couple to it. Photons "
                "do not couple, which is why they remain massless."
            ),
        },
    ],
)

print(compacted.model_dump_json(indent=2))
Exampletext

text

{}

最后更新:2026 年 10 月 20 日