LangChain 集成 DeepSeek
本章节介绍如何在 LangChain 中集成和使用 DeepSeek 聊天模型。
通过 langchain-deepseek 扩展包, 开发者可以快速接入 DeepSeek 提供的大语言模型服务。
DeepSeek 模型既支持官方托管 API, 也支持通过 Ollama、Fireworks、Together 等平台进行本地或第三方推理部署。
DeepSeek 介绍
DeepSeek 是一个开源大语言模型系列,支持聊天、推理、代码生成等能力。
在 LangChain 中,DeepSeek 主要通过 ChatDeepSeek 类进行调用。
集成信息:
| 项目 | 说明 |
|---|---|
| 类名 | ChatDeepSeek |
| 安装包 | langchain-deepseek |
| 状态 | Beta(测试版) |
| 支持 JavaScript | 是 |
| 支持 Python | 是 |
模型能力支持:
| 功能 | 是否支持 |
|---|---|
| 工具调用(Tool Calling) | ✅ 支持 |
| 结构化输出(Structured Output) | ✅ 支持 |
| 图片输入 | ❌ 不支持 |
| 音频输入 | ❌ 不支持 |
| 视频输入 | ❌ 不支持 |
| Token 流式输出 | ✅ 支持 |
| 原生异步调用 | ✅ 支持 |
| Token 使用统计 | ✅ 支持 |
| Logprobs | ❌ 不支持 |
DeepSeek API 使用与 OpenAI/Anthropic 兼容的 API 格式,通过修改配置,您可以使用 OpenAI/Anthropic SDK 来访问 DeepSeek API,或使用与 OpenAI/Anthropic API 兼容的软件。
| 参数 | 值 |
|---|---|
| base_url (OpenAI) | https://api.deepseek.com |
| base_url (Anthropic) | https://api.deepseek.com/anthropic |
| api_key | 点击链接申请 API key |
| model* | deepseek-v4-flashdeepseek-v4-prodeepseek-chat (将于 2026/07/24 弃用)deepseek-reasoner (将于 2026/07/24 弃用) |
安装 langchain-deepseek
在开始使用前,需要先安装 DeepSeek 的 LangChain 集成包:
pip install -qU langchain-deepseek
配置 DeepSeek API Key
你需要先注册 DeepSeek 账号,并创建 API Key,如果还没有需要先去 https://platform.deepseek.com/api_keys 创建一个 API key。
通常推荐使用 python-dotenv 来读取当前目录中的 .env 配置文件。
pip install python-dotenv
在当前项目目录创建 .env 文件:
.env 文件配置:
OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxx"

