编程助手学Python--Deepseek对提示词模板PromptTemplate / ChatPromptTemplate / ChatMessagePromptTemplate 的理解

编程助手学Python--Deepseek对提示词模板PromptTemplate / ChatPromptTemplate / ChatMessagePromptTemplate 的理解

在构建基于语言模型的应用程序时,PromptTemplateChatPromptTemplateChatMessagePromptTemplate 是常用的工具,用于生成和管理提示(prompts)。以下是它们的详细解释:

1. PromptTemplate

PromptTemplate 是一个用于生成文本提示的模板类。它允许你定义带有变量的模板字符串,并在运行时填充这些变量,生成最终的提示文本。

主要功能:
  • 模板字符串:定义一个包含占位符的字符串模板。
  • 变量填充:在运行时将占位符替换为具体的值。
示例:
from langchain.prompts import PromptTemplate

# 定义一个模板
template = "请告诉我关于{subject}的信息。"
prompt_template = PromptTemplate(input_variables=["subject"], template=template)

# 填充变量
prompt = prompt_template.format(subject="人工智能")
print(prompt)
# 输出: "请告诉我关于人工智能的信息。"

2. ChatPromptTemplate

ChatPromptTemplate 是专门用于生成聊天式提示的模板类。它允许你定义多个消息模板,并将它们组合成一个完整的聊天提示。

主要功能:
  • 多消息模板:支持定义多个消息模板,每个模板可以代表不同的角色(如用户、助手等)。
  • 组合消息:将多个消息模板组合成一个完整的聊天提示。
示例:
from langchain.prompts import ChatPromptTemplate, HumanMessagePromptTemplate

# 定义用户消息模板
human_template = HumanMessagePromptTemplate.from_template("请告诉我关于{subject}的信息。")

# 定义聊天提示模板
chat_prompt = ChatPromptTemplate.from_messages([human_template])

# 填充变量
prompt = chat_prompt.format_prompt(subject="人工智能").to_messages()
print(prompt)
# 输出: [HumanMessage(content='请告诉我关于人工智能的信息。')]

3. ChatMessagePromptTemplate

ChatMessagePromptTemplate 是用于生成单个聊天消息的模板类。它允许你定义消息内容和角色(如用户、助手等)。

主要功能:
  • 消息角色:定义消息的发送者角色(如用户、助手等)。
  • 消息内容:定义消息的内容模板。
示例:
from langchain.prompts import ChatMessagePromptTemplate

# 定义消息模板
message_template = ChatMessagePromptTemplate.from_template(role="user", template="请告诉我关于{subject}的信息。")

# 填充变量
message = message_template.format(subject="人工智能")
print(message)
# 输出: ChatMessage(role='user', content='请告诉我关于人工智能的信息。')

总结

  • PromptTemplate:用于生成简单的文本提示,支持变量替换。
  • ChatPromptTemplate:用于生成复杂的聊天提示,支持多个消息模板的组合。
  • ChatMessagePromptTemplate:用于生成单个聊天消息,支持定义消息角色和内容。

这些工具在构建基于语言模型的应用程序时非常有用,尤其是在需要动态生成提示或处理多轮对话的场景中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值