只需修改 base_url、api_key 和 model 三个参数,即可从 OpenAI 迁移到千问云。
千问云提供 OpenAI 兼容的 API。如果您已有使用 OpenAI SDK 或 REST API 的代码,只需修改
Chat Completions API(
以下参数不属于 OpenAI 标准。在 OpenAI SDK 中通过
以下参数会被静默忽略:
Responses API 使用不同的 base_url:
从 Chat Completions 切换到 Responses API:
Embedding API(
File API(
Batch API(
Conversations API 是 Qwen 特有的功能,在 OpenAI 中没有对应接口。它可以跨设备和会话自动管理多轮对话上下文,
base_url、api_key 和 model 三个参数即可切换到 Qwen 模型。
快速迁移
- Python
- Node.js
- curl
开始前,请先获取 API Key 并设置为环境变量。如使用 OpenAI SDK,请先安装 SDK。
支持的 API
| API | Base URL(SDK 使用) | 说明 |
|---|---|---|
| Chat Completions | https://dashscope.aliyuncs.com/compatible-mode/v1 | 文本生成、视觉理解、函数调用 |
| Responses | https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1 | 内置工具、简化多轮对话 |
| Embedding | https://dashscope.aliyuncs.com/compatible-mode/v1 | 文本向量化 |
| File | https://dashscope.aliyuncs.com/compatible-mode/v1 | 文件上传与管理 |
| Batch | https://dashscope.aliyuncs.com/compatible-mode/v1 | 异步批量处理,成本降低 50% |
| Conversations | https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1 | 自动管理多轮对话上下文 |
Responses API 和 Conversations API 的
base_url 与其他四个 API 不同,请确保使用正确的 base_url。Chat Completions
Chat Completions API(/v1/chat/completions)与 OpenAI 的 Chat API 基本兼容,主要差异如下。
Qwen 扩展参数
以下参数不属于 OpenAI 标准。在 OpenAI SDK 中通过 extra_body 传入。
| 参数 | 类型 | 说明 |
|---|---|---|
enable_thinking | Boolean | 启用深度推理模式。部分模型需要开启流式输出。参见深度思考。 |
thinking_budget | Integer | 思考过程的最大 token 数。流式输出要求与 enable_thinking 相同。 |
enable_search | Boolean | 启用联网搜索,替代 OpenAI 的 web_search_options。 |
search_options | Object | 配置搜索行为(策略、强制搜索等)。 |
top_k | Integer | 采样候选集大小。取值范围:(0, 100]。 |
vl_high_resolution_images | Boolean | 为视觉模型启用高分辨率模式。 |
enable_code_interpreter | Boolean | 启用代码解释器。需要开启流式输出(Responses API 除外)。 |
行为差异
response_format支持json_object和json_schema。tool_choice支持auto、none、required和指定函数对象({"type": "function", "function": {"name": "..."}})。tools仅支持function类型。parallel_tool_calls默认为true(与 OpenAI 一致)。n支持 1-4,仅限部分模型(qwen-plus、qwen-plus-character)。web_search_options不支持,请改用extra_body.enable_search和extra_body.search_options。
不支持的参数
以下参数会被静默忽略:frequency_penalty、logit_bias、max_completion_tokens、metadata、prediction、prompt_cache_key、reasoning_effort、service_tier、store、verbosity。
完整 API 参考和代码示例,参见 Chat Completions。
Responses API
Responses API 使用不同的 base_url:https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1。
相比 Chat Completions,Responses API 提供:
- 内置工具:
web_search、code_interpreter、web_extractor和image_search,无需额外配置。 - 简化多轮对话:传入
previous_response_id即可,无需手动构建完整消息历史。 - 对话集成:配合 Conversations API 实现自动上下文管理。
- 会话缓存:自动缓存跨轮次上下文,降低延迟和成本。通过
x-dashscope-session-cache: enable请求头启用。参见会话缓存。
从 Chat Completions 迁移
从 Chat Completions 切换到 Responses API:
- 将
base_url修改为https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1,接口路径从/v1/chat/completions改为/v1/responses。 - 用
output_text替代choices[0].message.content读取响应。 - 多轮对话时传入
previous_response_id,无需手动追加消息。
Embedding
Embedding API(/v1/embeddings)与 OpenAI 的 Embedding API 兼容,主要差异:
encoding_format:支持float(默认)和base64。user:不支持(静默忽略)。dimensions:可选值取决于模型。例如text-embedding-v4支持 2,048、1,536、1,024(默认)、768、512、256、128 和 64。
File API
File API(/v1/files)与 OpenAI 的 Files API 兼容,主要差异:
purpose仅支持file-extract(用于 Qwen-Long/Qwen-Doc 文档分析)和batch(用于批量处理)。不支持 OpenAI 的fine-tune、assistants等值。- 文件内容获取(
GET /v1/files/{file_id}/content)不支持。 - 列表过滤:
GET /v1/files的purpose和order参数不支持。 - 存储限制:最多 10,000 个文件,总容量 100 GB,文件永不过期。
Batch API
Batch API(/v1/batches)与 OpenAI 的 Batch API 兼容,主要差异:
- 成本降低 50%:相比实时调用价格。
completion_window:支持 24h 到 336h(14 天),接受 "h"(小时)和 "d"(天)为单位的整数值。OpenAI 固定为 24h。- 扩展元数据:
metadata.ds_name(任务名称)和metadata.ds_description(任务描述)。 - 扩展列表过滤:支持
ds_name、input_file_ids、status、create_after、create_before。 - 输入文件限制:每个文件最多 50,000 条请求,单个文件大小不超过 500 MB,单行不超过 6 MB。同一文件中的所有请求必须使用相同模型。
Conversations API
Conversations API 是 Qwen 特有的功能,在 OpenAI 中没有对应接口。它可以跨设备和会话自动管理多轮对话上下文,base_url 与 Responses API 相同:https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1。
配合 Responses API 使用,可自动注入历史上下文,无需手动同步消息。
完整参考,参见 Conversations。