使用 OpenAI SDK 调用阿里云 Qwen 模型:从基础到提示词工程实战

近年来,大语言模型(LLM)快速发展,阿里云推出的 通义千问(Qwen)系列模型 已成为国产大模型的佼佼者。
而随着阿里云 DashScope 平台支持 OpenAI 兼容模式,开发者现在可以直接使用 openai 官方 SDK 调用 Qwen 模型,无需更改任何逻辑!

本文将带你从零开始学习:

  • ✅ 如何使用 OpenAI SDK 调用 Qwen 模型

  • ✅ 如何设计高质量提示词(Prompt)

  • ✅ 如何利用“思维链(Chain-of-Thought)”提升推理准确度

  • ✅ 如何构建自己的智能问答与逻辑推理系统


🧩 一、兼容模式简介

传统上,不同平台的大模型(如 OpenAI、阿里云、百度等)接口格式各异,调用方式也不统一。
而 Qwen 的“兼容模式(Compatible Mode)”打通了生态壁垒 ——

🧠 你可以用同样的 OpenAI SDK 代码,调用阿里云模型!


✅ 优势对比表

对比维度 Qwen Plus GPT-4-turbo
接口兼容性 ✅ 完全兼容 OpenAI ✅ 原生支持
成本 💰 较低 💰💰💰 较高
响应速度 ⚡ 快(支持国内地域) 🌐 稍慢
中文理解 🌟 极强 中等
可定制性 ✅ 企业可私有化部署 ❌ 限制较多

👉 因此,Qwen + OpenAI SDK 组合非常适合 国内开发者快速构建中文场景应用,如问答系统、智能客服、报告分析等。


⚙️ 二、环境准备与密钥配置

1️⃣ 安装依赖

pip install openai

2️⃣ 获取 API Key

前往阿里云控制台获取:

🔗 API Key 获取指南

3️⃣ 推荐安全做法:使用环境变量

export DASHSCOPE_API_KEY="your_api_key_here"

💻 三、完整代码示例

以下是使用 Qwen Plus 模型 的完整 Python 示例:

import os
from openai import OpenAI

# ========================
# 1. 初始化客户端
# ========================
client = OpenAI(
    # 使用环境变量更安全
    # api_key=os.getenv("DASHSCOPE_API_KEY"),
    api_key="sk-",
    # 北京地域 Base URL(新加坡请改为 dashscope-intl)
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

# ========================
# 2. 多轮对话示例
# ========================
response = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "user", "content": "该组中的奇数加起来为偶数:1、2、3、4、5、6、7,对吗?"},
        {"role": "assistant", "content": "所有奇数相加等于16。答案为是。"},
        {"role": "user", "content": "该组中的奇数加起来为偶数:17、10、19、4、8、12、24、3,对吗?"},
        {"role": "assistant", "content": "所有奇数相加等于39,答案为否。"},
        {"role": "user", "content": "该组中的奇数加起来为偶数:15、12、5、3、72、17、1,对吗?像上面一样回答我"},
    ]
)
print(response.choices[0].message.content)
print("**********")

# ========================
# 3. 分步思考模式(CoT)
# ========================
response = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "user", "content": "该组中的奇数加起来为偶数:15、12、5、3、72、17、1,对吗?让我们来分步思考。"}
    ]
)
print(response.choices[0].message.content)

🧠 四、代码详解

模块 功能说明
OpenAI() 初始化客户端,接入阿里云 API
base_url 指定地域接口(北京或新加坡)
model 指定使用的模型,如 qwen-plusqwen-max
messages 对话上下文(system、user、assistant 角色)
response.choices[0].message.content 提取模型返回内容

💡 输出示例

所有奇数相加等于41。答案为否。
**********
让我们分步思考:
奇数为15、5、3、17、1,它们的和为41,是奇数,因此奇数之和不是偶数。答案为否。

Qwen 模型不仅能给出正确结果,还能清晰展示推理过程(Chain of Thought)


💬 五、提示词(Prompt)种类详解

提示词(Prompt)是与大模型交互的关键。
不同类型的提示词决定了模型的角色、风格、逻辑深度和输出形式。


🧱 1️⃣ 按角色分类的提示词

