PromptTemplate 提示词模板:搞懂模板和占位符,其实很简单
前面我们已经知道,和 AI 对话时,我们输入的内容叫做 Prompt,也就是提示词。
比如:
帮我写一个 Java 冒泡排序。
这就是一个最普通的提示词。
但实际开发时,会遇到一个问题:
如果每个用户进来,都只是随便输入一句话,那么 AI 得到的信息可能不完整,最后生成出来的结果也不稳定。
所以,我们就需要 提示词模板 PromptTemplate。
一、什么是提示词模板?
提示词模板,其实可以理解成:
提前给 AI 准备好一套固定的“提问格式”。
用户只需要填写其中几个会变化的内容。
比如我们想做一个“AI 代码助手”,可以提前准备这样一个模板:
你是一位资深的「编程语言」开发工程师。 请根据「功能描述」完成任务。 要求代码包含详细注释,并使用最佳实践。
这里有些内容每次都一样:
- 你是一位资深开发工程师
- 代码需要详细注释
- 使用最佳实践
这些属于 固定内容。
但有些内容每次可能不一样:
- 编程语言
- 功能描述
这些就是 动态内容。
所以提示词模板的核心思想就是:
固定内容提前写好,动态内容以后再填进去。
二、什么是提示词占位符?
既然有些内容需要以后再填写,就需要先给它们“留位置”。
这个位置就叫:
占位符。
比如:
你是一位资深的
{lang}开发工程师,请帮我完成{description}。
这里:
{lang}
表示编程语言。
{description}
表示用户具体想实现什么功能。
这两个就是 提示词占位符。
你可以把占位符理解成一个“空格子”。
模板提前把格子留出来,真正使用的时候,再把数据填进去。
例如模板是:
你是一位资深的
{lang}开发工程师,请帮我完成{description}。
用户输入:
- lang:Java
- description:实现一个用户登录功能
最终真正发送给 AI 的提示词,就会变成:
你是一位资深的 Java 开发工程师,请帮我完成一个用户登录功能。
所以一定要记住:
占位符本身不是最终内容,它只是一个等待被替换的位置。
三、为什么要使用提示词模板?
可能你会想:
我直接把用户输入的内容发给 AI 不就行了吗?
当然可以。
但问题是,用户的输入往往非常简单。
比如用户只输入:
写一个冒泡排序。
如果直接把这句话交给 AI,AI 虽然也能回答,但结果可能比较随意。
如果我们使用提示词模板:
你是一位资深 Java 开发工程师。 用户需求:写一个冒泡排序。 要求:
- 给出完整实现;
- 添加详细注释;
- 使用规范的写法;
- 最后简单解释实现思路。
即使用户只说了几个字,我们也能通过模板偷偷帮他补充很多要求。
这就是 PromptTemplate 很重要的地方:
用户负责说“想干什么”,模板负责告诉 AI“应该怎么干”。
四、一个提示词模板通常包含什么?
以后自己设计提示词模板,可以从下面几个方向考虑。
1. 角色
告诉 AI:
你是谁。
例如:
你是一名资深 Java 工程师。
或者:
你是一名英语老师。
又或者:
你是一名产品经理。
角色不同,AI 回答问题的角度也会发生变化。
2. 任务
告诉 AI:
你要做什么。
例如:
帮用户分析代码中的问题。
或者:
根据用户提供的主题写一篇文章。
3. 用户提供的数据
也就是我们前面讲的 占位符。
例如:
用户的问题是:
{question}
或者:
文章主题:
{topic}
4. 输出要求
告诉 AI:
最后应该怎么回答。
例如:
请使用 Markdown 输出。
请控制在 500 字以内。
请分步骤说明。
请使用通俗易懂的语言。
很多时候,AI 回答得“不符合预期”,不是 AI 不会,而是我们根本没有把输出要求告诉它。
五、为什么占位符非常重要?
占位符最大的价值,就是让一个提示词模板可以 重复使用。
比如有一个翻译模板:
请把下面的内容翻译成
{language}:{text}
第一次:
- language:英文
- text:你好
第二次:
- language:日文
- text:欢迎来到中国
第三次:
- language:韩文
- text:今天天气不错
虽然每次填写的数据不同,但是整个提示词结构不用重新写。
这就是模板。
所以可以把它理解成:
模板 = 固定规则 + 动态变量。
而动态变量所在的位置,就是:
占位符。
六、什么时候应该使用提示词模板?
如果只是自己偶尔问 AI 一个问题,其实不一定需要模板。
但如果你正在开发一个 AI 应用,里面有大量重复任务,就非常适合使用。
例如:
- AI 写文章
- AI 生成代码
- AI 翻译
- AI 总结文章
- AI 客服
- AI 简历优化
- AI 商品描述生成
- AI SQL 生成
- AI 面试助手
这些功能都有一个共同特点:
任务规则基本固定,用户输入的数据不断变化。
这种场景就是 PromptTemplate 最适合发挥作用的地方。
七、最后记住一句话
学习 PromptTemplate,不需要把它想得特别复杂。
你只需要记住:
Prompt 是给 AI 的完整指令。
PromptTemplate 是可以重复使用的提示词模板。
占位符是模板里面等待填入动态数据的位置。
例如:
请把
{text}翻译成{language}。
其中:
- 整句话是提示词模板;
{text}和{language}是占位符;- 真正运行时,把用户的数据填进去;
- 填充完成之后,再发送给 AI。
所以 PromptTemplate 的本质其实就是:
先写好一套 AI 提问公式,以后只替换里面会变化的数据。
把这一点理解了,PromptTemplate 基本就入门了。