核心开发流程
下面是使用 Qwen API 开发编程应用的详细步骤:
第一步:获取 API 密钥与准备工作
- 开通服务:前往阿里云官网,搜索并开通 “通义千问” 服务。你需要完成实名认证和开通 “模型服务灵骏” 或其他相关的 AI 大模型服务。
- 创建 API-KEY:在阿里云的控制台中,找到 “模型服务” 或 “API-KEY 管理” 页面,创建一个新的 API-KEY。这个 KEY 是你调用 Qwen API 的唯一凭证,需要妥善保管。
- 安装 SDK:为了方便调用 API,推荐使用阿里云官方提供的 Python SDK。你可以通过
pip
命令轻松安装:
注意:尽管是阿里云的服务,Qwen 的 API 接口兼容 OpenAI 的接口协议,这意味着你可以直接使用pip install openai
openai
这个库来调用 Qwen 的服务。这极大简化了开发过程。
第二步:编写 API 调用代码
接下来,我们使用 Python 示例来演示如何调用 Qwen API。
1. 基础聊天机器人
这个示例展示了如何向 Qwen 发送一个用户问题,并接收它的回答。
from openai import OpenAI
import os
# 从环境变量中获取 API-KEY
# 这是一个更安全的做法,避免将密钥硬编码到代码中
# 建议你在运行代码前设置环境变量:
# export QWEN_API_KEY="你的API-KEY"
api_key = os.getenv("QWEN_API_KEY")
if not api_key:
raise ValueError("请设置 QWEN_API_KEY 环境变量")
# 创建 OpenAI 客户端实例
# baseURL 指向阿里云的 Qwen 服务地址
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
def get_qwen_response(prompt):
"""向通义千问发送请求并获取响应"""
try:
completion = client.chat.completions.create(
model="qwen-turbo", # 或 "qwen-plus", "qwen-max" 等模型
messages=[
{
"role": "user", "content": prompt}
],
temperature=0.8, # 控制回答的创造性,0.0-1.0
)
return completion.choices[0].message.content
except Exception as e:
print(f"调用 API 失败: {e}")
return None
# 调用函数并打印结果
user_prompt = "帮我写一个Python函数,用于计算斐波那契数列。"
response = get_qwen_response(user_prompt)
if response:
print("--- Qwen 的回答 ---")
print(response)
代码解析:
model
: 你需要指定使用的模型。qwen-turbo
是一个通用的、性价比高的模型。如果你需要更强的性能和能力,可以尝试qwen-plus
或qwen-max
。messages
: 这是与模型交互的核心。它是一个列表,每个元素都是一个字典,包含role
(角色)和content
(内容)。role
可以是system
(系统指令),user
(用户输入) 或assistant
(模型回答)。通过传递多条消息,你可以实现多轮对话。
temperature
: 这个参数控制了模型回答的随机性和创造性。值越高,回答越多样化;值越低,回答越保守和确定。
2. 实现多轮对话
为了让机器人记住之前的聊天记录,你需要在 messages
列表中传递完整的对话历史。
# ... (前面的导入和客户端初始化代码保持不变)
def chat_with_qwen(messages):
"""进行多轮对话"""
try:
completion = client.chat.completions.create(
model="qwen-turbo",
messages=messages
)
return completion.choices[0].message.content
except Exception as e:
print(f"调用 API 失败: {e}")
return None
# 初始对话
conversation_history = [
{
"role": "system", "content": "你是一位乐于助人的编程助手。"},
{
"role": "user", "content": "请给我介绍一下 Python 的面向对象编程。"}
]
# 获取第一次回答
response1 = chat_with_qwen(conversation_history)
print(f"第一次回答:\n{response1}")
# 将第一次回答加入对话历史
conversation_history.append({
"role": "assistant", "content": response1})
# 发送新的问题,模型会“记住”之前的对话
conversation_history.append({
"role": "user", "content": "很好,那它和C++的面向对象有什么不同?"})
# 获取第二次回答
response2 = chat_with_qwen(conversation_history)
print(f"\n第二次回答:\n{response2}")
通过不断向 messages
列表中添加 user
和 assistant
的对话,你就可以构建一个有记忆、能够连续聊天的编程应用。
开发应用场景
利用 Qwen API,你可以开发各种编程应用:
- 智能代码生成器:根据自然语言描述,生成各种编程语言的代码。
- 代码解释器:输入一段代码,让 Qwen 解释其功能和逻辑。
- 代码纠错助手:识别代码中的错误,并提供修复建议。
- 技术文档问答机器人:将文档数据喂给 Qwen,让它能够回答关于文档内容的各种问题。
小提示:
- API 文档:始终查阅阿里云的官方 API 文档,以了解最新的模型参数、计费方式和接口更新。
- 费用管理:大模型 API 调用会产生费用,开发时要注意监控你的 API 使用量。
- 安全性:除了使用环境变量管理密钥外,如果你在 Web 应用中使用 API,确保密钥的调用是在后端进行,而不是暴露在前端。