Python 读取 .env 文件:
完整实例
from dotenv import load_dotenv
# 加载当前目录 .env 文件
load_dotenv()
# 获取 API Key
api_key = os.getenv("DEEPSEEK_API_KEY")
print(api_key)
指定 .env 文件路径: 如果 .env 文件不在当前目录,可以手动指定路径:
实例
load_dotenv(dotenv_path="./config/.env")
配置 LangSmith(可选)
如果需要开启 LangChain 调用链追踪与调试功能, 可以配置 LangSmith API Key:
实例
os.environ["LANGSMITH_API_KEY"] = getpass.getpass(
"Enter your LangSmith API key: "
)
创建 ChatDeepSeek 模型
安装完成后,可以通过 ChatDeepSeek 初始化模型:
实例
from dotenv import load_dotenv
from langchain_deepseek import ChatDeepSeek
# 加载 .env
load_dotenv()
# 获取 API KEY
api_key = os.getenv("DEEPSEEK_API_KEY")
# 创建模型
llm = ChatDeepSeek(
api_key=api_key,
model="deepseek-v4-flash",
temperature=0,
max_tokens=None,
timeout=None,
max_retries=2
)
# 调用模型
response = llm.invoke("你好,请介绍 LangChain")
print(response.content)
参数说明:
| 参数 | 说明 |
|---|---|
| api_key | 设置你申请的 API key,例如 "sk-xxx" |
| model | 指定模型名称,例如 deepseek-v4-flash |
| temperature | 控制随机性,越低结果越稳定 |
| max_tokens | 限制生成最大 Token 数量 |
| timeout | 请求超时时间 |
| max_retries | 失败后的最大重试次数 |
也可以使用 init_chat_model() 函数来调用:
实例
from dotenv import load_dotenv
# 加载当前目录 .env 文件
load_dotenv()
from langchain.chat_models import init_chat_model
# 指定了 model,返回固定模型
model = init_chat_model("deepseek:deepseek-v4-flash", temperature=0.7)
response = model.invoke("介绍菜鸟教程 RUNOOB")
print(response.content)
调用 DeepSeek 模型
下面示例演示如何向 DeepSeek 模型发送聊天消息:
注意我这里测试,把 API Key 写在了测试文件中:
llm = ChatDeepSeek( api_key="sk-xxx", # 设置你的 DeepSeek API Key model="deepseek-v4-flash" )实际的生产环境请设置在 .env 文件中。
实例
from langchain_deepseek import ChatDeepSeek
llm = ChatDeepSeek(
api_key="sk-xxx", # 设置你的 DeepSeek API Key
model="deepseek-v4-flash",
temperature=0,
max_tokens=None,
timeout=None,
max_retries=2
)
messages = [
(
"system",
"You are a helpful assistant that translates English to Chinese."
),
(
"human",
"I love programming."
),
]
ai_msg = llm.invoke(messages)
print(ai_msg.content)
运行后,模型会返回英文翻译后的法语结果。
我喜欢编程。
支持的 DeepSeek 模型:
| 模型 | 用途 | 特点 |
|---|---|---|
| deepseek-v4-flash | 通用聊天模型 | 支持 Tool Calling 与结构化输出 |
| deepseek-v4-pro | 推理模型(deepseek-v4-pro) | 更强推理能力,但不支持 Tool Calling |
LangChain + DeepSeek 完整测试实例
下面演示一个完整可运行的 LangChain + DeepSeek 示例。
创建测试文件
创建 test.py 文件:
完整实例
from langchain_core.messages import HumanMessage, SystemMessage
# =========================
# 配置 DeepSeek API Key
# =========================
apiKey = "sk-xxx" # 设置你的 DeepSeek API Key
# =========================
# 创建 DeepSeek 模型
# =========================
llm = ChatDeepSeek(
api_key=apiKey,
model="deepseek-v4-flash",
temperature=0.7,
max_tokens=1024,
timeout=60,
max_retries=3
)
# =========================
# 构造聊天消息
# =========================
messages = [
SystemMessage(
content="你是一名专业 Python 教师。"
),
HumanMessage(
content="请解释什么是 LangChain,并给出简单示例。"
)
]
# =========================
# 调用模型
# =========================
response = llm.invoke(messages)
# =========================
# 输出结果
# =========================
print("AI 回复:")
print(response.content)
在终端执行:
python test.py
输出如下:

代码说明:
| 代码 | 作用 |
|---|---|
| ChatDeepSeek | LangChain 的 DeepSeek 聊天模型类 |
| SystemMessage | 系统提示词,用于设定 AI 身份 |
| HumanMessage | 用户输入消息 |
| llm.invoke() | 调用 DeepSeek 模型 |
| response.content | 获取 AI 返回内容 |
使用 deepseek-v4-pro 推理模型
LangChain 支持 DeepSeek 流式输出,需要使用 deepseek-v4-pro 推理模型:
实例
from langchain_core.messages import HumanMessage, SystemMessage
# =========================
# 配置 DeepSeek API Key
# =========================
apiKey = "sk-xxx" # 设置你的 DeepSeek API Key
# =========================
# 创建 DeepSeek 模型
# =========================
llm = ChatDeepSeek(
api_key=apiKey,
model="deepseek-v4-pro",
temperature=0.7,
max_tokens=1024,
timeout=60,
max_retries=3
)
for chunk in llm.stream("请介绍 Python"):
print(chunk.content, end="", flush=True)
使用 PromptTemplate
结合 PromptTemplate 动态生成 Prompt:
实例
from langchain_core.prompts import ChatPromptTemplate
# =========================
# 配置 DeepSeek API Key
# =========================
apiKey = "sk-xxx" # 设置你的 DeepSeek API Key
# =========================
# 创建 DeepSeek 模型
# =========================
llm = ChatDeepSeek(
api_key=apiKey,
model="deepseek-v4-pro",
temperature=0.7,
max_tokens=1024,
timeout=60,
max_retries=3
)
prompt = ChatPromptTemplate.from_template(
"请详细解释:{topic}"
)
chain = prompt | llm
response = chain.invoke({
"topic": "Transformer"
})
print(response.content)
常见错误
| 错误 | 原因 | 解决方法 |
|---|---|---|
| 401 Unauthorized | API Key 错误 | 检查 DEEPSEEK_API_KEY |
| ModuleNotFoundError | 未安装依赖 | 重新 pip install |
| Rate Limit | 请求频率过高 | 降低请求频率 |
| Timeout Error | 请求超时 | 增加 timeout 参数 |
推荐项目结构
项目结构
│
├── app.py
├── requirements.txt
├── .env
├── prompts/
├── data/
└── vector_db/
requirements.txt 示例
实例
langchain-deepseek
python-dotenv
参考文档
- LangChain DeepSeek 文档: https://python.langchain.com/docs/integrations/chat/deepseek/
- DeepSeek 官网: https://www.deepseek.com/
- LangChain 官网: https://www.langchain.com/
- LangSmith: https://smith.langchain.com/
