🌱入门API集成通义千问 Qwen

如何接入通义千问到 WorkBuddy

从零开始教你将阿里通义千问(Qwen3系列)接入 WorkBuddy,支持 OpenAI 兼容模式,含最新模型选型、定价对比和实战代码示例

教程团队
2026-04-17
1 个步骤
#通义千问#Qwen#阿里云#WorkBuddy#OpenAI兼容#大模型

前置条件

  • 1已注册阿里云账号并完成实名认证
  • 2了解基本的 API 调用概念
  • 3已安装 Python 3.8+ 环境

如何接入通义千问到 WorkBuddy

本教程将详细指导你如何将**阿里巴巴通义千问(Qwen)**接入 WorkBuddy 平台,利用其强大的中文理解能力和极具竞争力的价格,构建高效的 AI 自动化工作流。

信息

,[object Object], ,[object Object],

前置准备

在开始之前,请确保你已经完成以下准备工作:

  • 已注册阿里云账号并完成实名认证
  • 已开通百炼平台服务
  • 已安装 Python 3.8+ 或 Node.js 运行环境
  • 了解基础的终端命令操作

步骤一:获取 API Key

1.1 开通百炼服务

  1. 访问阿里云百炼控制台
  2. 使用阿里云账号登录(如未开通会自动引导)
  3. 同意服务协议,完成免费开通

