LangChain 聊天模型多场景实战:从固定角色到合规客服
在之前的讨论中,我们梳理了 ChatModel 的核心特性和 ChatPromptTemplate 的基础用法。今天这篇直接落地实战——围绕「模板构建→参数注入→LLM 调用」的完整流程,拆解 3 个高频业务场景(领域专家、带参数领域专家、合规客服),手把手教你用 LangChain 快速搭建可复用的聊天模型应用。
先明确一个核心执行顺序,这是所有案例的底层逻辑,务必记住:
from_template(定义单角色模板) → from_messages(组合多角色模板) → format_messages(注入动态参数) → model.invoke(调用 LLM 生成响应)
一、实战准备:基础依赖与 LLM 配置
所有案例均基于LangChain 核心库和DeepSeek 模型(也可替换为 GPT-3.5/4、Claude 等),先完成环境搭建:
1.1 安装依赖
# 核心依赖:LangChain 基础框架 + OpenAI 兼容适配器(用于调用通义千问等模型)
pip install langchain-core langchain-openai
1.2 通用 LLM 配置说明
案例中都会用到 ChatOpenAI 类(注意:虽叫'OpenAI',但支持配置第三方模型的 OpenAI 兼容接口,如通义千问的 dashscope.aliyuncs.com),关键参数含义:
model_name:模型名称(如通义千问的qwen-plus,GPT-3.5 的gpt-3.5-turbo);base_url:模型 API 的基础地址(通义千问专属地址如上,OpenAI 为https://api.openai.com/v1);api_key:你的模型 API 密钥(需替换为自己的,通义千问密钥从阿里云 DashScope 获取);temperature:随机性参数(0~1,0 更严谨、1 更灵活,案例中统一设为 0.7)。
二、案例 1:基础领域专家——固定角色的 LLM 调用
场景需求:构建一个'Java 专家'聊天模型,接收用户关于 Java 知识点的提问,输出专业解释(无动态参数,角色和回复风格固定)。
核心思路
直接用 SystemMessage 和 HumanMessage 构建固定角色的消息列表,跳过模板定义步骤(适合简单、无参数的场景),直接调用 LLM。
完整代码与拆解
# 1. 导入依赖:LLM 客户端 + 消息类型
from langchain_openai import ChatOpenAI
from langchain_core.messages import SystemMessage, HumanMessage
# 2. 初始化 LLM 模型
model = ChatOpenAI(
model_name='deepseek-r1:7b', # 本地模型名称,根据实际情况填写
base_url="http://127.0.0.1:11434/v1", # 本地模型 API 地址
api_key="none",
temperature=
)
messages = [
SystemMessage(content=),
HumanMessage(content=)
]
response = model.invoke(messages)
()
(response.content)


