1. 模板工具的本质差异
在LangChain框架中,PromptTemplate、FewShotPromptTemplate和ChatPromptTemplate虽然都归属于提示工程工具链,但设计理念和应用场景存在显著差异。就像木匠的凿子、刨子和锯子各有专精,这三种模板分别针对不同的自然语言处理任务场景。
PromptTemplate是基础的单轮提示构造器,相当于"文字填空"工具。它通过占位符机制实现静态文本与动态变量的结合,例如构建一个简单的分类提示:
python复制from langchain.prompts import PromptTemplate
template = "将以下文本分类为正面或负面情绪:{text}"
prompt = PromptTemplate.from_template(template)
print(prompt.format(text="这个产品体验很棒"))
FewShotPromptTemplate则是"案例教学"工具,核心价值在于通过示例展示任务解决范式。其结构包含三个关键部分:
- 任务说明(instruction)
- 示例对集合(examples)
- 待处理输入(input)
这种设计模仿了人类通过观察学习的过程,特别适合需要展示复杂推理路径的任务,如数学解题:
python复制examples = [
{"input": "2+2", "output": "4"},
{"input": "3*5", "output": "15"}
]
template = "输入:{input}\n输出:{output}"
prompt = FewShotPromptTemplate(
examples=examples,
example_prompt=PromptTemplate.from_template(template),
prefix="解决以下数学问题",
suffix="输入:{input}\n输出:"
)
ChatPromptTemplate专为多轮对话设计,采用消息队列机制。不同于前两者的文本拼接思路,它通过维护对话角色(AI/人类/系统)的历史消息来实现上下文感知,这是构建对话系统的核心:
python复制f