1.2 创建 API Key

  1. 登录控制台后,点击右上角头像 → 进入「API-KEY 管理
  2. 点击「创建新的 API Key
  3. 复制生成的密钥(格式为
    text
    1sk-xxxxxxxx

信息

,[object Object],

1.3 配置环境变量(推荐)

bash
1# Linux / macOS
2export DASHSCOPE_API_KEY="sk-你的实际Key"
3
4# Windows PowerShell
5$env:DASHSCOPE_API_KEY="sk-你的实际Key"

步骤二:了解 Qwen 模型家族

通义千问已发展出完整的模型矩阵,不同模型适用于不同场景。以下是 2026 年最新版本的选型指南:

模型名称参数规模上下文最大输出核心定位
Qwen3 Max万亿级 MoE256K32K🔥 通用旗舰,推理能力最强
Qwen 3.5 397B397B (MoE)256K32K视觉-语言多模态(图片/GUI理解)
Qwen3.6 Plus Preview未公开1M65KAgent 开发(原生 Function Calling)
Qwen3 Coder Next未公开256K64K代码专精(防截断长代码)
Qwen Plus未公开1M32K性价比之王的日常选择
Qwen Flash未公开1M8K极速响应,轻量任务

定价参考(美元/百万 tokens)

模型输入价格输出价格特点
Qwen3 Max$0.36$1.43缓存读取仅 $0.072(降本80%)
Qwen Plus$0.12$0.29百万上下文中最低价
Qwen3 Coder Next$0.20$1.50代码场景优化
Qwen Flash极低极低免费额度充足

信息

,[object Object],

步骤三:配置与接入

方案 A:通过 OpenAI 兼容模式(推荐 ✅)

通义千问完全兼容 OpenAI 接口协议,这是最简单的接入方式:

Python 示例

python
1from openai import OpenAI
2import os
3
4# 初始化客户端 — 指向阿里云 DashScope 兼容端点
5client = OpenAI(
6    api_key=os.getenv("DASHSCOPE_API_KEY", "sk-你的Key"),
7    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
8)
9
10def ask_qwen(prompt: str, model: str = "qwen-plus") -> str:
11    """发送请求给通义千问"""
12    try:
13        completion = client.chat.completions.create(
14            model=model,
15            messages=[
16                {"role": "system", "content": "你是一个有帮助的 AI 助手。"},
17                {"role": "user", "content": prompt}
18            ],
19            temperature=0.7,       # 0=严谨, 1=有创意
20            max_tokens=2000        # 最大输出长度
21        )
22        return completion.choices[0].message.content
23    except Exception as e:
24        print(f"❌ 调用失败: {e}")
25        return None
26
27# 测试调用
28if __name__ == "__main__":
29    response = ask_qwen("用一句话解释什么是量子计算")
30    print(f"🤖 Qwen 回答:{response}")

Node.js 示例

javascript
1import OpenAI from "openai";
2
3const client = new OpenAI({
4  apiKey: process.env.DASHSCOPE_API_KEY || "sk-你的Key",
5  baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
6});
7
8async function askQwen(prompt) {
9  const completion = await client.chat.completions.create({
10    model: "qwen-plus",
11    messages: [
12      { role: "system", content: "你是一个有帮助的 AI 助手。" },
13      { role: "user", content: prompt },
14    ],
15    temperature: 0.7,
16  });
17
18  return completion.choices[0]?.message?.content;
19}
20
21// 使用示例
22console.log(await askQwen("用三行诗形容春天的美"));

流式输出示例(Python)

python
1from openai import OpenAI
2
3client = OpenAI(
4    api_key="sk-你的Key",
5    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
6)
7
8# 流式输出 — 实时打印每个字
9stream = client.chat.completions.create(
10    model="qwen-plus",
11    messages=[{"role": "user", "content": "写一首关于AI的诗"}],
12    stream=True,
13)
14
15print("\n🤖 流式输出:")
16for chunk in stream:
17    if chunk.choices[0].delta.content:
18        print(chunk.choices[0].delta.content, end="", flush=True)

方案 B:通过 DashScope SDK 接入

如果需要使用通义千问独有能力(如语音识别等),可以使用官方 SDK:

bash
1pip install dashscope
python
1import dashscope
2from dashscope import Generation
3
4dashscope.api_key = "sk-你的Key"
5
6response = Generation.call(
7    model="qwen-max",
8    prompt='解释什么是机器学习',
9)
10
11print(response.output.text)

方案 C:集成到 WorkBuddy 配置

如果你正在使用 WorkBuddy 平台,可以在配置文件中设置:

json
1{
2  "llm_provider": "qwen",
3  "qwen_config": {
4    "api_key": "${DASHSCOPE_API_KEY}",
5    "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
6    "model": "qwen-plus",
7    "temperature": 0.7,
8    "max_tokens": 4000
9  }
10}

信息

,[object Object],

步骤四:测试验证

运行以下测试脚本,确认接入成功:

python
1"""通义千问连接性测试脚本"""
2import os
3import json
4from openai import OpenAI
5
6def test_connection():
7    client = OpenAI(
8        api_key=os.getenv("DASHSCOPE_API_KEY"),
9        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
10    )
11    
12    print("🔍 正在测试连接...")
13    
14    try:
15        # 1. 基础连通测试
16        resp = client.chat.completions.create(
17            model="qwen-plus",
18            messages=[{"role": "user", "content": "你好,请回复「连接成功」"}],
19            timeout=30
20        )
21        
22        content = resp.choices[0].message.content
23        print(f"✅ 连接成功!回复:{content[:50]}...")
24        
25        # 2. 模型信息
26        print(f"📋 模型ID: {resp.model}")
27        print(f"📋 Token 用量: 输入={resp.usage.prompt_tokens}, 输出={resp.usage.completion_tokens}")
28        
29        return True
30        
31    except Exception as e:
32        print(f"❌ 连接失败: {e}")
33        return False
34
35if __name__ == "__main__":
36    success = test_connection()
37    exit(0 if success else 1)

预期输出:

text
1🔍 正在测试连接...
2✅ 连接成功!回复:连接成功!很高兴为你服务...
3📋 模型ID: qwen-plus
4📋 Token 用量: 输入=28, 输出=18

场景应用示例

场景 1:智能文档摘要生成

适合处理大量报告、论文或技术文档的快速提炼。

python
1from openai import OpenAI
2
3client = OpenAI(
4    api_key="sk-你的Key",
5    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
6)
7
8def summarize_document(text: str, lang: str = "zh") -> str:
9    """生成长文档的结构化摘要"""
10    response = client.chat.completions.create(
11        model="qwen-plus",          # 长文档用 plus(支持 1M 上下文)
12        messages=[{
13            "role": "system",
14            "content": f"你是一位专业的文档分析师。请用{['中文', '英文'][lang != 'zh']}输出以下内容的结构化摘要,包含:\n"
15                       "- 一句话总结\n"
16                       "- 3-5 个关键要点\n"
17                       "- 主要结论"
18        }, {
19            "role": "user",
20            "content": text
21        }],
22        temperature=0.3             # 低温度保证摘要准确
23    )
24    return response.choices[0].message.content
25
26# 使用示例
27long_text = """这里粘贴需要摘要的长文本..."""
28summary = summarize_document(long_text)
29print(summary)

预期效果:

  • 支持最长 100 万 token 的输入文档
  • 结构化输出,便于后续处理
  • 成本极低(Qwen Plus 仅 $0.12/百万输入 token)

场景 2:Function Calling / Agent 开发

使用 Qwen3.6 Plus Preview 的原生 Function Calling 能力构建智能 Agent。

python
1from openai import OpenAI
2import json
3
4client = OpenAI(
5    api_key="sk-你的Key",
6    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
7)
8
9# 定义可用的工具函数
10tools = [
11    {
12        "type": "function",
13        "function": {
14            "name": "get_weather",
15            "description": "查询指定城市的实时天气",
16            "parameters": {
17                "type": "object",
18                "properties": {
19                    "city": {"type": "string", "description": "城市名称"}
20                },
21                "required": ["city"]
22            }
23        }
24    },
25    {
26        "type": "function",
27        "function": {
28            "name": "search_stock",
29            "description": "查询股票实时行情",
30            "parameters": {
31                "type": "object",
32                "properties": {
33                    "symbol": {"type": "string", "description": "股票代码"}
34                },
35                "required": ["symbol"]
36            }
37        }
38    }
39]
40
41# 发送带工具的请求
42response = client.chat.completions.create(
43    model="qwen3.6-plus-preview",   # Agent 专用模型
44    messages=[{
45        "role": "user",
46        "content": "今天深圳天气怎么样?茅台股票现在多少钱?"
47    }],
48    tools=tools,
49    tool_choice="auto"              # 让模型自动决定是否调用工具
50)
51
52# 解析函数调用结果
53for choice in response.choices:
54    if choice.message.tool_calls:
55        for tool_call in choice.message.tool_calls:
56            print(f"🔧 调用工具: {tool_call.function.name}")
57            print(f"📝 参数: {tool_call.function.arguments}")

预期效果:

  • 模型自动拆解用户意图,分别调用天气和股票查询
  • Function Calling 返回格式稳定,解析失败率低
  • 支持
    text
    1preserve_thinking
    参数保留推理过程

场景 3:多模态图片理解

使用 Qwen 3.5 进行图片分析和图表解读。

python
1from openai import OpenAI
2
3client = OpenAI(
4    api_key="sk-你的Key",
5    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
6)
7
8def analyze_image(image_path: str, question: str) -> str:
9    """分析图片内容"""
10    import base64
11    
12    with open(image_path, "rb") as f:
13        image_data = base64.b64encode(f.read()).decode("utf-8")
14
15    response = client.chat.completions.create(
16        model="qwen-vl-max",      # 或 qwen3.5-397b-a17b
17        messages=[{
18            "role": "user",
19            "content": [
20                {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_data}"}},
21                {"type": "text", "text": question}
22            ]
23        }]
24    )
25    return response.choices[0].message.content
26
27# 使用示例
28result = analyze_image("chart.png", "这张图表展示了什么趋势?请用中文分析。")
29print(result)

预期效果:

  • 支持图表分析、GUI 截图识别
  • OCR 文字提取与语义理解
  • 397B 参数量保障复杂图像的理解精度

最佳实践

安全建议

建议说明
🔒 环境变量存储绝不将 API Key 写入源码或提交至 Git 仓库
🔄 定期轮换 Key每 90 天更换一次 API Key,降低泄露风险
📊 监控用量设置费用告警阈值,避免意外超额
🛡️ 后端代理调用Web 应用中不要在前端暴露 Key

性能优化

优化手段效果
Prompt Caching重复输入成本降低 80%(Qwen3 Max 缓存读取 $0.072/M)
合理选型日常对话用 Qwen Plus,复杂推理才升级 Qwen3 Max
批量请求多条独立问题合并为单次 batch 调用
流式输出提升用户体验,降低首字延迟感知
max_tokens 设限避免不必要的长输出浪费 token

故障排查速查表

错误现象可能原因解决方案
text
1InvalidApiKey
Key 错误或已失效检查控制台重新创建 Key
text
1RateLimitError
请求频率过高加入指数退避重试机制
text
1QuotaExceeded
额度耗尽充值或在控制台提升配额
text
1ModelNotFoundError
模型名称错误对照上文的模型名称表格检查
连接超时网络问题检查代理设置,超时时间设为 30s+
中文乱码编码问题确保 UTF-8 编码

成本估算参考

Qwen Plus 为例($0.12 输入 / $0.29 输出 per 百万 token):

场景日均调用量月预估成本
个人轻量使用~500 次$2~5
小型项目~5,000 次$20~50
中型应用~50,000 次$200~500
大规模生产500,000+ 次$2,000+

信息

,[object Object],

扩展与进阶

相关资源

资源链接
📘 官方文档DashScope 开发者指南
🎮 在线体验通义千问官网
💻 GitHubQwen 开源仓库
🧪 模型下载ModelScope
📊 定价详情百炼计费说明

高级功能探索

  • 思维链(Chain of Thought):Qwen3.6 Plus 默认开启深度推理模式
  • 知识库检索增强(RAG):结合百炼知识库实现企业私有数据问答
  • 微调训练:基于开源 Qwen 模型进行领域适配
  • 语音合成与识别:使用 DashScope Paraformer 能力扩展交互方式

信息

,[object Object],

常见问题

QQwen3 Max 和 Qwen Plus 怎么选?

日常内容生成选 Qwen Plus(性价比高),复杂推理/数学任务选 Qwen3 Max。Agent 开发推荐 Qwen3.6 Plus Preview。

QAPI Key 在哪里获取?

登录 [阿里云百炼控制台](https://bailian.console.aliyun.com/),进入「API-KEY 管理」页面创建即可。

Q支持流式输出吗?

完全支持,只需在调用时添加 stream=True 参数并迭代返回的数据块。