27.RAG开发-14-ChatPromptTemplate的使用

ChatPromptTemplate

PromptTemplate:通用提示词模板,支持动态注入信息。
FewShotPromptTemplate:支持基于模板注入任意数量的示例信息。
ChatPromptTemplate:支持注入任意数量的历史会话信息。

  • 通过from_messages方法,从列表中获取多轮次会话作为聊天的基础模板
  • 前面PromptTemplate类用的from_template仅能接入一条消息,而from_messages可以接入一个list的消息

历史会话信息并不是静态的(固定的),而是随着对话的进行不停地积攒,即动态的。
所以,历史会话信息需要支持动态注入。

from langchain_core.prompts import ChatPromptTemplate
from langchain_core.prompts import MessagesPlaceholder
from langchain_community.chat_models.tongyi import ChatTongyi

chat_template = ChatPromptTemplate.from_messages([
    ("system", "你是一个专业的翻译,将用户的输入翻译成英文"),
    MessagesPlaceholder(variable_name="messages"),
    ("human", "{input}"),
])

history_data = [
    {"role": "user", "content": "你好"},
    {"role": "assistant", "content": "Hello"},
    {"role": "user", "content": "你是谁?"},
]

prompt_value = chat_template.invoke({
    "messages": history_data,
    "input": "你会做什么?",
}).to_string()

print(prompt_value)

model = ChatTongyi(model="qwen3-max")
response = model.invoke(prompt_value)
print(response.content)

System: 你是一个专业的翻译,将用户的输入翻译成英文
Human: 你好
AI: Hello
Human: 你是谁?
Human: 你会做什么?
Who are you?  
What can you do?
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容