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

如何用Python调用阿里云的Qwen模型


aliases:

  • 如何用Python调用阿里云的Qwen模型?

使用 Python 调用阿里云的 Qwen(通义千问)模型,目前最主流且推荐的方式是使用阿里云官方的DashScope SDK(灵积模型服务)。此外,阿里云百炼平台也兼容OpenAI SDK格式,如果你习惯使用 OpenAI 的库,也可以直接调用。

以下是两种方法的详细步骤:

准备工作:获取 API Key

在写代码之前,你必须先拥有一个阿里云账号并获取 API Key:

  1. 登录阿里云:访问 阿里云官网 并登录。
  2. 开通服务:搜索“模型服务灵积” (DashScope) 或 “百炼”,进入控制台并开通服务(通常有免费额度)。
  3. 创建 API Key
    • 进入 API Key 管理页面。
    • 点击“创建新的 API-KEY”。
    • 重要:复制并保存这个 Key(例如sk-xxxxxxxx),它只会显示一次。

方法一:使用官方 DashScope SDK(推荐)

这是阿里云官方维护的 SDK,功能最全,支持 Qwen 的所有特性(如流式输出、多模态等)。

1. 安装 SDK

在终端(PowerShell)中运行:

pip install dashscope
2. 编写代码

创建一个 Python 文件(例如call_qwen.py),填入以下代码:

importosfromhttpimportHTTPStatusimportdashscope# 【重要】将你的 API Key 填入这里,或者设置为环境变量 DASHSCOPE_API_KEY# 建议不要硬编码在代码中提交到 git,而是使用 os.getenv("DASHSCOPE_API_KEY")dashscope.api_key="sk-你的API_KEY_在这里"defcall_qwen():# 定义消息历史messages=[{'role':'system','content':'你是一个有用的助手。'},{'role':'user','content':'请用 Python 写一个快速排序算法,并加上注释。'}]try:# 调用 Qwen-Max 或 Qwen-Plus 模型 (也可以换成 qwen-turbo, qwen-max 等)response=dashscope.Generation.call(model='qwen-max',# 推荐使用 qwen-max 或 qwen-plusmessages=messages,result_format='message',# 设置返回格式为 message,方便处理)ifresponse.status_code==HTTPStatus.OK:# 打印模型回复的内容print(response.output.choices[0].message.content)else:# 错误处理print(f"请求失败: Code{response.code}, Message{response.message}")exceptExceptionase:print(f"发生异常:{e}")if__name__=='__main__':call_qwen()
3. 运行
python call_qwen.py

方法二:使用 OpenAI SDK(兼容模式)

阿里云百炼平台完全兼容 OpenAI 的 API 协议。如果你已经在使用openai库,或者想复用现有的 OpenAI 代码,只需修改base_urlapi_key即可。

1. 安装 OpenAI SDK
pip install openai
2. 编写代码
importosfromopenaiimportOpenAI# 初始化客户端client=OpenAI(# 填入你的阿里云 API Keyapi_key="sk-你的API_KEY_在这里",# 【关键】指定阿里云的兼容接口地址base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")defcall_qwen_openai_style():try:completion=client.chat.completions.create(# 阿里云的模型名称,例如 qwen-max, qwen-plus, qwen-turbomodel="qwen-max",messages=[{"role":"system","content":"你是一个编程助手。"},{"role":"user","content":"解释一下什么是装饰器?"}],stream=False# 如果需要流式输出,设为 True)print(completion.choices[0].message.content)exceptExceptionase:print(f"调用失败:{e}")if__name__=='__main__':call_qwen_openai_style()

常用模型名称对照

在代码的model参数中,你可以替换为以下常用模型(具体以阿里云官网最新列表为准):

模型名称特点适用场景
qwen-max效果最好,逻辑推理最强复杂任务、代码生成、深度分析
qwen-plus性价比高,速度与效果平衡日常对话、中等复杂度任务
qwen-turbo速度最快,成本最低简单问答、高频调用
qwen-long支持超长上下文 (百万字)长文档分析、书籍总结
qwen-vl-max视觉语言模型图片理解、OCR、图表分析

💡 最佳实践建议

  1. 环境变量管理
    为了安全,不要把 API Key 直接写在代码里。

    • 在 PowerShell 中设置临时环境变量:

      $env:DASHSCOPE_API_KEY="sk-你的KEY"
    • 然后在 Python 代码中使用os.getenv("DASHSCOPE_API_KEY")获取。

  2. 流式输出 (Stream)
    如果希望像聊天机器人那样一个字一个字地输出,可以在 DashScope SDK 中设置stream=True,或在 OpenAI SDK 中设置stream=True,然后迭代处理返回结果。

  3. 费用控制
    阿里云通常为新用户提供免费额度,但使用后会产生费用。请在 费用中心 关注用量,避免超额。

http://www.jsqmd.com/news/473597/

相关文章:

  • 鸿蒙图片裁剪实战:从基础矩形到创意形状的完整指南
  • MATLAB实战:高斯与椒盐噪声的针对性滤波策略及效果可视化对比
  • DISC性格测评:解锁职场高效沟通的四大行为密码
  • Blender动捕数据bvh与fbx模型动作映射实战指南
  • 从并网到锁相:深入解析DQ坐标轴锁相环(PLL)的相位同步原理
  • 【技术解析】SENet中的SE Block:从图像到推荐的动态特征权重魔法
  • STM32CubeMX实战:ADC多通道+DMA循环传输的工程化配置与调试
  • BEVfusion复现避坑指南:从环境配置到可视化,手把手解决常见报错
  • GaussDB极简版实战:从零部署到DataGrip可视化连接
  • ESP32-C2 AT指令全链路实战:网络连接、SSL安全与OTA升级
  • 毕业设计实战:基于YOLOv8/v5/v11的智能水果分拣系统(Python+PyQt5)
  • SPSS27中如何解读配对t检验的Cohen’s D效应量
  • QWEN-AUDIO开源镜像:Qwen3-TTS Base模型+Web UI完整交付包
  • Alpine Linux轻量级实践:从安装到高效配置全攻略
  • 从NotImplementedError到模型适配:自定义transformers模型如何正确实现get_input_embeddings
  • 实战指南:MinerU与Dify强强联合,高效解析复杂PDF文档
  • 资源分配图(RAG)在死锁检测中的实战应用与算法优化
  • Milvus向量数据库实战:从数据类型到高效查询全解析
  • 神经符号集成方法在可解释推理中的应用
  • 基于AMESim的锂离子电池电化学-热耦合建模与仿真分析
  • 【MySQL】索引原理详解
  • OneAPI多模型API治理:速率限制、熔断机制与异常请求拦截配置
  • OpenHarmony LiteOS-M内核开发实战:从线程调度到信号量管理的全流程解析
  • DCT-Net人像卡通化API扩展:支持批量上传与ZIP打包下载
  • 如何通过TranslucentTB解决Windows任务栏视觉与功能的平衡难题?
  • Vivado 工程文件结构解析与高效管理指南
  • ESP8684 GDMA控制器寄存器架构与链表驱动详解
  • AI 净界轻量化部署:RMBG-1.4 模型压缩与量化实践指南
  • JDK21下HashMap序列化异常:解析反射访问serialVersionUID的权限问题
  • 别再混淆卷积维度!用生活例子讲透PyTorch中Conv1d/2d/3d的核心差异