从零学会规范写 Prompt|LangChain 双模板详解 + 3 套可复用业务案例源码
一、本章学习目标结合前序 DeepSeek 模型调用、消息角色配置、对话历史存储知识点本章吃透 Prompt 标准化管理方案学完具备以下能力认知 Prompt 对大模型输出效果的决定性作用熟练区分并使用PromptTemplate、ChatPromptTemplate两套模板掌握模板变量注入实现提示词复用与解耦独立开发商品文案、学习规划、智能客服三大实用案例使用MessagesPlaceholder挂载、截断多轮对话历史二、Prompt 基础认知1. 什么是 PromptPrompt 就是给到大模型的整套指令集合包含角色定位、工作任务、约束规则、业务入参。极简写法一句话介绍 LangChain 框架企业标准写法你是专业电商运营根据商品信息撰写详情文案 约束150字以内、突出用户收益、禁止夸大宣传2. 为什么要用 Prompt 模板原生使用f-string硬拼接字符串写提示词存在诸多痛点代码臃肿冗余、变量拼接易出错、后期修改维护成本高。模板核心优势固定提示文本与动态业务变量分离一处编写多处复用迭代维护更简单。三、两大核心提示模板详解3.1 PromptTemplate纯文本模板适用场景无 system/user 角色区分单纯文本生成需求基础示例from langchain_core.prompts import PromptTemplate 定义模板{}标记变量占位符 tpl PromptTemplate.from_template(商品{product_name}卖点{selling_points}撰写一句宣传广告语) 填充变量渲染文本 prompt tpl.invoke({product_name: 罗技鼠标, selling_points: 静音、灵敏、无延迟}) 取出渲染后的字符串 print(prompt.text)3.2 ChatPromptTemplate对话模型首选当前主流大模型DeepSeek/GPT/通义千问均采用system、human、ai结构化消息交互该模板为项目开发标配。基础示例from langchain_core.prompts import ChatPromptTemplate tpl ChatPromptTemplate.from_messages([ (system, 身份电商文案师文案简洁写实拒绝浮夸话术), (human, 商品{product_name}卖点{selling_points}编写商品介绍文案) ]) prompt tpl.invoke({product_name: 罗技鼠标, selling_points: 静音、灵敏、无延迟}) 向模型传参必须传递完整 prompt 对象不要单独截取字符串3.3 两种模板核心对比模板名称输出格式角色支持推荐使用场景PromptTemplate纯文本字符串无原生角色区分简单单次文本生成、无对话交互ChatPromptTemplate结构化消息数组原生支持系统/用户/AI 消息聊天机器人、Agent、所有正式业务项目3.4 高质量 Prompt 编写四要素角色限定 AI 身份固定回答风格任务清晰描述需要 AI 完成的工作内容约束限制字数、格式、禁用词汇规避输出跑偏入参标注明确各个变量含义让 AI 精准识别业务数据四、实战案例公共封装模型工厂 model_factory.py消除每个文件重复的模型初始化代码统一管理 DeepSeek 配置# utils/model_factory.py import os from dotenv import load_dotenv from langchain.chat_models import init_chat_model def get_deepSeek_model(temperature: float 0.7): load_dotenv() model init_chat_model( modeldeepseek-v4-flash, model_provideropenai, base_urlos.getenv(DEEPSEEK_BASE_URL), api_keyos.getenv(DEEPSEEK_API_KEY), temperaturetemperature ) return model案例1商品文案自动生成from langchain_core.prompts import ChatPromptTemplate from utils.model_factory import get_deepSeek_model model get_deepSeek_model(temperature0.5) prompt_tpl ChatPromptTemplate.from_messages([ (system, 资深电商运营文案贴合用户体验不使用虚假宣传), (human, 商品名称{product_name} 商品卖点{selling_points} 目标用户{target_user} 要求文案150字以内重点描述用户使用后的实际好处) ]) prompt_val prompt_tpl.invoke({ product_name: 无线静音鼠标, selling_points: 静音按键、蓝牙连接、续航30天、机身轻便, target_user: 办公、图书馆学习的上班族 }) res model.invoke(prompt_val) print(res.content)案例2个性化学习计划生成from langchain_core.prompts import ChatPromptTemplate from utils.model_factory import get_deepSeek_model model get_deepSeek_model(temperature0.5) prompt_tpl ChatPromptTemplate.from_messages([ (system, 编程教学规划师输出落地可执行的学习方案搭配每日练习), (human, 学习科目{topic} 总学习天数{days}天 每日可用时长{hours_per_day}小时 自身基础{level} 需求按天划分学习内容同步配套实操练习) ]) prompt_val prompt_tpl.invoke({ topic: LangChain框架, days: 3, hours_per_day: 1, level: 掌握Python基础语法 }) res model.invoke(prompt_val) print(res.content)案例3电商客服智能回复from langchain_core.prompts import ChatPromptTemplate from utils.model_factory import get_deepSeek_model model get_deepSeek_model(temperature0.7) prompt_tpl ChatPromptTemplate.from_messages([ (system, 电商客服回复先安抚用户情绪客观说明问题并给出解决方案全文120字以内), (human, 用户提问{user_question}订单状态{order_status}物流详情{shipping_info}) ]) prompt_val prompt_tpl.invoke({ user_question: 快递三天物流没更新包裹是不是丢失了, order_status: 已发货, shipping_info: 包裹抵达上海转运中心暂未更新下级物流节点 }) res model.invoke(prompt_val) print(res.content)五、MessagesPlaceholder 对话历史占位符5.1 核心作用普通变量仅能传入一段文本MessagesPlaceholder支持批量插入多条历史对话消息是实现多轮上下文记忆的核心组件同时支持裁剪历史消息条数防止上下文超长溢出。5.2 参数说明参数释义variable_name绑定变量名称调用入参名称必须保持一致optional默认 False不传历史会报错True 代表历史为空也可正常运行n_messages仅读取最近 N 条对话管控上下文长度5.3 完整可运行示例from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from utils.model_factory import get_deepSeek_model model get_deepSeek_model(temperature0.7) chat_tpl ChatPromptTemplate.from_messages([ (system, 友好的通用问答助手), MessagesPlaceholder(variable_namehistory, optionalTrue, n_messages4), (human, {question}) ]) res model.invoke(chat_tpl.invoke({ history: [(human, 我叫Alice), (ai, 很高兴认识你Alice)], question: 请问我的名字是什么 })) print(res.content)⚠️ 注意history 入参必须是消息列表格式禁止直接传入普通字符串六、本章知识总结 常见问题解答核心总结正式项目优先使用ChatPromptTemplatePromptTemplate只用于简单纯文本生成场景模板实现提示词与业务数据解耦大幅提升代码可维护性MessagesPlaceholder专门用来托管、截断多轮对话上下文高频问题答疑Prompt 写得越长回答效果越好答并非越长越好指令逻辑清晰精简即可过多的约束条件会造成模型顾此失彼输出更容易混乱。模型无法严格按照我的指令输出怎么办大模型属于概率生成式模型无法做到 100% 严格执行指令如果对输出格式、字段有强约束后续章节会讲解结构化输出、代码校验的解决方案。 码字不易如果文章对你有帮助点赞收藏不迷路后续持续更新 LangChain 全套实战干货

