通过 DashScope 兼容模式用 OpenAI SDK 调用 Qwen3.7 Plus
2026年7月23日 · 18 分钟阅读 · Claude / GPT / Gemini

Qwen3.7 Plus 已经便宜到值得认真测试:截至 2026 年 7 月 23 日,Qwen Cloud 对 qwen3.7-plus 的标价为:最高 256K 输入 token 时,每 1M 输入 token $0.40、每 1M 输出 token $1.60;从 256K 到 1M 时,输入为 $1.20、输出为 $4.80(Qwen Cloud pricing)。这是在你重写任何东西之前值得做这次迁移的主要原因。
真正有用的是 API 形态。Qwen Cloud 文档提供了一个兼容 OpenAI 的 Chat Completions 端点:
https://dashscope-intl.aliyuncs.com/compatible-mode/v1
它自己的迁移页面说明,现有 OpenAI SDK 代码只需修改 base_url、api_key 和 model 即可切换,并且示例使用 model="qwen3.7-plus"(Qwen Cloud OpenAI compatibility)。这意味着大多数聊天应用、评测脚本、小型 agent 和内部工具都可以在几分钟内完成迁移。需要注意的部分是思考参数、被忽略的 OpenAI 字段、长上下文定价和缓存行为。

1. 设置客户端
安装官方 OpenAI Python SDK:
python -m pip install --upgrade openai
设置你的 DashScope 密钥:
export DASHSCOPE_API_KEY="sk-your-dashscope-key"
然后发起一个尽可能简单的 Chat Completions 调用:
# qwen_chat.py
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "system", "content": "You are a concise senior Python engineer."},
{"role": "user", "content": "Write a Python function that chunks a list into size-n batches."},
],
temperature=0.2,
)
print(completion.choices[0].message.content)
print(completion.usage)
运行它:
python qwen_chat.py
同样的模式也适用于 Node。Qwen Cloud 的快速迁移页面也展示了 JavaScript SDK 中使用 baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" 和 model: "qwen3.7-plus"(Qwen Cloud OpenAI compatibility)。
如果你维护的代码需要在多个服务商之间切换,请把服务商配置放在调用点之外:
PROVIDERS = {
"qwen": {
"api_key_env": "DASHSCOPE_API_KEY",
"base_url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
"model": "qwen3.7-plus",
}
}
def make_client(provider_name: str) -> tuple[OpenAI, str]:
cfg = PROVIDERS[provider_name]
return (
OpenAI(
api_key=os.environ[cfg["api_key_env"]],
base_url=cfg["base_url"],
),
cfg["model"],
)
OpenAI SDK 本身支持 base_url、自定义超时、重试和原始响应访问;其 README 记录了对连接错误、408、409、429 和 500 级错误的自动重试,以及 max_retries 和 timeout 选项(openai-python)。
2. 迁移参数,而不只是 URL
理想路径很简单。棘手之处在于参数差异。
Qwen Cloud 表示 Chat Completions API 与 OpenAI 的 Chat API 大体兼容,但 Qwen 专属参数必须通过 Python SDK 中的 extra_body 传入(Qwen Cloud OpenAI compatibility)。这对思考、搜索以及一些采样控制很重要。
启用思考的示例:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
stream = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "user", "content": "Find the bug in this retry loop and explain the fix."}
],
extra_body={
"enable_thinking": True,
"thinking_budget": 500,
},
stream=True,
)
for chunk in stream:
if not chunk.choices:
continue
delta = chunk.choices[0].delta
if getattr(delta, "reasoning_content", None):
print(delta.reasoning_content, end="", flush=True)
if getattr(delta, "content", None):
print(delta.content, end="", flush=True)
Qwen 的思考指南说明,enable_thinking 会为混合模型开启推理,thinking_budget 会限制思考 token 数,并且思考 token 会按输出 token 计费(Qwen Cloud thinking)。最后一点很容易被开发者忽略。一个模型在写出 300-token 答案之前先思考了 2,000 个 token,这并不是一次 300-token 输出调用。
在迁移生产代码之前,也要检查不支持的 OpenAI 字段。Qwen Cloud 表示,在 Chat Completions 兼容模式中,包括 reasoning_effort、max_completion_tokens、metadata、store、verbosity、prompt_cache_key 以及其他几个字段会被静默忽略(Qwen Cloud OpenAI compatibility)。如果你的 OpenAI 应用依赖其中某个字段来控制成本或产品行为,请显式替换它。
3. 发送前先估算长上下文价格
qwen3.7-plus 的价格分层很简单,但影响很实际。
| 单次请求的输入 token | 输入价格 / 1M | 输出价格 / 1M |
|---|---|---|
| ≤ 256K | $0.40 | $1.60 |
| 256K 到 1M | $1.20 | $4.80 |
5 月 26 日快照的模型市场页面将 qwen3.7-plus-2026-05-26 列为支持文本、图像和视频输入、文本输出的模型,并标识为 2026 年 5 月 26 日的快照(Qwen Cloud model page)。Qwen Cloud 更新日志则在 2026 年 6 月 1 日下分别列出了 qwen3.7-plus 和 qwen3.7-plus-2026-05-26,并描述 Plus 系列在保留编码、工具使用和生产力工作流能力的同时,增加了升级后的视觉语言能力(Qwen Cloud model releases)。
对于产品代码,请增加一个预检估算器。你不需要完美的 tokenization,也能防止意外的 900K-token 调用落入更昂贵的档位。
def estimate_qwen37_plus_cost(input_tokens: int, output_tokens: int) -> float:
if input_tokens <= 256_000:
input_per_m = 0.40
output_per_m = 1.60
else:
input_per_m = 1.20
output_per_m = 4.80
return (input_tokens / 1_000_000 * input_per_m) + (
output_tokens / 1_000_000 * output_per_m
)
print(estimate_qwen37_plus_cost(180_000, 4_000)) # 0.0784
print(estimate_qwen37_plus_cost(400_000, 4_000)) # 0.4992
第二次调用并不只是“多一点上下文”。它跨过了一个价格档位边界。

