ChatPromptTemplate 是 LangChain 中专门用于管理多角色对话结构的提示词模板工具。它的核心价值在于,开发者可以预先定义不同类型的对话角色消息(如系统指令、用户提问、AI历史回复),并通过数据绑定动态生成完整对话上下文。
1.角色消息模板化
为每类对话角色设置预设的消息格式,支持动态变量插值:
python
from langchain_core.prompts import ChatPromptTemplate
template = ChatPromptTemplate.from_messages([
("system", "你是一个{topic}领域的专家"), # 系统指令,可替换topic变量
("user", "{query}"), # 用户提问内容占位符
("assistant", "好的,我会仔细思考这个问题"), # 预置AI回复样本
("human", "请继续分析以下内容:{input}") # 新用户信息输入
])
2.动态参数注入
通过字典传入变量值,自动生成完整对话结构:
python
prompt = template.format_messages(
topic="量子物理",
query="如何解释量子纠缠现象?",
input="量子纠缠与时空结构的关系是什么"
)
3.关联模型调用链路
搭配模型组成处理链条,可直接生成响应:
python
chain = template | llm # llm为语言模型实例
response = chain.invoke({
"topic": "编程教学",
"query": "如何学习Python?",
"input": "推荐具体的学习路径"
})
演示:
