当前位置: 首页 > news >正文

使用 OpenAI SDK 调用通义千问(Qwen)模型:从简单对话到结构化生成

使用 OpenAI SDK 调用通义千问(Qwen)模型:从简单对话到结构化生成的完整实践

一、前言

随着大模型生态的开放,越来越多的模型开始兼容 OpenAI API 格式,这意味着你可以直接使用相同的 SDK 与调用方式,在不同的服务商之间快速切换。
通义千问(Qwen)系列模型 就是其中的典型代表,阿里云的 DashScope 平台 提供了与 OpenAI 完全兼容的接口。

本文将通过三段完整示例代码,带你从最基础的“问答调用”,逐步深入到“参数调优”与“结构化 JSON 输出”的进阶使用。


二、基础对话调用示例

✅ 代码示例一

import os
from openai import OpenAIclient = OpenAI(# 新加坡和北京地域的 API Key 不同。详见:https://help.aliyun.com/zh/model-studio/get-api-keyapi_key="sk-***",# base_url 对应北京地域;若使用新加坡地域请改为 dashscope-intl.aliyuncs.combase_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)completion = client.chat.completions.create(model="qwen-plus",messages=[{'role': 'system', 'content': 'You are a helpful assistant.'},{'role': 'user', 'content': '你是谁?'}]
)print(completion.choices[0].message.content)

🧠 代码解析

  1. 初始化客户端
    使用 OpenAI 类直接连接通义千问的兼容模式接口。
    参数:

    • api_key:你的阿里云 DashScope 平台密钥。

    • base_url:指定 API 的地域节点。

  2. 创建对话请求

    • model="qwen-plus":调用通义千问的 Plus 模型。

    • messages:设置对话上下文,包括系统角色和用户输入。

  3. 输出结果
    最后一行打印模型返回的回答。

📤 运行效果

输出类似:

我是通义千问,一款由阿里云开发的大语言模型,可以帮助你完成多种任务。

这说明模型调用成功,并以自然语言进行了回应。


三、参数调优与生成控制

✅ 代码示例二

from openai import OpenAIclient = OpenAI(api_key="sk-***",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)# 第一次请求:生成详细的清单
response = client.chat.completions.create(model="qwen-plus",messages=[{ "role": "user", "content": "生成一个文具清单,至少包含20种文具,每两个文具之间用逗号隔开" }],max_tokens=300,frequency_penalty=-1.9,temperature=0.1
)
print(response.choices[0].message.content)# 第二次请求:生成更简短、更随机的清单
response = client.chat.completions.create(model="qwen-plus",messages=[{ "role": "user", "content": "生成一个文具清单,至少包含20种文具,每两个文具之间用逗号隔开" }],max_tokens=30,frequency_penalty=1.9,temperature=1.9
)
print(response.choices[0].message.content)

🧩 参数说明

参数含义调整效果
max_tokens控制输出字数上限越大输出越长
temperature控制随机性越高越有创意,越低越稳定
frequency_penalty控制重复性负值增加重复,正值减少重复

⚙️ 实验结果对比

调用场景参数设置输出效果
第一次调用temperature=0.1frequency_penalty=-1.9输出长而完整的文具清单(内容稳定)
第二次调用temperature=1.9frequency_penalty=1.9输出短小且更具随机性

这种参数调节方式非常适合在生成内容任务中平衡“创造性”与“稳定性”


四、生成结构化 JSON 数据

✅ 代码示例三

from openai import OpenAI
import jsonclient = OpenAI(api_key="sk-***",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)prompt = """
生成一个由三个学生考试分数信息所组成的列表,以JSON格式进行返回。
JSON列表里的每个元素包含以下信息:
student_number、student_name、student_marks、phone。
所有信息都是字符串。
除了JSON之外,不要输出任何额外的文本。
"""response = client.chat.completions.create(model="qwen-plus",messages=[ { "role": "user", "content": prompt } ]
)content = response.choices[0].message.content
print(content)# 转换为 Python 数据结构
result = json.loads(content)
print(result)

🧠 核心思路

prompt 中明确要求输出 JSON 格式,并限制“只输出 JSON,不要额外文字”,
这样可以直接解析模型的返回值,实现与程序逻辑的无缝衔接。

📊 示例输出

[{"student_number": "202501","student_name": "李明","student_marks": "89","phone": "13800000001"},{"student_number": "202502","student_name": "王芳","student_marks": "92","phone": "13800000002"},{"student_number": "202503","student_name": "张伟","student_marks": "85","phone": "13800000003"}
]

经过 json.loads() 解析后,你可以直接使用这些数据进行统计、存储或可视化分析。


五、综合实践与应用场景

通过以上三段代码,我们掌握了:

类型示例实际应用
基础对话示例一智能客服、问答系统
参数调优示例二文案生成、创意内容生产
结构化输出示例三数据接口、表格生成、知识抽取

通义千问兼容 OpenAI SDK 的优势:

  • 无需更换调用方式,兼容性极强;

  • 支持流式输出与多模型切换;

  • 适合从 OpenAI API 平滑迁移。


六、总结

这三段代码展示了如何使用 同一套 OpenAI SDK 调用通义千问 Qwen 模型,从简单问答到结构化数据输出的完整流程。
其核心要点包括:

  1. API 初始化api_key + base_url 即可对接;

  2. messages 构造:控制对话角色和上下文;

  3. 参数调节:通过 temperaturefrequency_penalty 等实现风格差异;

  4. 结构化生成:利用 json.loads() 实现可编程式结果解析。

这套模式不仅能应用于通义千问,也可拓展到 OpenAI、智谱 AI、Moonshot 等其他兼容 API 的模型中,实现跨平台统一开发。

http://www.dtcms.com/a/525370.html

相关文章:

  • ESP32使用笔记(基于ESP-IDF):组件注册表介绍与使用详解
  • 自己做的网站绑定域名如何修改wordpress的登录
  • 机器视觉的物流拆码垛应用
  • react-native实现多列表左右滑动+滚动TabBar悬停
  • 自己能注册网站吗公司网站备案网站名称有什么用
  • Web后端开发总结
  • 阿里万网站建设怎么重建wordpress
  • 关于蓝牙SPP配置的详细过程,之前的有所缺少细节
  • 湛江专业网站建设深圳专业建站多少钱
  • 2026计算机毕业设计课题推荐
  • 好网站在哪里上海知名网站建设公司
  • 【Unity】实现UI Spine动态换皮肤(SkeletonGraphic)
  • 从数据仓库到数据中台再到数据飞轮:我的数据技术成长之路
  • MIT:塑造未来的技术引擎
  • 查错控制方法-上(奇偶校验与循环冗余校验)
  • NVIDIA cuLitho 重新定义计算光刻的GPU加速
  • 水位雨量监测站:数据实时辅助防汛指挥
  • 网站总体设计方案网站首页不见怎么做
  • 德语网站建设注意事项天津做网站推广的公司
  • 本溪做网站的怎么看出网站有没有做404页面
  • 数据库技术指南(一):从基础概念到 MySQL 核心实践
  • 安徽义信建设网站莱芜新闻视频回放今天
  • 江西建设厅网站官网安卓开发软件手机版
  • 光伏系统中,高压电弧是怎么产生的?什么是AFCI
  • 简单了解一下环境变量(Linux)
  • 计算机端口
  • 外贸网站建设有哪些要求网站seo培训
  • 怎么增加网站的收录量成都网站优化多少钱
  • 继续网站建设南宁网页制作招聘
  • 01)PB(PowerBuilder9)学习 设置语法提示、 新建工作空间、应用、window窗体、设置应用启动open event