大模型技术 提示词模板 概述

作者:元Y亨H日期:2026/8/2

在 LangChain 中,提示词模板(Prompt Template) 是构建大模型应用的核心基石。

如果把大模型比作一个“极其聪明但没有记忆的员工”,那么提示词模板就是一份标准化的“工作指南”。它将用户的动态输入与预设的指令、上下文、格式要求结合起来,确保大模型能输出高质量、符合预期的结果。


一、 为什么需要提示词模板?

  1. 逻辑与数据分离:你不需要在代码里硬编码复杂的提示语。你可以定义一个模板,只在运行时注入变量(如用户的问题、背景资料)。
  2. 复用性:同一个任务(如翻译、总结)的指令可以定义一次,多次使用。
  3. 角色注入:轻松为 AI 设定特定的身份(如“资深架构师”或“幽默诗人”)。
  4. 标准化输出:配合前文提到的解析器,通过模板告知模型必须以 JSON 或特定格式返回。

二、 核心模板类型

LangChain 主要提供了两种模板,对应不同的模型接口:

1. PromptTemplate (普通模板)

用于传统的文本补全模型(LLMs),它只是一个简单的字符串模板。

1from langchain.prompts import PromptTemplate
2
3# 1. 定义模板字符串,使用 {variable} 作为占位符
4template = "你是一位专业的{field}教练。请为我制定一个{duration}的训练计划。"
5
6# 2. 实例化模板
7prompt = PromptTemplate(
8    input_variables=["field", "duration"],
9    template=template
10)
11
12# 3. 填充变量生成最终提示词
13final_prompt = prompt.format(field="马拉松", duration="三个月")
14print(final_prompt)
15# 输出: 你是一位专业的马拉松教练。请为我制定一个三个月的训练计划。
16

2. ChatPromptTemplate (对话模板) —— 最常用

用于聊天模型(ChatModels)。它由一组具有不同角色的“消息”组成(System, Human, AI)。

1from langchain.prompts import ChatPromptTemplate
2
3# 定义多角色对话模板
4chat_template = ChatPromptTemplate.from_messages([
5    ("system", "你是一名{language}翻译官,负责将用户输入的中文翻译成{language}。"),
6    ("human", "请翻译这段话:{text}"),
7])
8
9# 填充变量
10messages = chat_template.format_messages(
11    language="法语",
12    text="今天天气真不错"
13)
14# 生成的结果是一组 Message 对象,可直接发送给 ChatOpenAI  Ollama
15

三、 进阶用法:少样本模板 (Few-Shot Prompting)

“少样本”是指给模型几个例子,让它模仿。这在处理复杂逻辑或特定风格时非常有效。

1from langchain.prompts import FewShotPromptTemplate, PromptTemplate
2
3# 1. 准备示例
4examples = [
5    {"input": "开心", "output": "像盛开的花朵一样灿烂"},
6    {"input": "难过", "output": "像阴雨连绵的深秋一样萧索"},
7]
8
9# 2. 定义示例的格式
10example_prompt = PromptTemplate(
11    input_variables=["input", "output"],
12    template="词语: {input}\n比喻: {output}"
13)
14
15# 3. 构建少样本模板
16few_shot_prompt = FewShotPromptTemplate(
17    examples=examples,
18    example_prompt=example_prompt,
19    suffix="词语: {user_input}\n比喻:", # 后缀,即用户的输入
20    input_variables=["user_input"]
21)
22
23print(few_shot_prompt.format(user_input="孤独"))
24# 模型会模仿之前的风格生成关于“孤独”的比喻
25

四、 组合提示词 (Pipeline Prompt)

有时候提示词非常复杂,你可能希望把几个小模板组合成一个大模板。

  • 场景:先设定身份,再引入背景知识,最后提出问题。
  • 实现:使用 PipelinePromptTemplate(由于篇幅,此处仅作概念介绍,它允许将基础模板插入到父模板的占位符中)。

