前置条件
- 1已注册阿里云账号并完成实名认证
- 2了解基本的 API 调用概念
- 3已安装 Python 3.8+ 环境
如何接入通义千问到 WorkBuddy
本教程将详细指导你如何将**阿里巴巴通义千问(Qwen)**接入 WorkBuddy 平台,利用其强大的中文理解能力和极具竞争力的价格,构建高效的 AI 自动化工作流。
信息
,[object Object],
,[object Object],
前置准备
在开始之前,请确保你已经完成以下准备工作:
步骤一:获取 API Key
1.1 开通百炼服务
- 访问阿里云百炼控制台
- 使用阿里云账号登录(如未开通会自动引导)
- 同意服务协议,完成免费开通
1.2 创建 API Key
- 登录控制台后,点击右上角头像 → 进入「API-KEY 管理」
- 点击「创建新的 API Key」
- 复制生成的密钥(格式为 )text
1sk-xxxxxxxx
信息
,[object Object],
1.3 配置环境变量(推荐)
bash1# Linux / macOS 2export DASHSCOPE_API_KEY="sk-你的实际Key" 3 4# Windows PowerShell 5$env:DASHSCOPE_API_KEY="sk-你的实际Key"
步骤二:了解 Qwen 模型家族
通义千问已发展出完整的模型矩阵,不同模型适用于不同场景。以下是 2026 年最新版本的选型指南:
| 模型名称 | 参数规模 | 上下文 | 最大输出 | 核心定位 |
|---|---|---|---|---|
| Qwen3 Max | 万亿级 MoE | 256K | 32K | 🔥 通用旗舰,推理能力最强 |
| Qwen 3.5 397B | 397B (MoE) | 256K | 32K | 视觉-语言多模态(图片/GUI理解) |
| Qwen3.6 Plus Preview | 未公开 | 1M | 65K | Agent 开发(原生 Function Calling) |
| Qwen3 Coder Next | 未公开 | 256K | 64K | 代码专精(防截断长代码) |
| Qwen Plus | 未公开 | 1M | 32K | 性价比之王的日常选择 |
| Qwen Flash | 未公开 | 1M | 8K | 极速响应,轻量任务 |
定价参考(美元/百万 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 示例
python1from 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 示例
javascript1import 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)
python1from 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:
bash1pip install dashscope
python1import 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 平台,可以在配置文件中设置:
json1{ 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],
步骤四:测试验证
运行以下测试脚本,确认接入成功:
python1"""通义千问连接性测试脚本""" 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)
预期输出:
text1🔍 正在测试连接... 2✅ 连接成功!回复:连接成功!很高兴为你服务... 3📋 模型ID: qwen-plus 4📋 Token 用量: 输入=28, 输出=18
场景应用示例
场景 1:智能文档摘要生成
适合处理大量报告、论文或技术文档的快速提炼。
python1from 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。
python1from 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 进行图片分析和图表解读。
python1from 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 | Key 错误或已失效 | 检查控制台重新创建 Key |
text | 请求频率过高 | 加入指数退避重试机制 |
text | 额度耗尽 | 充值或在控制台提升配额 |
text | 模型名称错误 | 对照上文的模型名称表格检查 |
| 连接超时 | 网络问题 | 检查代理设置,超时时间设为 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 开发者指南 |
| 🎮 在线体验 | 通义千问官网 |
| 💻 GitHub | Qwen 开源仓库 |
| 🧪 模型下载 | 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 参数并迭代返回的数据块。