4. 前缀重复时使用缓存
上下文缓存能让 Qwen 在重复长提示场景下显著变便宜。Qwen Cloud 文档说明了三种缓存模式:显式缓存、隐式缓存和会话缓存(Qwen Cloud context cache)。
计费规则很明确:
| 缓存模式 | 创建成本 | 命中成本 | 最小缓存 token 数 |
|---|---|---|---|
| 显式缓存 | 标准输入的 125% | 标准输入的 10% | 1,024 |
| 隐式缓存 | 标准输入的 100% | 标准输入的 20% | 256 |
| 会话缓存 | 标准输入的 125% | 标准输入的 10% | 1,024 |
对于 ≤256K 档位的 qwen3.7-plus,这对应模型页面上的每 1M 隐式缓存命中 token $0.08、每 1M 显式缓存创建 token $0.50,以及每 1M 显式缓存读取 token $0.04(Qwen Cloud model page)。
将缓存用于稳定前缀:政策文档、长系统提示、工具手册、schema 或代码库摘要。不要指望它拯救每个请求开头都不同的提示。Qwen Cloud 还表示,Batch 和缓存折扣不能在同一请求中叠加使用(Qwen Cloud pricing)。
5. 生产检查清单和网关选项
切换流量之前,请测试这些情况:
- 基础非流式聊天。
- 流式聊天。
- 使用
extra_body的思考模式。 - 如果你的应用使用函数,请测试工具调用。
- JSON 输出,记住 Qwen 兼容模式支持
json_object,而不是 OpenAI 的json_schema。 - 接近 256K 输入 token 的长提示。
- 大量缓存、重复前缀的调用。
- 重试和超时行为。
对于跨模型家族的 fallback 路由,onehop 是简单路径。将一个 OpenAI SDK base URL 改为 https://api.onehop.ai/v1,并用一个网关接入 GPT、Claude、Gemini 和其他模型。OneHop 文档提供了兼容 OpenAI 的 https://api.onehop.ai/v1、兼容 Anthropic 的 https://api.onehop.ai/anthropic,以及兼容 Vertex/Gemini 的 https://api.onehop.ai/vertex-ai 端点(onehop docs)。它也被定位为比一方渠道更便宜,新账号可获得 $10 免费额度且无需绑卡。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ONEHOP_API_KEY"],
base_url="https://api.onehop.ai/v1",
)
response = client.chat.completions.create(
model="openai/gpt-5.5",
messages=[{"role": "user", "content": "Summarize this incident report in 5 bullets."}],
)
print(response.choices[0].message.content)
这并不会替代上面的 Qwen 专属工作。它提供了一条更干净的路径:当你的应用某个工作流需要 Claude、另一个需要 GPT、还要用 Gemini 做多模态测试时,无需接入三套计费系统和三套 SDK 配置。可以从这里开始在 onehop 上调用 Claude 和其他模型,或者注册领取 $10 免费额度。
6. 实用迁移方式
迁移一开始只有三行,直到事情不再这么简单:base_url、api_key、model。之后真正的工作是移除被忽略的 OpenAI 参数,把 Qwen 控制项移到 extra_body,并为长上下文加上硬性防护。
当你想要一个兼顾成本、长上下文和多模态输入支持的模型时,可以使用 qwen3.7-plus。对于简单抽取和分类,保持思考关闭。对于代码审查、工具编排或多步推理,开启它,并设置 thinking_budget,避免成本漂移。缓存稳定前缀。留意 256K 档位边界。
对于同一产品中还需要 Claude、GPT 或 Gemini 的团队,请保留一条网关路径:在 onehop 上调用 Claude 和其他模型,然后在你想要不绑卡进行真实冒烟测试时,注册领取 $10 免费额度。
相关阅读

使用 OpenAI SDK 调用 Groq GPT-OSS 120B:Base URL、定价与缓存
只需替换 OpenAI SDK 的 base URL,即可在 Groq 上运行 GPT-OSS 120B,估算缓存 token 成本,并避免工具计费意外。
2026年6月17日 · 18 分钟阅读

用 OpenAI SDK 调 Gemini API:只改 base_url、API Key 和模型名的迁移教程
面向已有 OpenAI SDK 项目的 Gemini 兼容接口迁移清单,含代码、参数映射和价格。
2026年6月14日 · 9 分钟阅读

用 OpenAI SDK 调 Gemini API:只改 base_url、key 和模型名的接入教程
已有 OpenAI SDK 代码接入 Gemini,最小改动只需三处配置。
2026年6月14日 · 9 分钟阅读