LangChain入门系列(四):PromptTemplate 与 Message揭秘,大模型入门到精通,收藏这篇就足够了!
本文将全面拆解两者的核心能力,并通过对比明确其本质差异,助力你在实际开发中精准选型。
在LangChain构建LLM应用的流程中,PromptTemplate(提示模板) 和 Message(消息) 是两个贯穿 “提示生成→对话交互” 的核心组件。前者解决 “提示标准化与复用” 问题,后者则是 “对话上下文承载” 的最小单元 —— 但很多开发者容易混淆两者的定位与用途。本文将全面拆解两者的核心能力,并通过对比明确其本质差异,助力你在实际开发中精准选型。
一、什么是提示词(Prompt)
在大模型领域,经常耳熟能详的一个英文单词是Prompt,那么到底Prompt是什么呢?我们不妨打开有道翻译,看看它的解释:
在讨论大模型时,我们常说的"Prompt" 是指:输入给大模型的问题或者指令,这些输入指令用来引导模型生成相应的回答或输出。提示词的质量直接影响模型的回答效果,决定着模型能否完成预期的任务。
关于提示词以及提示词工程本文不做过多展开,感兴趣的读者可以参考如下推荐链接去学习:
1、OpenAI官方教程:
https://platform.openai.com/docs/guides/prompt-engineering
2、提示工程教程网站:
https://www.promptingguide.ai/zh/introduction
二、提示词模版(Prompt Template)
LangChain 中的 PromptTemplate 是用于定义提示结构、分离静态文本与动态变量的工具,其本质是 “将重复的提示逻辑抽象为可复用模板”,避免开发者每次调用模型时都手动拼接字符串。在LangChain框架中,提示词是由提示词模版(PromptTemplate)类生成的。每一个PromptTemplate类的实例都定义了一种特定的提示词和生成规则。
1、核心价值
-
复用性:一套模板可在多场景重复使用(如电商客服的 “订单查询提示”,只需替换 “订单号” 变量);
-
一致性:确保不同输入下的提示格式统一(如所有用户提问都包含 “系统指令 + 用户问题” 结构);
-
动态注入:支持将外部数据(如用户输入、数据库查询结果)作为变量注入模板,生成个性化提示;
-
可维护性:模板集中管理,修改静态逻辑(如 “回复风格要求”)时无需改动所有调用代码。
2、提示词模板分类
提示词模板的输出是一个 PromptValue(提示值),该 PromptValue 可传递给LLM(大语言模型)或ChatModel(聊天模型),也可转换为字符串或消息列表。PromptValue 存在的意义,是为了让字符串和消息之间的切换更便捷。提示模板主要分为以下几种类型:
(1)字符串提示模板(StringPromptTemplates)
这类提示模板用于格式化单个字符串,通常适用于较简单的输入场景。例如,构建和使用字符串提示模板的常见方式如下:
from langchain_core.prompts import PromptTemplate
(2)聊天提示模板(ChatPromptTemplates)
这类提示模板用于格式化消息列表,其本身由一系列子模板组成。例如,构建和使用聊天提示模板的常见方式如下:
from langchain_core.prompts import ChatPromptTemplate
在上述示例中,调用该聊天提示模板时会生成两条消息:第一条是系统消息(无待填充变量),第二条是用户消息(会通过用户传入的 “topic” 变量进行格式化)。调用结果如下所示:
(3)消息占位符(MessagesPlaceholder)
这类提示模板用于在特定位置插入消息列表。在前面的聊天提示模板示例中,我们展示了如何格式化两条字符串类型的消息;但如果需要让用户传入一组消息并插入到模板的指定位置,就需要用到消息占位符。使用方式如下:
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
上述代码最终会生成 4 条消息:1 条系统消息 + 传入的 3 条消息(2 条用户消息、1 条 AI 消息)。若传入 5 条消息,则最终会生成 6 条消息(1 条系统消息 + 5 条传入消息)。这种方式在需要将消息列表插入模板指定位置时非常实用。
此外,也可不直接使用 MessagesPlaceholder 类,通过以下简化方式实现相同功能:
prompt_template = ChatPromptTemplate([
三、Message
LangChain 中的 Message 是对话场景下交互信息的最小单元,它不仅包含 “内容”,还绑定了 “角色”(如用户、系统、模型),是Chat Model与外界交互的 “标准数据格式”。
1.核心价值
-
区分交互角色:明确消息的发送者(系统 / 用户 / 模型 / 工具),让 Chat Model 理解对话逻辑(如优先遵循 System指令,响应Human 输入);
-
承载上下文:多轮对话中,Message 列表构成 “聊天历史”,让模型能 “记住” 过往交互(如用户之前提到的 “订单号”);
-
支持多模态与工具调用:扩展文本之外的内容(如图像、工具调用结果),是多模态对话与工具联动的基础。
- 分类与详细解析:按角色划分的 Message 类型
LangChain 按 “交互角色” 将 Message 分为 4 大类,每种角色对应明确的功能定位,覆盖从基础对话到工具调用的全场景。
类型 | 角色 | 核心作用 | 适用场景 |
SystemMessage | system | 设定模型的 “行为准则”,定义对话的全局规则(如语气、能力边界、输出格式) | 所有对话场景,尤其是需要约束模型行为时(如 “你是电商客服,仅回答订单问题”) |
HumanMessage | human | 承载用户的输入信息(如提问、需求描述) | 用户与模型的直接交互(如 “查询我的订单状态”) |
AIMessage | AI | 承载模型的输出信息(即模型的回复内容) | 多轮对话中记录模型历史回复,用于上下文衔接 |
ToolMessage | 承载工具 / 函数调用的结果(如 API 返回数据、数据库查询结果) | 工具调用场景(如模型调用 “天气 API” 后,用此类型传递天气数据给模型) |
(1)SystemMessage:模型的 “行为说明书”
-
核心逻辑:优先级最高的消息,用于预先定义模型的行为,且模型会默认认为 System 指令是 “全局规则”,贯穿整个对话;
-
注意事项:内容需具体、明确,避免模糊表述(如 “回答简洁” 不如 “回答不超过 3 句话,每句不超过 20 字”)。
from langchain_core.messages import SystemMessage
(2)HumanMessage 与 AIMessage:对话的 “输入输出载体”
-
HumanMessage:用户输入的直接映射,可包含文本、多模态内容(如图像 URL,需模型支持);
-
AIMessage:模型回复的存储载体,多轮对话中需将历史 AIMessage 与 HumanMessage 一起传入模型,确保上下文连贯。
代码示例(多轮对话列表):
from langchain_core.messages import HumanMessage, AIMessage
(3)ToolMessage:工具调用的 “结果传递器”
-
核心逻辑:当模型调用外部工具(如 API、数据库)后,工具的返回结果需用 ToolMessage 封装,再传入模型,模型会基于该结果生成最终回复;
-
关键属性:除了 content(工具结果),还需指定 name(工具名称,与模型调用时的工具名一致),确保模型关联 “调用请求” 与 “结果”。
代码示例(工具调用流程):
from langchain_core.messages import HumanMessage, AIMessage, FunctionMessage
- Message 的格式与兼容性
LangChain 支持两种主流的 Message 格式,确保与不同模型生态兼容:
-
LangChain原生格式:基于langchain_core.messages 中的类(如 SystemMessage),结构清晰,支持多模态扩展;
-
OpenAI 格式:字典格式,键为 role(对应 type)和 content(对应 content),如 {“role”: “system”, “content”: “你是助手”},适合从 OpenAI 生态迁移的项目。
两者可通过 from_dict 和 to_dict 方法互相转换:
from langchain_core.messages import SystemMessage
- Message 的核心特性总结
-
输入:角色(type)+ 内容(content,支持文本 / 多模态)+ 可选属性(如工具调用信息);
-
输出:标准化的 Message 对象,可直接传入 Chat Model;
-
核心目标:承载对话上下文,区分交互角色,支持复杂对话与工具联动;
-
依赖场景:所有 Chat Model 调用场景,是多轮对话、工具调用、多模态交互的基础。
四、PromptTemplate 与 Message 的关系
很多开发者混淆两者,核心是未明确 “模板” 与 “消息” 的差异。下表从 6 个核心维度对比,帮你彻底厘清:
对比维度 | PromptTemplate | Message |
本质属性 | 「提示生成器」:静态逻辑与动态变量的组合,是 “生产提示的模板” | 「交互数据单元」:对话中实际传递的信息载体,是 “生产出的产品” |
核心结构 | 静态文本 + 变量占位符(如 {user_question}),结构是 “模板化的规则” | 角色(type)+ 内容(content),结构是 “结构化的交互数据” |
核心用途 | 1. 标准化提示生成流程;2. 复用提示逻辑;3. 动态注入变量(如用户输入) | 1. 承载对话上下文;2. 区分交互角色(系统 / 用户 / 模型);3. 传递工具调用结果 |
与模型的交互模式 | 「预处理阶段」:在调用模型前,将模板与变量结合,生成最终的 “输入内容”(字符串或 Message 列表),不直接与模型交互 | 「交互阶段」:直接作为模型的输入 / 输出(输入是 Human/System Message,输出是 AIMessage),是模型交互的 “直接对象” |
生命周期 | 初始化后可重复使用(如一套客服模板可服务所有用户),生命周期长 | 动态生成与销毁(每轮对话生成新的 Message,对话结束后可丢弃或归档),生命周期短 |
依赖关系 | ChatPromptTemplate 依赖 Message 的角色定义(如 SystemMessage 模板),最终生成 Message 列表 | 可独立创建(如手动构建 Message 列表),也可由 ChatPromptTemplate 生成,是 “被生成的对象” |
五、应用场景分析
在实际 LLM 应用中,两者并非孤立,而是协同工作,以下是两个典型场景:
- 多轮对话机器人(如客服助手)
-
PromptTemplate:用 ChatPromptTemplate 定义 “系统指令 + 历史占位符 + 用户问题模板”,确保所有用户的对话都遵循统一规则;
-
Message:用 MessagesPlaceholder 动态注入 “聊天历史”(HumanMessage + AIMessage 列表),让模型记住过往交互;
-
流程:每次用户提问 → 模板注入 “历史 + 新问题” 生成 Message 列表 → 传入模型 → 模型返回 AIMessage → 更新聊天历史。
- RAG 问答系统(基于文档的问答)
- PromptTemplate:用 ChatPromptTemplate 定义 “系统指令(基于文档回答)+ 文档片段变量 + 用户问题模板”,如:
rag_template = ChatPromptTemplate.from_messages([
-
Message:模板注入 “文档片段(动态变量)+ 用户问题” 生成 Message 列表,传入 Chat Model,模型返回基于文档的 AIMessage;
-
优势:模板确保 “文档片段 + 问题” 的格式统一,Message 确保模型能正确识别 “系统指令” 与 “用户问题” 的角色。
六、总结:如何正确选择与使用?
当你需要标准化提示逻辑、复用提示结构时,用PromptTemplate,优先选择 ChatPromptTemplate(适配 Chat Model,与 Message 无缝衔接)。
当你需要承载对话上下文、区分交互角色时:用Message,按场景选择 SystemMessage(定规则)、HumanMessage(用户输入)、AIMessage(模型回复)。
核心原则:PromptTemplate 是 “生产 Message 的工具”,Message 是 “与模型交互的载体”—— 先定义模板确保逻辑统一,再通过模板生成 Message 实现交互。
掌握两者的核心逻辑与区别,是构建稳定、可维护的 LangChain 应用的基础。无论是简单的对话机器人,还是复杂的 RAG 系统、工具调用应用,都需要通过 “模板标准化” 与 “消息结构化” 的协同,实现高效的 LLM 交互。
想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2025 年 AI 大模型全套学习资料
已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享
!
👇👇扫码免费领取全部内容👇👇
一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势
想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI
:
1. 100+本大模型方向电子书
2. 26 份行业研究报告:覆盖多领域实践与趋势
报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:
- 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
- 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
- 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
- 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。
3. 600+套技术大会 PPT:听行业大咖讲实战
PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:
- 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
- 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
- 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
- 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。
二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走
想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!
1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位
面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析
:
2. 102 道 AI 大模型真题:直击大模型核心考点
针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:
3. 97 道 LLMs 真题:聚焦大型语言模型高频问题
专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:

三、路线必明: AI 大模型学习路线图,1 张图理清核心内容
刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图
」直接帮你划重点,不用再盲目摸索!
路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。
L1阶段:启航篇丨极速破界AI新时代
L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。
L2阶段:攻坚篇丨RAG开发实战工坊
L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。
L3阶段:跃迁篇丨Agent智能体架构设计
L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。
L4阶段:精进篇丨模型微调与私有化部署
L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。
L5阶段:专题集丨特训篇 【录播课】

四、资料领取:全套内容免费抱走,学 AI 不用再找第二份
不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:
👇👇扫码免费领取全部内容👇👇
2025 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!
更多推荐
所有评论(0)