五、 最佳实践技巧

  1. 部分填充 (Partial Formatting): 如果你在程序开始时就知道某些变量(比如当前日期),而另一些变量(比如用户输入)要等会儿才知道,可以使用 partial
1partial_prompt = prompt.partial(date="2024-05-20")  
2# 稍后再填充剩下的变量  
3final_prompt = partial_prompt.format(user_query="你好")  
  1. 外部加载: 为了保持代码整洁,可以将复杂的 Prompt 存储在 yamljson 文件中,通过 LangChain 加载。
  2. LCEL 管道调用: 将模板直接放在链的最前端:
1chain = chat_template | model | output_parser  
2chain.invoke({"language": "英语", "text": "吃了吗?"})  

总结

提示词模板不仅仅是字符串拼接,它是 Prompt 工程的工程化实现。通过 LangChain 的模板系统,你可以:

  • 结构化 地表达任务逻辑。
  • 动态化 地注入实时数据。
  • 模式化 地引导 AI 模仿特定行为。

掌握了 Prompt Template,你就掌握了控制大模型行为的“方向盘”。


大模型技术 提示词模板 概述》 是转载文章,点击查看原文


相关推荐


我用 AI 编程半年,这 5 个 Prompt 技巧让我效率翻倍
吴琼琼2026/7/25

我用 AI 编程半年,这 5 个 Prompt 技巧让我效率翻倍 不是 AI 不行,是你的提示词太随便了。 半年前,我第一次用 AI 辅助编程的时候,体验非常糟糕。 那时候我让 AI 帮我写一个「用户管理系统」,它给我生成了 800 行代码,里面掺杂了 PHP、Python 和莫名其妙的伪代码,接口命名毫无规律,错误处理完全没有。我当时心想:这玩意儿也就这样吧。 转折点发生在一个深夜。我加班改一个数据迁移脚本,困得不行,决定再给 AI 一次机会。但这次,我没有像平时那样随口说一句「帮我写个


官方文档像天书?这本开源的 WorkBuddy"蓝皮书",或许更适合小白入门
程序员晓凡2026/7/17

它不翻译官方说明书,而是用一个个真实任务,带你从第一项工作走到一支 AI 团队。 腾讯推出的全场景 AI 办公工具 WorkBuddy算是国内AI Agent 比较优秀的产品了。 简单来说,它是一个桌面 AI Agent 工作台:你只需要用自然语言描述需求,它就能自主读取本地文件、拆解任务、调用工具,最终交付一份可验收的成果——文档、表格、PPT、数据分析报告,甚至一条完整的视频。 官方文档地址:www.codebuddy.cn/docs/workbu… 你会发现一个问题:官方文档更像是写给


如何使用 Winget 下载 Claude Code 并实现绿色便携安装
越重天2026/7/8

