Qwen3.7-Max 免费开放了,我把接入流程跑了一遍,有几个限制得提前知道
上周四(5 月 22 号)通义千问把 Qwen3.7-Max 的免费 Tier 正式开放了,掘金好几个帖子在讨论。我正好手上有个内部知识库问答的项目在用 Qwen3.7 Plus,想着免费的旗舰模型不白嫖一下说不过去,就花了大半天把接入流程从头跑了一遍。结论是:免费版能用,但 RPM 和 TPM 的限制比想象中严格,如果你的业务有并发需求,得提前规划好降级策略。
先说结论
| 维度 | Qwen3.7-Max 免费 Tier | Qwen3.7-Max 付费版 | Qwen3.7 Plus 付费版 |
|---|---|---|---|
| 模型 ID | qwen-max-free |
qwen-max |
qwen-plus |
| RPM 上限 | 10 次/分钟 | 300 次/分钟 | 500 次/分钟 |
| TPM 上限 | 30,000 tokens/分 | 2,000,000 tokens/分 | 2,000,000 tokens/分 |
| 最大上下文 | 32K | 128K | 128K |
| 输出上限 | 2,048 tokens | 8,192 tokens | 8,192 tokens |
| 价格 | ¥0 | ¥0.02/千 tokens(输入) | ¥0.008/千 tokens(输入) |
看到没,免费版的 RPM 只有 10。十次。一分钟十次。说实话一开始我是拒绝的,但后来想想拿来做原型验证和个人小工具还是够用的。
环境准备
你需要:
- 通义千问开放平台账号(DashScope)
- Python 3.9+
- openai SDK >= 1.30(Qwen3.7 系列兼容 OpenAI 协议)
pip install openai --upgrade
去 DashScope 控制台拿到 API Key,免费版和付费版用同一个 Key,区别在模型 ID。
方案一:直接调 DashScope 官方接口
from openai import OpenAI
client = OpenAI(
api_key="sk-你的dashscope-key",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
response = client.chat.completions.create(
model="qwen-max-free", # 注意!免费版是 qwen-max-free,不是 qwen-max
messages=[
{"role": "system", "content": "你是一个技术助手"},
{"role": "user", "content": "解释一下 Python 的 GIL"}
],
max_tokens=2048,
temperature=0.7
)
print(response.choices[0].message.content)
最容易踩的坑就是模型 ID。我第一次填的 qwen-max,直接扣费了。免费版必须显式写 qwen-max-free,DashScope 文档里这个信息藏得挺深的,我翻了好几页才找到。
实测首次请求延迟大概 1.8s(冷启动),后续稳定在 600-900ms 之间。
方案二:通过聚合平台调用(适合多模型切换场景)
我项目里同时用了 GPT-5.5 做摘要、Claude Sonnet 4.6 做代码生成、Qwen3.7-Max 做中文问答,三个 base_url 维护起来挺烦人的。后来统一走聚合网关,改一个 model 参数就能切:
from openai import OpenAI
client = OpenAI(
api_key="your-ofox-key",
base_url="https://api.ofox.io/v1"
)
# 切模型只改这一行
response = client.chat.completions.create(
model="qwen-max-free",
messages=[
{"role": "user", "content": "Qwen3.7-Max 和 Qwen3.7 Plus 的主要区别是什么?"}
],
max_tokens=2048
)
聚合平台可以选 OpenRouter、ofox.io 这类,OpenRouter 收 5.5% 手续费,ofox 是 0% 加价对齐官方价格,对免费模型来说两者都不额外收费,主要区别在路由稳定性和管理后台。
方案三:Streaming 模式(推荐用于前端展示)
免费版也支持 SSE 流式输出,体感上第一个 token 出来比非流式快不少:
stream = client.chat.completions.create(
model="qwen-max-free",
messages=[{"role": "user", "content": "用三句话解释量子计算"}],
stream=True,
max_tokens=2048
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
实测 TTFT(Time To First Token)大概 420ms,这个数据在免费模型里算不错了。
踩坑记录
坑 1:模型 ID 填错不报错,直接扣费
前面提了。qwen-max 和 qwen-max-free 是两个独立的模型端点。填错了不会返回 403,而是正常响应然后从你余额里扣钱。我因为这个多花了 ¥0.3……虽然不多但膈应。
坑 2:超 RPM 的报错信息
超过 10 RPM 之后返回的不是标准的 429,而是这个:
{
"error": {
"message": "Rate limit reached for model `qwen-max-free` in organization org-xxx on requests per min (RPM): Limit 10, Used 10, Requested 1.",
"type": "requests_rate_limit",
"code": "rate_limit_exceeded"
}
}
好消息是格式和 OpenAI 的 429 一样,所以如果你代码里已经有 retry 逻辑,基本能兼容。
坑 3:输出被截断但没有明显提示
免费版 max_tokens 上限是 2048,但如果你不显式设置这个参数,默认值是 1500。我有个回答明显被截断了,看了半天才发现 finish_reason 返回的是 length 而不是 stop。建议每次都显式传 max_tokens=2048。
坑 4:与 Qwen3.7 Plus 的接口差异
这个折腾了我一会儿。两者都兼容 OpenAI Chat Completions 格式,但有几个字段行为不同:
| 字段 | Qwen3.7-Max Free | Qwen3.7 Plus |
|---|---|---|
tools (Function Calling) |
❌ 不支持 | ✅ 支持 |
response_format: json_object |
✅ 支持 | ✅ 支持 |
seed 参数 |
❌ 忽略 | ✅ 生效 |
top_p |
✅ 生效 | ✅ 生效 |
presence_penalty |
❌ 忽略(静默) | ✅ 生效 |
免费版不支持 Function Calling 这点对我影响最大。我原来的知识库问答用了 tool_use 来做结构化抽取,换到免费版之后只能改成 prompt engineering 硬凑 JSON 输出。
调用链路一览
graph LR
A[你的应用代码] --> B{选择接入方式}
B -->|直连| C[DashScope API]
B -->|聚合网关| D[ofox.io / OpenRouter]
C --> E[qwen-max-free]
D --> E
E --> F{RPM < 10?}
F -->|是| G[正常响应 600-900ms]
F -->|否| H[429 Rate Limit]
H --> I[等待 60s 重试]
我的降级策略
既然免费版 RPM 这么低,我写了个简单的 fallback 逻辑:
import time
from openai import OpenAI, RateLimitError
client = OpenAI(api_key="your-key", base_url="https://api.ofox.io/v1")
def smart_query(prompt, prefer_free=True):
model = "qwen-max-free" if prefer_free else "qwen-plus"
try:
resp = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
max_tokens=2048
)
return resp.choices[0].message.content
except RateLimitError:
if model == "qwen-max-free":
# 降级到付费版 Plus,便宜够用
return smart_query(prompt, prefer_free=False)
else:
time.sleep(5)
return smart_query(prompt, prefer_free=False)
平时低频场景走免费版,一旦触发限流自动切到 Qwen3.7 Plus。Plus 的输入价格才 ¥0.008/千 tokens,算下来一天跑几百次也就几毛钱。
小结
Qwen3.7-Max 免费版模型能力和付费版一致(同一个底座),限制也很明确:10 RPM、30K TPM、2048 输出上限、不支持 Function Calling。适合个人开发者做原型、写 demo、跑测试。
生产环境我建议直接上付费版或者 Qwen3.7 Plus——Plus 便宜一半多,RPM 还更高,除非你特别需要 Max 的推理能力。
免费版的 32K 上下文是永久策略还是公测期间的临时限制,我目前没找到明确说明,DashScope 文档也没提。等后续有更新再来补充。
更多推荐




所有评论(0)