使用阿里云通义千问API实现对话功能

目录

1.作者介绍

2.API调用介绍

[2.1 API调用原理](#2.1 API调用原理)

[2.2 messages对话结构](#2.2 messages对话结构)

3.通仪千问模型

3.1获取API-KEY

3.2调用API

[3.3 调用注意事项](#3.3 调用注意事项)

3.4实验代码

[3.5 实验结果](#3.5 实验结果)


1.作者介绍

李雨杭,男,西安工程大学电子信息学院,2025级研究生

研究方向:电力系统无功补偿控制策略

电子邮件:1713457379@qq.com

2.API调用介绍

2.1 API调用原理

API是应用程序接口,程序可以通过接口调用云端服务。在本项目中,Python程序通过OpenAI兼容接口访问阿里云百炼平台。用户在终端输入问题后,程序会把问题封装成messages消息列表,然后发送给通义千问模型。通义千问模型在云端完成推理后,把生成的结果返回给 Python 程序。程序从返回结果中提取回答内容,并打印到终端。整个调用过程可以概括为:用户输入问题 → Python程序封装请求 → 调用通义千问 API → 云端模型生成回答 → 程序输出结果。

2.2 messages对话结构

通义千问API使用messages列表保存对话内容。messages中的每条消息都包含role和content两个字段。其中role表示消息角色,content表示具体文本内容。常见的role有三种:system、user和assistant。system用于设定助手身份、回答语气和任务边界;user表示用户输入的问题;assistant表示模型生成的回答。程序每进行一轮对话,都会把用户问题和模型回答保存到messages中,因此下一轮调用API时,模型可以参考前面的对话内容,实现多轮连续对话

3.通仪千问模型

Qwen3.6-Plus是阿里云通义千问于2026年4月2日发布的新一代旗舰大模型,可以以图像、文本、检测框作为输入,并以文本和检测框作为输出。主打超强编程+100万超长上下文+原生多模态+智能体执行+极致性价比。

3.1获取API-KEY

1.访问阿里云百炼页面,注册并登录阿里云账号。

2.地区选择华北2(北京),并进行支付宝实名认证。

3.点击大模型,选择Qwen3.6-Plus,点击模型调试。

4.把右侧箭头处的代码复制下来,在VSCode中会用。

5.点击左下角的API-Key,创建新的API-Key,妥善保存生成的API-Key。

3.2调用API

1.打开CMD终端,创建qwen环境并激活,输入conda activate qwen。

2.在这个终端里输入:python -m pip install -U openai,安装库。

3.检查一下这个库是否安装成功:python -c "import openai; print('openai库安装成功')"。

4.设置API-Key: set DASHSCOPE_API_KEY=自己的API_KEY。

5.把代码复制进Python,出现对话框就表示,调用成功。

3.3 调用注意事项

Python版本应该高于3.10,低的话则无法下载相应的openai版本。

直接打开CMD终端,因为PowerShell脚本执行策略可能阻止profile。

3.4实验代码

python 复制代码
# 导入 os 模块,用于读取系统环境变量
import os
# 从 openai 库中导入 OpenAI
from openai import OpenAI
# 创建 API 客户端对象
client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
# 定义 messages 列表,用来保存对话历史
messages = [
    {"role": "system", "content": "你是一个友好、耐心的中文助手。"}
]
print("通义千问对话程序已启动,输入 exit 退出。")
# 使用 while True 创建循环,使程序可以持续进行多轮对话
while True:
    user_input = input("\n你:").strip()
    if user_input.lower() in ["exit", "quit", "q"]:
        print("程序结束。")
        break
    messages.append({"role": "user", "content": user_input})
# 调用通义千问 API,向模型发送当前对话历史,并获取模型回复
    response = client.chat.completions.create(
        model="qwen3.6-plus",
messages=messages,
        temperature=0.7,
        top_p=0.8,
        extra_body={"enable_thinking": False},
    )
    answer = response.choices[0].message.content
    print("\n千问:", answer)

    # 将模型回答加入 messages 对话历史
    # role 为 assistant,表示这条消息来自 AI 助手
    # 保存后,下一轮提问时模型可以参考前面的上下文
messages.append({"role": "assistant", "content": answer})

3.5 实验结果

1.询问你是什么模型:

2.日常任务对话

相关推荐
阿里云瑶池数据库2 小时前
VibeCoding重塑开发范式:Enter.Pro基于阿里云AnalyticDB Supabase构建全栈AI平台
阿里云
Msshu1232 小时前
XSP25全协议 100W PD快充诱骗芯片_串口读电压电流信息
hive·云计算·json·database·memcached
TG_yunshuguoji4 小时前
阿里云代理商:阿里云百炼部署的deepseek v4怎么使用?
服务器·人工智能·阿里云·云计算·ai智能体·deepseek v4
纤纡.4 小时前
从课堂视频转写结构化数据:Python + 讯飞 + 通义千问全流程实战
python·阿里云·语言模型·讯飞
智慧医养结合软件开源5 小时前
可视化管控,赋能高效运营与专业展示
大数据·人工智能·安全·云计算·生活
zhojiew5 小时前
AWS云上Glue Schema Registry在MSK实时数据流中的schema管理实践
云计算·aws
duoduo_sing5 小时前
如何异地备份天翼云/阿里云挂载的本地虚拟磁盘?
阿里云·异地备份·松鼠备份·网络磁盘备份
wanhengidc6 小时前
云手机 云计算科技运行
科技·智能手机·云计算