005.LangChain Model
该教程旨在带大家从 0 起步,掌握用 Python 开发大模型应用的技能。若当前内容让你感到晦涩,可回溯本合集的前期文章,降低学习难度。
·
该教程旨在带大家从 0 起步,掌握用 Python 开发大模型应用的技能。若当前内容让你感到晦涩,可回溯本合集的前期文章,降低学习难度。
1. 模型分类
类别 |
作用 |
输入 |
输出 |
---|---|---|---|
LLM |
文本补全 |
字符串 |
字符串 |
Chat Model |
对话优化 |
消息列表 |
一条消息 |
DeepSeek 的 deepseek-chat
属于 Chat Model,在中文场景下表现优异。
2. LangChain 与 DeepSeek 的关系
-
LangChain 是一个开源框架,帮助你快速集成多种大模型。
-
LangChain 已内置 DeepSeek 的封装类
ChatDeepSeek
,接口与 OpenAI 完全一致,无需额外适配。
3. 安装依赖
pip install langchain-deepseek
# 如提示找不到,可改用
# pip install langchain-community[deepseek]
4. 创建模型实例
from langchain_deepseek import ChatDeepSeek
model = ChatDeepSeek(
model="deepseek-chat",
temperature=0.7,
max_tokens=512,
api_key=os.getenv("DEEPSEEK_API_KEY")
)
-
temperature 越大,回答越随机;越小,越稳定。
-
max_tokens 控制返回的最大 token 数。
-
其他原生参数(如
top_p
、frequency_penalty
)可以通过model_kwargs={...}
传入:
model = ChatDeepSeek(
model="deepseek-chat",
temperature=0.7,
max_tokens=512,
api_key=os.getenv("DEEPSEEK_API_KEY"),
model_kwargs={
"top_p": 0.9,
"frequency_penalty": 0.5
}
)
5. 消息结构详解
LangChain 的 Chat Model 接收 消息列表,列表元素可以是:
消息类型 |
用途 |
构造方式 |
---|---|---|
SystemMessage |
给 AI 的系统指令 |
SystemMessage(content="你是助手") |
HumanMessage |
用户输入 |
HumanMessage(content="你好") |
AIMessage |
AI 历史回复 |
AIMessage(content="你好!") |
示例:构建一条系统消息 + 一条用户消息
from langchain_core.messages import SystemMessage, HumanMessage
messages = [
SystemMessage(content="你是一个乐于助人的助手,回答简洁,用中文。"),
HumanMessage(content="用一句话介绍 LangChain")
]
6. 调用模型并获取回复
response = model.invoke(messages)
print(response.content)
返回类型为 AIMessage
,内容位于 response.content
中。
示例输出:
LangChain 是一个开源框架,通过链式调用、记忆和工具快速构建大模型应用。
7. 流式输出
如果想让回答逐字打印,提高用户体验:
for chunk in model.stream(messages):
print(chunk.content, end="", flush=True)
8. 更多模型(LangChain 社区)
除 DeepSeek 外,langchain-community
还支持:
平台 |
类名 |
说明 |
---|---|---|
百度 |
ChatBaiduQianfan |
千帆大模型 |
腾讯 |
ChatHunyuan |
混元大模型 |
阿里 |
ChatTongyi |
通义千问 |
只需替换类名与模型名称,其余代码保持一致。
9. 完整代码
保存为 deepseek_demo.py
,直接运行:
from langchain_deepseek import ChatDeepSeek
from langchain_core.messages import SystemMessage, HumanMessage
# 创建模型(自动读取环境变量 DEEPSEEK_API_KEY)
model = ChatDeepSeek(
model="deepseek-chat",
temperature=0.7,
max_tokens=512,
api_key=os.getenv("DEEPSEEK_API_KEY")
)
# 构造消息
messages = [
SystemMessage(content="你是一个乐于助人的助手。回答简洁,用中文。"),
HumanMessage(content="用一句话介绍 LangChain")
]
# 调用并打印
response = model.invoke(messages)
print(response.content)
更多推荐
所有评论(0)