
"通义千问 API 完整指南 2026:接入教程与最佳实践"
通义千问 API 完整指南 2026:接入教程与最佳实践#
通义千问(Qwen)是阿里云推出的大语言模型系列,在代码生成、多模态理解和中文任务上表现出色。本指南提供完整的 API 接入教程,适合开发者快速上手。
什么是通义千问?#
通义千问(Qwen)是阿里云达摩院开发的大型语言模型,具备以下特点:
- 强大的中文能力:在中文理解和生成方面领先众多国际模型
- 多模态支持:Qwen-VL 系列支持图像+文本理解
- 代码能力:Qwen3 Coder 系列专为编程任务优化
- 长上下文:支持最高 128K token 上下文窗口
- 开源可用:部分模型开源,支持本地部署
2026 年主要 Qwen 模型#
| 模型 | 参数量 | 特长 | 上下文 |
|---|---|---|---|
| Qwen2.5-VL-72B | 72B | 多模态视觉理解 | 128K |
| Qwen3-VL-235B | 235B (MoE) | 顶级视觉+语言 | 128K |
| Qwen3-Coder-72B | 72B | 代码生成 | 128K |
| Qwen2.5-72B | 72B | 通用语言 | 128K |
| Qwen2.5-14B | 14B | 轻量级部署 | 128K |
| Qwen2.5-Omni | 7B | 音视频多模态 | 32K |
如何获取通义千问 API#
方式一:阿里云官方 API#
- 访问 阿里云百炼平台
- 注册/登录阿里云账号
- 开通模型服务
- 在控制台创建 API Key
官方 API 定价(2026年4月):
| 模型 | 输入价格 | 输出价格 |
|---|---|---|
| Qwen2.5-72B-Instruct | ¥4.0/1M | ¥12.0/1M |
| Qwen3-VL-235B | ¥21.0/1M | ¥63.0/1M |
| Qwen2.5-VL-72B | ¥4.5/1M | ¥13.5/1M |
方式二:通过 Crazyrouter 使用#
Crazyrouter 提供 OpenAI 兼容的 API 接口,可以用同一套代码访问通义千问及 300+ 其他模型。
Crazyrouter 通义千问定价:
| 模型 | 输入价格 | 输出价格 | 节省 |
|---|---|---|---|
| Qwen2.5-VL-72B | ~$0.40/1M | ~$1.20/1M | 约25-30% |
| Qwen3-Coder-72B | ~$0.45/1M | ~$1.80/1M | 约25% |
快速开始:代码示例#
Python 示例#
from openai import OpenAI
# 通过 Crazyrouter 访问通义千问(无需额外配置)
client = OpenAI(
api_key="your-crazyrouter-api-key",
base_url="https://crazyrouter.com/v1"
)
# 基础对话
response = client.chat.completions.create(
model="qwen2.5-vl-72b-instruct",
messages=[
{
"role": "system",
"content": "你是一个专业的AI助手,擅长中文理解和代码生成。"
},
{
"role": "user",
"content": "用Python写一个计算斐波那契数列的函数,要求支持记忆化"
}
],
max_tokens=2048,
temperature=0.1 # 代码任务用低temperature
)
print(response.choices[0].message.content)
流式输出示例#
# 流式输出,适合长文生成
stream = client.chat.completions.create(
model="qwen2.5-vl-72b-instruct",
messages=[
{"role": "user", "content": "详细解释一下大型语言模型的工作原理"}
],
stream=True,
max_tokens=4096
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print() # 换行
多模态图像理解(Qwen-VL)#
import base64
def analyze_image(image_path: str, question: str) -> str:
"""使用 Qwen-VL 分析图像"""
# 读取并编码图像
with open(image_path, "rb") as f:
image_data = base64.b64encode(f.read()).decode("utf-8")
# 获取图像格式
ext = image_path.split(".")[-1].lower()
mime_type = f"image/{ext}"
response = client.chat.completions.create(
model="qwen2.5-vl-72b-instruct",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": f"data:{mime_type};base64,{image_data}"
}
},
{
"type": "text",
"text": question
}
]
}
],
max_tokens=1024
)
return response.choices[0].message.content
# 使用示例
result = analyze_image(
"product_screenshot.png",
"请描述这张图片中的内容,并指出任何UI问题"
)
print(result)
Node.js 示例#
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.CRAZYROUTER_API_KEY,
baseURL: 'https://crazyrouter.com/v1',
});
// 中文问答
async function askQwen(question) {
const response = await client.chat.completions.create({
model: 'qwen2.5-vl-72b-instruct',
messages: [
{
role: 'system',
content: '你是一个专业助手,请用清晰的中文回答问题。'
},
{
role: 'user',
content: question
}
],
max_tokens: 2048,
temperature: 0.7,
});
return response.choices[0].message.content;
}
// 使用示例
const answer = await askQwen('如何优化 Node.js 应用的内存使用?');
console.log(answer);
cURL 示例#
curl https://crazyrouter.com/v1/chat/completions \
-H "Authorization: Bearer your-crazyrouter-key" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-vl-72b-instruct",
"messages": [
{
"role": "user",
"content": "用Python实现一个简单的HTTP服务器"
}
],
"max_tokens": 2048,
"temperature": 0.1
}'
通义千问 vs 其他模型对比#
中文能力对比#
| 模型 | 中文理解 | 中文生成 | 文化理解 |
|---|---|---|---|
| Qwen2.5-72B | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| DeepSeek V3.2 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Claude Opus 4.6 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| GPT-5.2 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| Gemini 3 Pro | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| GLM-4.6 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
代码能力对比(Qwen Coder)#
| 模型 | HumanEval | 价格(输入) | 适用场景 |
|---|---|---|---|
| Qwen3-Coder-72B | 78.6% | ~$0.45/1M | 开源替代方案 |
| Claude Sonnet 4.5 | 88.3% | $3/1M | 最佳商业平衡 |
| DeepSeek V3.2 | 82.4% | $0.27/1M | 最优性价比 |
| GPT-5 Mini | 72.1% | $0.15/1M | 最低成本 |
实际应用场景#
1. 中文内容生成#
def generate_chinese_content(topic: str, style: str = "professional") -> str:
"""生成高质量中文内容"""
style_prompts = {
"professional": "请用专业、正式的语气撰写",
"casual": "请用轻松、口语化的风格撰写",
"technical": "请用技术性语言,包含具体数据和例子"
}
response = client.chat.completions.create(
model="qwen2.5-vl-72b-instruct",
messages=[
{
"role": "system",
"content": f"{style_prompts.get(style)},确保内容准确、流畅、符合中文表达习惯。"
},
{
"role": "user",
"content": f"请为我撰写一篇关于「{topic}」的文章,约800字。"
}
],
max_tokens=2000
)
return response.choices[0].message.content
# 使用示例
article = generate_chinese_content("人工智能在医疗领域的应用", "professional")
2. 中英文翻译与本地化#
def translate_and_localize(text: str, target_lang: str) -> str:
"""翻译并本地化内容"""
prompt_map = {
"zh": f"请将以下英文内容翻译成自然流畅的中文,注意文化适配:\n\n{text}",
"en": f"请将以下中文内容翻译成自然流畅的英文,注意文化适配:\n\n{text}"
}
response = client.chat.completions.create(
model="qwen2.5-vl-72b-instruct",
messages=[
{"role": "user", "content": prompt_map.get(target_lang, prompt_map["en"])}
],
temperature=0.3
)
return response.choices[0].message.content
3. 文档问答系统#
def document_qa(document: str, question: str) -> str:
"""基于文档的智能问答"""
response = client.chat.completions.create(
model="qwen2.5-vl-72b-instruct",
messages=[
{
"role": "system",
"content": "你是一个专业的文档分析助手。请根据提供的文档内容回答用户问题,如果文档中没有相关信息,请明确说明。"
},
{
"role": "user",
"content": f"文档内容:\n{document}\n\n问题:{question}"
}
],
max_tokens=1024,
temperature=0.1
)
return response.choices[0].message.content
最佳实践与注意事项#
1. 温度设置建议#
| 任务类型 | 推荐 temperature |
|---|---|
| 代码生成 | 0.0-0.2 |
| 事实问答 | 0.1-0.3 |
| 翻译 | 0.2-0.4 |
| 创意写作 | 0.7-1.0 |
| 头脑风暴 | 0.8-1.2 |
2. System Prompt 中文优化#
# ✅ 好的系统提示
system_prompt = """你是一位专业的助手。请注意:
1. 优先使用简洁准确的中文表达
2. 避免过度翻译英文词汇,适当保留通用技术词汇
3. 回答要结构清晰,重点突出
4. 代码示例用注释说明关键步骤"""
# ❌ 较差的系统提示
system_prompt = "Be helpful and answer in Chinese."
3. 长上下文管理#
def chat_with_memory(history: list, new_message: str, max_context_tokens: int = 4096):
"""带历史的对话,自动管理上下文长度"""
# 简单的历史截断策略
messages = history[-10:] # 保留最近10轮对话
messages.append({"role": "user", "content": new_message})
response = client.chat.completions.create(
model="qwen2.5-vl-72b-instruct",
messages=messages,
max_tokens=2048
)
reply = response.choices[0].message.content
history.append({"role": "user", "content": new_message})
history.append({"role": "assistant", "content": reply})
return reply, history
常见问题#
Q: 通义千问 API 和 ChatGPT API 有什么区别? A: 通义千问在中文任务上表现更优秀,价格也更有竞争力。对于中文为主的应用,Qwen 通常是更好的选择。
Q: 如何在中国大陆使用通义千问 API? A: 阿里云官方 API 在国内可以直接访问。通过 Crazyrouter 也可以访问,无需额外网络配置。
Q: Qwen 模型支持 Function Calling 吗? A: 是的,Qwen2.5 系列模型支持 Function Calling(工具调用),API 格式与 OpenAI 兼容。
Q: 通义千问的知识截止日期是什么? A: Qwen2.5 系列的训练数据截止至 2024 年底。部分模型可结合搜索工具获取最新信息。
Q: 如何批量处理大量请求? A: 使用异步请求和并发控制:
import asyncio
from openai import AsyncOpenAI
async_client = AsyncOpenAI(
api_key="your-crazyrouter-key",
base_url="https://crazyrouter.com/v1"
)
async def batch_process(texts: list[str]) -> list[str]:
tasks = [
async_client.chat.completions.create(
model="qwen2.5-vl-72b-instruct",
messages=[{"role": "user", "content": text}],
max_tokens=512
)
for text in texts
]
responses = await asyncio.gather(*tasks)
return [r.choices[0].message.content for r in responses]
总结#
通义千问(Qwen)是 2026 年中文 AI 任务的顶级选择:
- 中文能力最强:在所有商业模型中,中文理解和生成排名前列
- 多模态覆盖广:从纯文本到图像理解、音视频,一套 API 搞定
- 开源生态丰富:Qwen 系列有大量开源模型可本地部署
- 性价比高:尤其是通过 Crazyrouter 访问,成本比官方更低
无论是构建中文内容生成、文档分析、还是多语言应用,通义千问都是值得优先考虑的选择。
→ 在 Crazyrouter 上使用通义千问 API(OpenAI 兼容,一个 Key 访问 300+ 模型)