角色 功能 示例
🧩 system 设定模型身份与行为 “你是一位数学推理专家。”
👤 user 表示用户输入内容 “请判断以下数列的奇数和是否为偶数。”
🤖 assistant 模型历史回答(上下文记忆) “所有奇数相加等于16,答案为是。”
🔧 tool / function 函数调用类提示(进阶) “请调用 calculate_sum 函数处理以下数据。”

🧩 2️⃣ 按任务目标划分的提示词类型

类型 说明 示例
🧭 指令型(Instruction) 直接下达命令 “请总结这段文字的要点。”
🧠 推理型(Reasoning) 引导模型分步思考 “让我们一步步分析这个问题。”
🪜 Few-shot 示例型 提供示例以模仿格式 “示例:输入A输出B,现在输入C。”
🏗 结构化输出型 指定输出格式 “请以JSON格式返回结果。”
🎭 角色扮演型 让模型扮演角色 “你是一位资深程序员,请解释下面代码。”
🔍 自反型(Reflective) 让模型自检与改进 “检查你上一个回答是否存在逻辑错误。”

⚙️ 3️⃣ 高级提示词技巧

✅ Chain-of-Thought(思维链提示)

引导模型逐步推理:

"让我们一步一步思考这个问题。"
✅ ReAct(推理 + 行动)

要求模型先思考,再给结论或执行操作:

"先推理出思路,再给出最终答案。"
✅ Role-based Prompt(角色限定)
"你现在是一名数据分析师,只能回答与数据统计相关的问题。"
✅ Structured Output Prompt(结构化输出)
"请以JSON格式输出结果,包括 '奇数列表' 与 '求和结果' 两个字段。"

🔧 六、提示词组合实战案例

下面是改进后的 Qwen 调用示例,融合系统提示与思维链:

messages = [
    {
        "role": "system",
        "content": "你是一名数学推理专家,请逐步解释计算过程并得出结论。"
    },
    {
        "role": "user",
        "content": "该组中的奇数加起来为偶数:15、12、5、3、72、17、1,对吗?"
    }
]

response = client.chat.completions.create(
    model="qwen-plus",
    messages=messages
)
print(response.choices[0].message.content)

🧩 输出示例:

奇数有15、5、3、17、1,总和为41。
41是奇数,因此奇数之和不是偶数。答案为否。

🧰 七、优化与错误处理建议

✅ 错误捕获

try:
    response = client.chat.completions.create(model="qwen-plus", messages=messages)
    print(response.choices[0].message.content)
except Exception as e:
    print(f"接口调用失败:{e}")

✅ 参数优化

response = client.chat.completions.create(
    model="qwen-plus",
    temperature=0.7,   # 创造性
    max_tokens=512,    # 控制输出长度
    top_p=0.9,         # 调整采样多样性
    messages=messages
)

✅ 输出格式控制

如果希望模型输出表格或 JSON,可明确指定:

"请以如下 JSON 格式输出结果:{\"奇数\": [...], \"求和\": 数值, \"结论\": \"是/否\"}"

🌏 八、Qwen 模型的典型应用场景

应用方向 优势 示例
💬 智能客服 优秀的中文理解能力 企业内部问答机器人
📊 数据分析 强逻辑推理能力 智能报表生成
🧠 教育问答 CoT 推理解释性强 数学题讲解系统
💡 内容生成 语义流畅自然 新闻写作、产品介绍
⚙️ RAG 系统 结合检索增强生成 智能文档问答系统

🔮 九、总结

本文完整展示了:

  1. ✅ 如何使用 OpenAI SDK 调用阿里云 Qwen 模型;

  2. ✅ 不同类型提示词(System/User/Assistant)的作用;

  3. ✅ 多种 Prompt 工程技巧(思维链、角色设定、结构化输出);

  4. ✅ 优化参数与错误处理策略。


📘 最佳实践建议

目标 提示词设计建议
提高推理质量 加入“请分步思考”
控制回答格式 指定输出结构(JSON/表格)
限定模型范围 使用 system prompt 定义角色
模仿示例风格 few-shot 示例引导
减少错误输出 加入自我检查或反思提示

✨ 结语

阿里云 Qwen 的 OpenAI 兼容模式为开发者带来了极大便利。
从简单问答到逻辑推理,从报告生成到智能搜索,只需一套标准 SDK,即可无缝切换国内外大模型生态。

未来,Prompt Engineering(提示词工程)将成为每一位 AI 开发者的必备技能。
学会设计高质量提示词,就是掌控模型智能的钥匙。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