核心内容摘要
惊变!神樱树下的黑暗低语:八重神子,你还能守护稻妻吗?
LangChain提示词模板解决了LLM应用开发中的两大挑战复杂输入组合和代码复用。
文章详细介绍了四种核心包装器基础PromptTemplate、支持消息列表的ChatPromptTemplate、支持动态示例的FewShotPromptTemplate以及用于组合多个子模板的PipelinePromptTemplate。
通过这些工具开发者可以将提示词从一段文本提升为可管理、可组合、可测试的工程化组件构建标准化、模块化且易于迭代的LLM应用。
在开发基于大语言模型LLM的应用时常常会面临两个挑战一是如何将复杂的用户输入、上下文指令和任务示例组合成模型能理解的提示词Prompt二是在应用迭代中如何避免 Prompt 代码的散落和重复实现高效复用与维护。
早期的“字符串拼接”方式脆弱且混乱而手工编写的 Prompt 也难以保证一致性与最佳效果。
这正是 LangChain 提示词模板Prompt Templates 所要解决的根本问题想要将 Prompt 从“一段文本”提升为“一个可管理、可组合、可测试的工程化组件”的关键模块。
本文将系统剖析 LangChain 提示词模板的设计思想与使用实践。
不仅可以了解到 PromptTemplate 和 ChatPromptTemplate 等基础模板的用法更能掌握如何通过 FewShotPromptTemplate 注入示例、利用管道组合复杂流程从而构建出标准化、模块化且易于迭代的LLM应用。
01—LangChain 的提示词模板在 LangChain 中使用提示词模板是一个将零散的指令和变量标准化、模块化为可复用组件的过程。
在 LangChain 框架中提示词是由 PromptTemplate 这个包装器对象生成的。
每一个 PromptTemplate 类的实例都定义了一种特定类型的提示词格式和生成规则。
想要构造提示词就要学会使用这个包装器的使用。
一般会包含以下 3 个元素1明确的指令指导大模型理解用户的需求并按照特定的方式进行回应。
2少量示例帮助大模型更好地理解任务并生成更专缺的响应。
3用户输入用户的交互内容可以直接引导大模型生成特定回应。
提示词模板的输入在 LangChain 中开发这向提示词模板殊途的数据有很多来源可以分为内部数据和外部数据。
内部数据是指被 LangChain 框架封装好的数据以及开发者写的案例和需求描述文本这些提示词被预先定义在源码 prompt.py 文件中使用时导入即可。
外部数据是指开发者自由添加的数据。
最主要的外部数据是用户的输入、用户和模型的历史聊天记录以及开发者额外增加的知识库、运行的上下文信息等。
提示词模板的输出在 LangChain 中提示词模板输出的是适用于各种模型平台 API 类型的提示词。
可以这样理解当开发者调用 ChatGPT API 接口时本来是需要按照接口规范进行对接现在 LangChain 框架已经封装好了在调用时 PromptTemplate 包装器会生成符合 API 要求的提示词。
02—PromptTemplate 包装器
PromptTemplate 包装器PromptTemplate 是 LangChain 提示词组件中最核心的一个类构造提示词的步骤本质上是实例化这个类的过程。
PromptTemplate 包装器接受内部数据实例化定义的 template 和 input_variables和外部数据在使用链调用时外部数据是通过链组件传递的不是直接传递给提示词模板包装器的。
from langchain import PromptTemplate template 你是一个旅游专家请根据用户提出的描述{msg}给出建议。
# 实例化模板的第一种方式 prompt PromptTemplate(templatetemplate, input_variables[msg]) # 实例化模板的第二种方式 # prompt PromptTemplate.from_template(template) # 将用户的输入通过 format 方法嵌入提示词模板并且做格式化处理 final_prompt prompt.format(msgxxx) print(final_prompt)运行后
ChatPromptTemplate 包装器ChatPromptTemplate 包装器与 PromptTemplate 包装器不同ChatPromptTemplate 的构造的提示词是消息列表支持输出 Message 对象。
LangChain 提供了内置的聊天提示词模板和角色消息提示词模板。
角色消息提示词模板包括 AIMessagePromptTemplate、SystemMessagePromptTemplate、HumanMessagePromptTemplate 这3种。
from langchain.prompts import ( ChatPromptTemplate, PromptTemplate, SystemMessagePromptTemplate, AIMessagePromptTemplate, HumanMessagePromptTemplate ) template 你是一个旅游专家。
system_message_prompt SystemMessagePromptTemplate.from_template(template) human_template 请根据用户提出的描述{msg}给出建议 human_message_prompt HumanMessagePromptTemplate.from_template(human_template) chat_prompt ChatPromptTemplate.from_messages([ system_message_prompt, human_message_prompt ]) final_prompt chat_prompt.format_prompt(msgxxx) print(final_prompt.to_string())运行后与上面是一样的效果可以对比下
FewShotPromptTemplate 包装器FewShotPromptTemplate 是 LangChain 内置的一个少样本提示词模板其独特在于支持动态添加示例和选择示例。
FewShotPromptTemplate 类在参数上多了一些内容比如 examples 和 example_selector这些参数可以在实例化时添加也可以在运行时动态添加。
from langchain.prompts import FewShotPromptTemplate template 词语{input},反义词是{output} example_prompt PromptTemplate(templatetemplate, input_variables[input, output]) examples [ {input: 高, output: 矮}, {input: 胖, output: 瘦}, {input: 黑, output: 白}, ] few_shot_prompt FewShotPromptTemplate( examplesexamples, example_promptexample_prompt, prefix来玩个游戏我说正义词你回答它的反义词, suffix现在轮到你了正义词{input}反义词, input_variables[input] ) final_prompt few_shot_prompt.format(input高) print(final_prompt)运行后
PipelinePromptTemplate 包装器PipelinePromptTemplate 是 LangChain 中用于组合串联多个子提示模板的高级工具。
它的核心设计思想是 “分治”与“组装”将一个复杂的提示工程任务拆解为多个逻辑独立、可复用的子模板再像管道一样将它们有序地连接形成最终的完整提示。
from langchain.prompts import PromptTemplate #
角色定义模板定义助手的基本身份和风格 role_template 你是一名{company}的{style}技术支持专家。
你必须根据提供的产品知识库和对话历史来回答问题。
如果知识库中没有相关信息请如实告知切勿编造。
role_prompt PromptTemplate.from_template(role_template) #
知识库模板从外部系统查询并注入相关知识 kb_template 【相关产品知识】 {knowledge_base} kb_prompt PromptTemplate.from_template(kb_template) #
历史对话模板管理多轮对话的上下文 history_template 【对话历史】 {dialog_history} history_prompt PromptTemplate.from_template(history_template) #
当前问题模板格式化用户的最新输入 question_template 【用户当前问题】 {human_input} question_prompt PromptTemplate.from_template(question_template) # 定义最终提示的“总装图纸” final_template {role_instruction} {knowledge_context} {conversation_context} 请基于以上信息专业、清晰地回答用户问题 {final_question} final_prompt PromptTemplate.from_template(final_template) # 创建 PipelinePromptTemplate建立子模板到最终模板变量的映射关系 from langchain.prompts import PipelinePromptTemplate pipeline_prompt PipelinePromptTemplate( final_promptfinal_prompt, # 指定最终组装的模板 pipeline_prompts[ # 格式: (在final_prompt中的变量名, 对应的子模板) (role_instruction, role_prompt), (knowledge_context, kb_prompt), (conversation_context, history_prompt), (final_question, question_prompt) ] ) # 准备输入变量通常来自应用的不同模块 input_data { company: 天颖科技, style: 耐心且专业, knowledge_base: 产品‘天颖AI’支持OCR等功能。
最新版本为v2。
, dialog_history: 用户天颖AI支持什么功能\n助手支持图生图功能。
, human_input: 那它的最新版本是多少 } # 格式化管道提示引擎会自动按顺序调用所有子模板并组装 full_prompt_text pipeline_prompt.format(**input_data) print(full_prompt_text)运行后可以看出在复杂的情形下需要用到组合模板。
03—技巧与避坑
小技巧1优先使用from_template方法这是最简洁的创建方式能自动提取变量名避免手动声明input_variables的错误。
# 推荐 prompt PromptTemplate.from_template(“翻译成{language}:{text}“) # 繁琐且易错 prompt PromptTemplate(input_variables[“language“, “text“], template“...”)2为变量提供清晰的描述或示例在模板注释或变量名中说明期望的输入这对协作非常有帮助。
template 角色{role_description} # 例如一位严格的历史老师 任务根据以下大纲生成一份{output_length}的课程讲义。
大纲{outline}
常见陷阱1变量不匹配确保 format() 时提供的变量名与模板中定义的完全一致。
善用 .partial() 可以减少此类错误。
2特殊字符转义如果模板内容中包含 { 或 } 但不作为变量需根据模板格式f-string 或 Jinja2进行正确转义。
3忘记调用 .to_messages()使用 ChatPromptTemplate 格式化后发送给模型前务必调用 .to_messages()而不是直接传递字符串。
之前看到有留言说到 LangChain
0 版本问题因为
0 版本今年下半年刚升级有很多存量项目还是以前的版本后续也会更新 LangChain
0 相关文章其实主要还是以思想为主编程思想更重要。
AI时代未来的就业机会在哪里答案就藏在大模型的浪潮里。
从ChatGPT、DeepSeek等日常工具到自然语言处理、计算机视觉、多模态等核心领域技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。
掌握大模型技能就是把握高薪未来。
那么普通人如何抓住大模型风口AI技术的普及对个人能力提出了新的要求在AI时代持续学习和适应新技术变得尤为重要。
无论是企业还是个人都需要不断更新知识体系提升与AI协作的能力以适应不断变化的工作环境。
因此这里给大家整理了一份《2026最新大模型全套学习资源》包括2026最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题、AI产品经理入门到精通等带你从零基础入门到精通快速掌握大模型技术由于篇幅有限有需要的小伙伴可以扫码获取
成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。
这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。
大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。
书籍含电子版PDF
大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。
大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。
大模型行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。
大模型面试题面试不仅是技术的较量更需要充分的准备。
在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。
为什么大家都在学AI大模型随着AI技术的发展企业对人才的需求从“单一技术”转向 “AI行业”双背景。
企业对人才的需求从“单一技术”转向 “AI行业”双背景。
金融AI、制造AI、医疗AI等跨界岗位薪资涨幅达30%-50%。
同时很多人面临优化裁员近期科技巨头英特尔裁员2万人传统岗位不断缩减因此转行AI势在必行这些资料有用吗这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。
本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。
大模型全套学习资料已整理打包有需要的小伙伴可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】