🧑 博主简介:CSDN博客专家,「历代文学网」(PC端可以访问:https://lidaiwenxue.com/#/?__c=1000)总架构师,首席架构师,也是联合创始人!16年工作经验,精通Java编程,高并发设计,分布式系统架构设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友


线程概念与控制(中)
无忧.芙桃2026/6/30

本篇目标: 1.线程库的引入与理解 2.验证之前的概念 3.知道如何创建线程,终止线程,等待线程和分离线程 一.Linux线程控制 1.引入线程库 1.1.创建线程 通过之前对线程的理解,我们已经知道OS中有这么个执行流了,那么如何验证它是真的存在呢?那么就需要接下来的操作 首先我们需要创建一个线程,就需要用到pthread_create函数,如代码: 原型: int pthread_create(pthread_t *thread, const pthread_attr_


Re:Linux系统篇(三十三)文件篇·六:一文讲透 Linux 文件系统:从 EXT2 物理布局到 VFS 源码级全景解析
小此方2026/6/21

◆ 博主名称: 小此方-CSDN博客 大家好,欢迎来到小此方的博客。 ⭐️Linux系列个人专栏: 【主题曲】Linux ⭐️此方的GitHub: github_此方 ⭐️ Re系列专栏:我们思考 (Rethink) · 我们重建 (Rebuild) · 我们记录 (Record) 文章目录 概要&序论一、 EXT2 文件系统的整体磁盘布局1.1 从物理磁盘到逻辑分区


Kimi版超级玛丽效果“惊人”,配额不足5厘米!
甲维斯2026/6/13

让 AI 一句话写一个《超级玛丽》的测试继续! 测完了国内最强的 GLM-5.1 之后,我们来看看国内第二强的 Kimi2.6。 Kimi 这次的表现可是“非常精彩”,我都有点不知道该如何展示! 我就先上一张图吧: 各位有何感想?这是超级玛丽?玛丽呢?管道呢?蘑菇呢? 好像已经没有什么好评了,这个结果....已经很难打分了! 我就不信这个邪了,可能真的是我运气太好了,直接抽到废卡。 我专门用它们的 Kimi Code 再跑了一遍。 这次结果好了一些,但是也很“抽象”! 能玩了,但是并不能玩多


2.PDF长文档完整读取
HappyAcmen2026/6/6

一、先知道什么是RAG 1. 一句话给 RAG 下定义 RAG = 给大模型(比如 ChatGPT、豆包、开源大模型)外挂了一个你自己的私有知识库,让大模型能精准、无差错地回答你私有数据里的内容,不会瞎编、不会用过时的知识。 你可以把 RAG 理解成: 大模型是一个超级会说话、会总结的「秘书」,但她的知识是固定的、过时的,而且完全不知道你电脑里的 PDF、文档、笔记这些私有内容RAG 就是你给这个秘书配的一个专属智能文件柜 + 精准检索神器,你把自己的所有文档、PDF、笔记都放进这个柜子里,秘书


Neo4j + Graph RAG 医疗知识图谱工程实践:患者教育问答真正需要的是“关系可追溯”
swipe2026/5/31

做医疗患者教育问答时,很多团队第一反应是把科普文章、指南摘要、院内宣教材料全部切片,然后丢进向量库。用户问“高血压要看哪个科”“为什么建议做血压监测”“糖尿病患者教育材料应该关联哪些检查”,系统就从文档里召回几段相似文本,再让大模型总结。 这条路能跑通,但很快会遇到一个问题:患者教育知识不是只有“文本相似”,还有大量“实体关系”。 比如“高血压”不是孤立的一段说明,它可能关联到常见表现、风险器官、建议就诊科室、常见检查、生活方式教育材料、随访提醒。用户真正想问的也不一定是“高血压是什么”,而是:


面试通关:JWT 认证与双 Token 机制深度解析
Lee川2026/5/9

面试通关:JWT 认证与双 Token 机制深度解析 本文专为面试准备,以问答形式拆解 JWT 认证体系的核心考点。每个问题都包含"面试怎么说"和"代码怎么写的"两个层面,让你既能侃侃而谈,也能落笔有物。 开篇:为什么面试官爱问 JWT? 在前后端分离成为主流的今天,身份认证 是每个系统必须解决的第一道门槛。JWT(JSON Web Token)作为无状态认证方案的代表,几乎出现在每一份后端/全栈岗位的 JD 中。面试官问 JWT,通常是在考察三个层面的理解:


【动态规划算法】(斐波那契数列模型详解)
承渊政道2026/4/29

🔥承渊政道:个人主页 ❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 ✨逆境不吐心中苦,顺境不忘来时路!✨ 🎬 博主简介: 在算法学习的过程中,动态规划始终是一个绕不开的重要主题.它不仅是解决复杂问题的高效工具,也是面试和竞赛中出现频率极高的核心考点.对于初学者而言,动态规划之所以难,往往不在于代码实现本身,而在于如何理解

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读