PromptTemplate
是 langchain_core
里一个关键组件,其主要用途是构建和管理提示模板。借助 PromptTemplate
,开发者能够把动态参数融入到提示文本里,进而生成个性化的提示信息,以此来和大语言模型进行交互最终获得更准确的回复。下面详细介绍 PromptTemplate
。
1. 基本用途
**PromptTemplate**
是一个通用的提示模板类,用于构建文本形式的提示信息,适用于传统的基于文本交互的大语言模型(LLM)。它将动态参数插入到预定义的文本模板中,生成适合模型输入的提示。
2.安装依赖
要使用 PromptTemplate
,首先需要安装 langchain_core
库,通过以下命令进行安装:
pip install langchain_core
3.模板结构
**PromptTemplate**
使用一个简单的字符串作为模板,其中包含用 {}
括起来的占位符,用于表示需要填充的动态参数。例如:
from langchain_core.prompts import PromptTemplate
template = "请为 {product} 写一个简短的广告语,突出它的 {feature} 特点,适用于 {target_audience}。"
prompt = PromptTemplate(
input_variables=["product", "feature", "target_audience"],
template=template
)
3.1 主要参数
**template**
:字符串类型。提示模板,其中包含用{}
括起来的占位符。**input_variables**
:列表类型。模板字符串里所有占位符的名称。partial_variables
:字典值,键为变量名,值为对应的变量值。通过预先设置部分变量,可以简化后续调用format
或format_prompt
方法时的输入。
4. 输出格式
**PromptTemplate**
:调用format
方法后,输出一个普通的字符串,可直接作为模型的输入。例如:
filled_prompt = prompt_template.partial(product="人工智能", target_audience="上班族")
print(filled_prompt)
5. 使用场景
适用简单的文本生成任务,如文本摘要、问题回答、故事创作等,这些任务通常是一次性的文本交互,不需要多轮对话。
6. 示例代码
PromptTemplate
示例
from langchain.prompts import PromptTemplate
from langchain_ollama import ChatOllama
from langchain_core.output_parsers import StrOutputParser
template = "请为 {product} 产品写一个简短的广告语,突出它的 {feature} 特点,适用于 {target_audience}。"
prompt_template = PromptTemplate(
input_variables=["product", "feature", "target_audience"],
template=template
)
# 使用 partial_variables 预先填充部分变量
partial_prompt = prompt_template.partial(product="智能手表", target_audience="上班族")
model = ChatOllama(model="qwen2.5:3b")
chain = partial_prompt|model|StrOutputParser()
response = chain.invoke({"feature":"智能"})
print(response)