这一篇讲「角度 1:使用模型提供商库」。LangChain 为常见厂商提供了专用 Model 类,比如 ChatOpenAI、ChatAnthropic、ChatDeepSeek、ChatOllama、ChatHunyuan、ChatTongyi、ChatZhipuAI。导入对应的类并实例化即可,最直接。注意不同模型传入的参数名可能不同,使用前先看对应源码或 API 参考。

07.1 通过专用 API 调用
07.1.1 DeepSeek 大模型
依赖:langchain-deepseek 是使用 DeepSeek 的必要依赖。它依赖 langchain-openai,安装前者时 pip 会自动解析并安装后者。环境变量用 python-dotenv 管理。
# 切换 Python 环境
conda activate langchain1.2
# 安装 ChatOpenAI 依赖包
pip install langchain-openai
# 安装 ChatDeepSeek 依赖包
pip install langchain-deepseek
# 用于环境管理的包
pip install python-dotenv
在项目根目录创建 .env,把占位符换成自己的 API Key:
DEEPSEEK_API_KEY=<Your API Key>
DEEPSEEK_BASE_URL=https://api.deepseek.com
方式 1:显式读取配置并初始化。
from langchain_deepseek import ChatDeepSeek
import os
from dotenv import load_dotenv
# override=True:无论系统、终端或虚拟环境里是否已有同名变量,
# 都强制用 .env 中的值覆盖
load_dotenv(override=True)
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
deepseek_llm = ChatDeepSeek(
api_key=DEEPSEEK_API_KEY,
api_base=DEEPSEEK_BASE_URL, # 注意:这里是 api_base,不是 base_url
model_name="deepseek-v4-flash",
)
print(deepseek_llm.invoke("请介绍一下你自己"))
方式 2:依赖默认行为,只写模型名。ChatDeepSeek 要求系统中存在名为 DEEPSEEK_API_KEY 的环境变量;URL 在源码里有默认值。
from langchain_deepseek import ChatDeepSeek
from dotenv import load_dotenv
load_dotenv(override=True)
deepseek_llm = ChatDeepSeek(model="deepseek-v4-flash")
print(deepseek_llm.invoke("请介绍一下你自己"))
源码中的默认值:api_key 从 DEEPSEEK_API_KEY 读取,api_base 从 DEEPSEEK_API_BASE 读取,默认 https://api.deepseek.com/v1。
方式 3:硬编码(不推荐)。把 API Key 和模型参数直接写进代码,只适合临时测试,存在密钥泄露风险。生产环境优先用 .env,并把文件加入 .gitignore。
from langchain_deepseek import ChatDeepSeek
deepseek_llm = ChatDeepSeek(
api_key="<Your API Key>", # 明文暴露密钥,不要提交到仓库
api_base="https://api.deepseek.com",
model="deepseek-v4-flash",
)
print(deepseek_llm.invoke("请介绍一下你自己"))
07.1.2 智谱大模型
相关依赖:langchain-community 包含 ChatHunyuan、ChatTongyi、ChatZhipuAI 等社区集成;ChatZhipuAI 的认证还需要 pyjwt。
pip install langchain-community
pip install pyjwt
在 .env 中补充:
ZHIPUAI_API_KEY=<Your API Key>
ZHIPUAI_BASE_URL=https://open.bigmodel.cn/api/paas/v4/
确保账户余额或免费额度大于零,然后初始化:
import os
from langchain_community.chat_models import ChatZhipuAI
from dotenv import load_dotenv
load_dotenv(override=True)
ZHIPUAI_API_KEY = os.getenv("ZHIPUAI_API_KEY")
ZHIPUAI_BASE_URL = os.getenv("ZHIPUAI_BASE_URL")
zhipu_llm = ChatZhipuAI(
model="glm-5.1",
api_base=ZHIPUAI_BASE_URL, # 可选
api_key=ZHIPUAI_API_KEY, # 可选
)
print(zhipu_llm.invoke("请介绍一下你自己"))
07.1.3 千问大模型
通过阿里云百炼平台调用:https://bailian.console.aliyun.com/
# ChatTongyi / 阿里通义千问依赖包
pip install dashscope
环境变量只需要 API Key:
DASHSCOPE_API_KEY=<Your API Key>
这里有一个容易踩的坑:一般不要添加 DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1。百炼平台提供两种访问方式——专用 SDK 和 OpenAI 兼容接口,这个 URL 是给后者准备的;ChatTongyi 底层基于专用 SDK,指定该 URL 会直接报连接错误,例如 ConnectionError: Connection aborted ... 远程主机强迫关闭了一个现有的连接。
import os
from langchain_community.chat_models import ChatTongyi
from dotenv import load_dotenv
load_dotenv(override=True)
DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")
tongyi_llm = ChatTongyi(
api_key=DASHSCOPE_API_KEY,
model="qwen-plus",
)
print(tongyi_llm.invoke("请介绍一下你自己"))
07.2 兼容用法
一方面,LangChain 没有为所有厂商提供专用接口;另一方面,专用接口的对接方式五花八门,例如腾讯混元的 ChatHunyuan 需要单独的 APP_ID + SecretId + SecretKey,配置繁琐。好在大多数 API 平台都支持 OpenAI 接口规范,因此基本都可以通过 ChatOpenAI 集成,只是换一下 base_url 和模型名。
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
import os
load_dotenv(override=True)
# 通过 ChatOpenAI 连接 DeepSeek
deepseek_llm2 = ChatOpenAI(
api_key=os.getenv("DEEPSEEK_API_KEY"),
base_url=os.getenv("DEEPSEEK_BASE_URL"),
model="deepseek-v4-flash",
)
print(deepseek_llm2.invoke("1 + 1 = ?"))
# 通过 ChatOpenAI 连接智谱
zhipu_llm2 = ChatOpenAI(
api_key=os.getenv("ZHIPUAI_API_KEY"),
base_url=os.getenv("ZHIPUAI_BASE_URL"),
model="glm-5.1",
)
# 通过 ChatOpenAI 连接通义千问(百炼的 OpenAI 兼容端点)
tongyi_llm2 = ChatOpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url=os.getenv("DASHSCOPE_BASE_URL"),
model="qwen-plus",
)
07.3 中转平台
受政策影响,国内无法直接调用国外顶尖的闭源模型。某些复杂任务确实需要这些模型时,可以通过中转平台曲线救国。
07.3.1 OpenRouter
官网:https://openrouter.ai/。OpenRouter 是一个多模型 API 聚合平台,提供统一的 OpenAI 兼容接口,可以通过一个 API Key 调用 OpenAI、Claude、Gemini、DeepSeek、Qwen 等不同厂商的模型,适合模型对比、模型路由、Agent 应用开发和课程实验。它是目前知名度最高的中转平台,但使用通常需要科学上网。
# OpenRouter 模型集成
pip install langchain-openrouter
OPENROUTER_API_KEY=<YOUR_API_KEY>
OPENROUTER_API_BASE=https://openrouter.ai/api/v1
LangChain 当前版本为 OpenRouter 提供了专用集成 ChatOpenRouter:
from langchain_openrouter import ChatOpenRouter
from dotenv import load_dotenv
import os
load_dotenv(override=True)
OPENROUTER_API_KEY = os.getenv("OPENROUTER_API_KEY")
model = ChatOpenRouter(
model="deepseek/deepseek-v4-flash",
api_key=OPENROUTER_API_KEY,
)
print(model.invoke("一句话介绍下你自己"))
当然,也可以继续用 ChatOpenAI,把 base_url 指向 OpenRouter:
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
import os
load_dotenv(override=True)
model = ChatOpenAI(
model="deepseek/deepseek-v4-flash",
api_key=os.getenv("OPENROUTER_API_KEY"),
base_url=os.getenv("OPENROUTER_API_BASE"),
)
print(model.invoke("一句话介绍下你自己"))

