本文介绍如何通过兼容 OpenAI 格式的 Responses API 调用通义千问模型,包括输入输出参数说明及调用示例。
相较于OpenAI Chat Completions API 的优势:
内置工具:内置联网搜索、代码解释器、网页抓取工具。建议同时开启这些工具(
tools=[{"type": "web_search"}, {"type": "code_interpreter"}, {"type": "web_extractor"}]),以在处理复杂任务时获得最佳效果,详情参考调用内置工具。更灵活的输入:支持直接传入字符串作为模型输入,也兼容 Chat 格式的消息数组。
简化上下文管理:通过传递上一轮响应的
previous_response_id,无需手动构建完整的消息历史数组。
兼容性说明与限制
本 API 在接口设计上兼容 OpenAI,以降低开发者迁移成本,但在参数、功能和具体行为上存在差异。
核心原则:请求将仅处理本文档明确列出的参数,任何未提及的 OpenAI 参数都会被忽略。
以下是几个关键的差异点,以帮助您快速适配:
不支持多模态输入:当前仅支持
qwen3-max-2026-01-23文本模型,input当前仅支持文本格式,不支持图像或其他文件类型输入。部分参数不支持:不支持部分 OpenAI Responses API 参数,例如系统消息指令
instructions、异步执行参数background(当前仅支持同步调用)等。额外支持的参数:本 API 还额外支持
enable_thinking等参数,具体用法请参考相应参数的说明。
当前仅支持华北2(北京)地域。
华北2(北京)
SDK 调用配置的base_url:https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1
HTTP 请求地址:POST https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses
请求体 | 基础调用PythonNode.jscurl流式输出PythonNode.jscurl多轮对话PythonNode.js调用内置工具PythonNode.jscurl |
model 模型名称。当前仅支持 | |
input 模型输入,支持以下格式:
| |
previous_response_id 上一个响应的唯一 ID,当前响应 | |
stream 是否开启流式输出。设置为 | |
tools 模型在生成响应时可调用的工具数组。支持内置工具和自定义 function 工具,可混合使用。 为了获得最佳回复效果,建议同时开启 | |
tool_choice 控制模型如何选择和调用工具。此参数支持两种赋值格式:字符串模式和对象模式。 字符串模式
对象模式 为模型设定可用的工具范围,仅限在预定义的工具列表中进行选择和调用。 | |
temperature 采样温度,控制模型生成文本的多样性。 temperature越高,生成的文本更多样,反之,生成的文本更确定。 取值范围: [0, 2) temperature与top_p均可以控制生成文本的多样性,建议只设置其中一个值。更多说明,请参见文本生成模型概述。 | |
top_p 核采样的概率阈值,控制模型生成文本的多样性。 top_p越高,生成的文本更多样。反之,生成的文本更确定。 取值范围:(0,1.0] temperature与top_p均可以控制生成文本的多样性,建议只设置其中一个值。更多说明,请参见文本生成模型概述。 | |
enable_thinking 是否开启思考模式。开启后,模型会在回复前进行思考,思考内容将通过 开启思考模式时,建议开启内置工具,以在处理复杂任务时获得最佳的模型效果。 可选值:
该参数非OpenAI标准参数。Python SDK 通过 |
Response 响应对象(非流式输出) | |
id 本次响应的唯一标识符,为 UUID 格式的字符串,有效期为7天。可用于 | |
created_at 本次请求的 Unix 时间戳(秒)。 | |
object 对象类型,固定为 | |
status 响应生成的状态。枚举值:
| |
model 用于生成响应的模型 ID。 | |
output 模型生成的输出项数组。数组中的元素类型和顺序取决于模型的响应。 | |
usage 本次请求的 Token 消耗信息。 | |
error 当模型生成响应失败时返回的错误对象。成功时为 | |
tools 回显请求中 | |
tool_choice 回显请求中 |
Response 响应 chunk 对象(流式输出) | 基础调用调用内置工具 |
流式输出返回一系列 JSON 对象。每个对象包含 | |
type 事件类型标识符。枚举值:
| |
sequence_number 事件序列号,从 0 开始递增。用于确保客户端按正确顺序处理事件。 | |
response 响应对象。出现在 | |
item 输出项对象。出现在 | |
part 内容块对象。出现在 | |
delta 增量文本内容。出现在 | |
text 完整文本内容。出现在 | |
item_id 输出项的唯一标识符。用于关联同一输出项的相关事件。 | |
output_index 输出项在 | |
content_index 内容块在 | |
summary_index 摘要数组索引。出现在 |
常见问题
Q:如何传递多轮对话的上下文?
A:在发起新一轮对话请求时,请将上一轮模型响应成功返回的id作为 previous_response_id 参数传入。
Q:为什么响应示例中的某些字段未在本文说明?
A:如果使用OpenAI的官方SDK,它可能会根据其自身的模型结构输出一些额外的字段(通常为null)。这些字段是OpenAI协议本身定义的,我们的服务当前不支持,所以它们为空值。只需关注本文档中描述的字段即可。