1. 两种模板的本质区别
在LangChain框架中,PromptTemplate.from_template和ChatPromptTemplate.from_messages是两种截然不同的提示工程工具,它们的核心差异体现在数据结构和使用场景上。
PromptTemplate.from_template生成的是单段文本字符串模板,就像我们日常使用的字符串格式化工具。它适用于那些只需要简单文本替换的场景,比如:
python复制template = "请将以下内容翻译成{language}: {text}"
而ChatPromptTemplate.from_messages构建的是结构化消息序列,专门为对话系统设计。它能够处理包含多种角色的对话上下文,例如:
python复制messages = [
("system", "你是一位专业翻译"),
("user", "请将这段文字翻译成{language}: {text}"),
("assistant", "好的,我已准备好翻译"),
("user", "{additional_instruction}")
]
关键区别:前者处理的是扁平文本,后者处理的是带有元数据的对话结构。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. PromptTemplate.from_template深度解析
2.1 基本使用模式
这个模板的工作机制类似于Python的str.format()方法,但提供了更强大的功能。典型用法如下:
python复制from langchain_core.prompts import PromptTemplate
# 创建模板
template = PromptTemplate.from_template(
"公司{industry}行业的{position}职位,要求具备以下技能:{skills}"
)
# 填充模板
filled_template = template.invoke({
"industry": "互联网",
"position": "Python工程师",
"skills": "熟悉Django框架、有大数据处理经验"
})
2.2 高级特性
除了基本替换
