🎯 课程主题
演示通过模型厂商专用类调用智谱AI(ChatZhipuAI)和阿里云百炼平台(ChatTongyi)的大模型,总结出通用规律:专用类会自动从环境变量加载API Key和Base URL,开发者通常只需指定模型名。
📝 核心知识点
1. 调用智谱AI大模型
- 概念说明:使用
ChatZhipuAI类调用智谱AI平台的大语言模型。 - 关键细节:
- 需在智谱AI开放平台注册并获取API Key(可能需要充值,最低1元)。
- 模型名称示例:
glm-4-flash、GLM-5.1等,越新的模型越贵。 - 建议的环境变量名为
ZHIPUAI_API_KEY(类内部约定的默认查找名)。 - Base URL可从智谱AI开发文档的"文本模型"部分找到。
2. 调用阿里云百炼平台大模型
- 概念说明:使用
ChatTongyi类通过阿里云百炼平台调用通义千问等大模型。 - 关键细节:
- 需在阿里云百炼平台创建API Key。
- 建议的环境变量名为
DASHSCOPE_API_KEY(类内部约定的默认查找名)。 - 模型名称示例:
qwen-plus、qwen-max等。 - 阿里云百炼平台有许多免费token额度,初学者基本无需充值。
3. 专用类的通用规律总结
- 概念说明:对于模型厂商提供的专用类(
ChatDeepSeek、ChatZhipuAI、ChatTongyi等),Base URL通常在类内部已写死,无需显式传入;API Key只需将.env中的变量名与类约定的名称保持一致,即可自动加载。 - 关键细节:
- 专用类的Base URL一般已固定,因为类本身就是针对特定厂商的。
- 三个参数中,通常只有
model需要显式指定。 - 变量名必须与类源码中约定的名称完全一致,否则需手动读取。
🏗️ 架构与工作流
调用流程(与DeepSeek一致):① 加载.env配置文件 → ② 初始化专用模型类 → ③ 调用模型。其中②③两步与具体厂商无关,步骤完全统一。
💻 代码实战
# ========== 1.2 通过智谱AI平台调用大模型 ==========
import os
from dotenv import load_dotenv
from langchain_zhipuai import ChatZhipuAI
load_dotenv(override=True)
# 显式读取方式(完整版)
api_key = os.getenv("ZHIPUAI_API_KEY")
base_url = os.getenv("ZHIPUAI_BASE_URL")
model = ChatZhipuAI(
model="glm-4-flash", # 模型名称
api_key=api_key, # 可从环境变量自动加载
api_base=base_url # 专用类通常可省略,内部已写死
)
response = model.invoke("请用一句话介绍你自己")
print(response)
# 自动加载方式(推荐,简化版)
model = ChatZhipuAI(model="glm-4-flash")
response = model.invoke("请用一句话介绍你自己")
print(response)
# ========== 1.3 通过阿里云百炼平台调用大模型 ==========
from langchain_tongyi import ChatTongyi
load_dotenv(override=True)
# 显式读取方式
api_key = os.getenv("DASHSCOPE_API_KEY")
model = ChatTongyi(
model="qwen-plus", # 模型名称
api_key=api_key # 可从环境变量自动加载
)
response = model.invoke("请用一句话介绍你自己")
print(response)
# 自动加载方式(推荐)
model = ChatTongyi(model="qwen-plus")
response = model.invoke("请用一句话介绍你自己")
print(response)
.env 文件追加:
# 从智谱AI平台获取的配置信息
ZHIPUAI_API_KEY=your_zhipu_api_key_here
# 从阿里云百炼平台获取的配置信息
DASHSCOPE_API_KEY=your_dashscope_api_key_here
⚠️ 常见问题与避坑指南
- Base URL在专用类中通常不用写:因为类本身就是针对特定厂商的,内部已写死地址。但如果平台更新了地址而类库未更新,则需要显式指定。
- 环境变量名必须和类约定一致:如
ZHIPUAI_API_KEY和DASHSCOPE_API_KEY,写错则无法自动加载,需手动os.getenv读取。 - 模型名称需从官方文档确认:不同平台模型名称差异大,务必从平台控制台或文档中复制准确的模型名(如
glm-4-flash、qwen-plus等)。 - 智谱AI平台可能需要充值,阿里云百炼有免费额度。
💡 个人总结与延伸
本节印证了一个重要规律:LangChain中模型厂商的专用类遵循"约定优于配置"原则——只要.env中的变量名与类内部约定一致,开发者只需传入模型名即可完成初始化。掌握了DeepSeek的经验后,智谱AI和阿里云百炼的调用模式完全一致,学习成本极低。建议学习者在后续遇到新的模型厂商时,首先查看其专用类的源码注释,找到约定的环境变量名,即可快速上手。