[智能体-171]:langchain提示词模板概述
一、核心概念
提示词模板(Prompt Template)是 LangChain 用于动态生成结构化提示词的组件,通过预定义模板+ 占位变量,实现提示词复用、参数动态填充,解决硬编码文本难维护、无法灵活传参的问题,是串联大模型、业务逻辑、数据的基础。
二、核心分类与适用场景
1. 基础文本模板PromptTemplate
- 定位:最基础模板,纯文本格式,适配文本补全类模型。
- 特点:使用
{变量名}定义占位符,通过format()动态替换内容。 - 适用:翻译、摘要、单轮指令、传统补全模型调用。
2. 对话模板ChatPromptTemplate
- 定位:面向对话式大模型(主流模型首选),区分角色(系统、用户、AI)。
- 组成:由系统消息、用户消息、AI 消息模板组合而成,对应模型对话上下文结构。
- 适用:人机对话、多轮问答、智能助手、RAG 对话场景。
3.少样本模板FewShotPromptTemplate
- 定位:内置示范样例(Few-shot),引导模型按指定规则、格式、风格输出。
- 扩展:搭配
ExampleSelector可动态筛选样本,避免提示词超长。 - 适用:文本分类、实体抽取、格式约束、规则化任务。
4. 管道组合模板PipelinePromptTemplate
- 定位:模块化拼接多个子模板,拆分复杂长提示词。
- 特点:分层组装、逻辑解耦,便于分段管理和迭代。
- 适用:超长提示词、多段式指令、复杂业务流程提示。
5. 细分角色消息模板
包含SystemMessagePromptTemplate、HumanMessagePromptTemplate、AIMessagePromptTemplate,是ChatPromptTemplate的底层单元,单独用于精细化构建单条角色消息。
三、核心通用特性
- 变量机制:统一使用
{var}作为占位符,input_variables声明模板所需变量,变量名必须一一对应。 - 渲染方式:
format():输出纯文本字符串;format_messages():输出模型可识别的消息对象(对话模板专用)。
- 复用性:模板一次定义,多处调用,大幅减少重复代码。
- 扩展性:可结合记忆组件、检索器、工具链,适配 RAG、Agent、链式调用等高级场景。
四、选型速览
| 模板类型 | 主要用途 | 模型适配 |
|---|---|---|
| PromptTemplate | 单轮文本指令 | 文本补全模型 |
| ChatPromptTemplate | 多角色对话、上下文交互 | 对话类大模型(主流) |
| FewShotPromptTemplate | 样本示范、规则 / 格式约束 | 全模型,侧重标准化任务 |
| PipelinePromptTemplate | 复杂长提示词拆分 | 所有场景,侧重可维护性 |
五、典型应用链路
模板定义 → 变量传入渲染 → 生成标准提示词 / 消息列表 → 传入大模型执行任务,是 LangChain 各类应用(问答、RAG、Agent、数据处理)的标准前置环节
