昨天我们利用两种方式,成功调用了阿里千问大模型。一种是使用DashScope SDK(更原生),一种是使用OpenAI兼容接口(便于迁移)。我对Python几乎是零基础,准备趁构建这个AI应用的同时,学些一下。import osimport dashscope# 如果你的环境变量没设好,可以在这里直接赋值(不推荐):# dashscope.api_key = "你的API-Key"# 注意:这里的base_url可能因为地域而异,请根据你的业务空间调整[citation:2][citation:5]# dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'messages = [ {'role': 'system', 'content': '你是一个严谨的合规审查员。'}, {'role': 'user', 'content': '请简单介绍下你自己。'}]response = dashscope.Generation.call( model="qwen-plus", # 也可以尝试 "qwen-max", "qwen-turbo" 等 messages=messages, result_format='message', # 以消息格式返回 # api_key=os.getenv('DASHSCOPE_API_KEY') # 如果没设环境变量,可以在这里指定)if response.status_code == 200: print(response.output.choices[0].message.content)else: print(f"调用失败,错误码:{response.status_code},信息:{response.message}")
逐行详解:
第1行:import os
含义:导入 Python 的 os 模块
作用:os 是"操作系统(Operating System)"的缩写,提供与操作系统交互的函数
在这段代码中的用途:后面会用 os.getenv() 读取环境变量(虽然被注释掉了)
Python 基础概念:import 是引入别人写好的代码库的关键字,就像你去工具间借一把扳手
第2行:import dashscope
含义:导入阿里云百炼的官方 SDK(软件开发工具包)
作用:让你能用 Python 代码调用阿里云的大模型 API
在这段代码中的用途:后续的 dashscope.Generation.call() 就用到了它
Python 基础概念:dashscope 是我们用 pip install dashscope 安装的第三方库
第3行:空行
第4行:# 如果你的环境变量没设好,可以在这里直接赋值(不推荐):
第5行:# dashscope.api_key = "你的API-Key"
第6行:空行
第7行:# 注意:这里的base_url可能因为地域而异,请根据你的业务空间调整
第8行:# dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'
base_http_api_url这个变量在阿里云百炼(DashScope)SDK 中的正式名称叫做 API Base URL,也就是API 基础地址或API 端点地址。它指的是所有 API 请求都会发往的那个根路径(根 URL),SDK 会把具体的接口路径(比如 /services/aigc/text-generation/generation)拼接到这个基础地址后面,形成完整的请求 URL。
第9行:空行
第10行:messages = [
第11行:{'role': 'system', 'content': '你是一个严谨的合规审查员。'},
第12行:{'role': 'user', 'content': '请简单介绍下你自己。'}
第13行:]
含义:列表的结束符
作用:表示 messages 这个列表定义完了
第14行:空行
第15行:response = dashscope.Generation.call(
第16行:model="qwen-plus", # 也可以尝试 "qwen-max", "qwen-turbo" 等
第17行:messages=messages,
第18行:result_format='message', # 以消息格式返回
第19行:# api_key=os.getenv('DASHSCOPE_API_KEY') # 如果没设环境变量,可以在这里指定
第20行:)
第21行:空行
第22行:if response.status_code == 200:
第23行:print(response.output.choices[0].message.content)
含义:打印模型的回答内容
作用:在控制台输出大模型生成的文本
Python 基础概念:
缩进(4个空格)表示这行属于 if 条件成立时要执行的代码块
print() 是 Python 内置的输出函数,把内容打印到控制台
response.output.choices[0].message.content 是层层访问对象的属性:
第24行:else:
第25行:print(f"调用失败,错误码:{response.status_code},信息:{response.message}")
未完,明天研究第二种调用方式的代码。