07.3.2 CloseAI
官网:https://www.closeai-asia.com/。CloseAI 是面向国内用户的 AI API 中转平台,代理 OpenAI、Claude、Gemini 等模型接口,适合解决国内网络访问、支付和接口统一管理问题,常用于应用开发、教学演示和测试环境。LangChain 没有为它提供专用集成,用 ChatOpenAI 兼容接口即可。
CLOSEAI_API_KEY=<YOUR_API_KEY>
CLOSEAI_BASE_URL=https://api.openai-proxy.org/v1
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
import os
load_dotenv(override=True)
model = ChatOpenAI(
model="deepseek-v4-flash",
api_key=os.getenv("CLOSEAI_API_KEY"),
base_url=os.getenv("CLOSEAI_BASE_URL"),
)
print(model.invoke("欧盟都有哪些国家"))
07.4 小结
同一个 DeepSeek 模型,在不同平台可以用不同的类创建:DeepSeek 官网用 ChatDeepSeek / ChatOpenAI,百炼用 ChatTongyi / ChatOpenAI,OpenRouter 用 ChatOpenRouter / ChatOpenAI,CloseAI 用 ChatOpenAI。

原则很简单:有专用类就用专用类,其余一律用 ChatOpenAI 兼容;参数名以对应类的源码为准,尤其注意 api_base 和 base_url 的区别。
下一篇:LangChain 1.2 入门(八):init_chat_model 统一初始化;上一篇:模型调用的准备工作。
本文根据公开课程课件整理,并结合 LangChain 官方文档核对与补充。

AI项目博客