相关新闻

C++多进程编程深度解析:从fork到IPC实战应用

C++多进程编程深度解析:从fork到IPC实战应用

1. 项目概述:为什么需要深入理解C多进程编程?在C开发者的日常工作中,尤其是当项目从单机玩具程序迈向高性能服务器、复杂桌面应用或系统级工具时,一个绕不开的话题就是并发与并行。我们常听到多线程,但多进程编程往往被…

2026/7/23 7:31:55 阅读更多 →
Linux 查找文件指令总结

Linux 查找文件指令总结

一、find(最强大、最常用)基本语法find [搜索路径] [匹配条件] [执行动作]按名称查找# 精确匹配文件名 find / -name "test.txt"# 忽略大小写 find /home -iname "Readme.md"# 通配符匹配 find /var -name "*.log" find /…

2026/7/23 7:31:55 阅读更多 →
嵌入式I2C通信实战:从寄存器配置到驱动实现与故障排查

嵌入式I2C通信实战:从寄存器配置到驱动实现与故障排查

1. 项目概述:从寄存器位到通信总线在嵌入式开发的底层世界里,我们写的每一行C代码,最终都要落到芯片内部那些由0和1组成的寄存器上。很多人觉得寄存器编程枯燥,无非是查手册、写数值。但在我看来,真正理解一个外设&…

2026/7/23 7:31:55 阅读更多 →

最新新闻

Unity集成UniGif开源库:免费实现GIF动态图像播放全攻略

Unity集成UniGif开源库:免费实现GIF动态图像播放全攻略

1. 项目概述:为什么Unity开发者需要关注GIF? 在Unity项目里处理动态图像,尤其是GIF,一直是个有点“拧巴”的活儿。官方没有原生支持,Asset Store里功能完善的插件大多收费,而网上那些零散的代码片段要么性能…

2026/7/23 15:38:21 阅读更多 →
高速扩容与迭代重塑:全球锂离子动力电池行业发展全景解析

高速扩容与迭代重塑:全球锂离子动力电池行业发展全景解析

一、行业核心定义与产品细分体系 锂离子动力电池是适配车辆及各类动力设备的专用储能供电系统,依托锂离子充放电原理实现能量储存、动力输出、制动能量回收及全域安全监控,是新能源装备的核心核心零部件,直接决定设备续航、动力、安全及成本水…

2026/7/23 15:38:21 阅读更多 →
2026年AI搜索优化技术解析与TOP5服务商评测

2026年AI搜索优化技术解析与TOP5服务商评测

1. 2026年AI搜索优化行业现状与核心价值 当前AI搜索优化技术已从单纯的关键词匹配升级为语义理解与用户意图识别的综合系统。根据最新行业报告显示,采用AI驱动的搜索优化方案可使网站流量平均提升47%,转化率提高32%。这背后是自然语言处理(NL…

2026/7/23 15:38:21 阅读更多 →
博一新生科研入门工具全指南:助力新生快速掌握科研入门核心实用工具

博一新生科研入门工具全指南:助力新生快速掌握科研入门核心实用工具

对于科研人员来说,文献工作往往伴随着两个极端的痛苦:一是搜索时的大海捞针,为了几篇核心文献,不得不花费数小时翻阅成百上千条琐碎的摘要;二是阅读时的翻译折磨,在专业术语和复杂的 LaTeX 公式间反复推敲&…

2026/7/23 15:38:21 阅读更多 →
TensorFlow对象检测在Jetson Nano上的实战与优化

TensorFlow对象检测在Jetson Nano上的实战与优化

1. TensorFlow对象检测实战全景解析 在计算机视觉领域,对象检测技术正以惊人的速度重塑着各行各业的智能化进程。作为一名长期奋战在算法落地一线的工程师,我见证了从TensorFlow 1.x到2.x的架构变革,也亲历了无数项目从训练到部署的完整生命周…

2026/7/23 15:38:21 阅读更多 →
低代码选型90%踩坑!企业转型别再被“伪高效”忽悠

低代码选型90%踩坑!企业转型别再被“伪高效”忽悠

在数字化转型的浪潮中,低代码凭借“快速开发、降低门槛、灵活迭代”的核心优势,成为企业打破技术壁垒、实现业务快速落地的关键抓手。IDC《2026Q1 中国低代码市场技术评估报告》显示,2025年中国低代码市场规模已达131亿元,年复合增…

2026/7/23 15:37:21 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