本教程将介绍如何使用 LangChain 库中的提示模板(PromptTemplate)来生成和处理文本。我们将通过具体的代码示例来解释程序的运行逻辑。
1. 导入必要的库
首先,从 langchain_core.prompts
模块中导入 PromptTemplate
类。
from langchain_core.prompts import PromptTemplate
2. 创建和使用基础提示模板
2.1 创建提示模板
使用 PromptTemplate.from_template
方法来创建一个提示模板。模板中可以使用 {topic}
这样的占位符。
prompt_template = PromptTemplate.from_template("Tell me a joke about {topic}")
2.2 调用提示模板
使用 invoke
方法并传入一个字典来填充模板中的占位符。
result = prompt_template.invoke({"topic": "cats"})
print(result.text)
输出:
Tell me a joke about cats
3. 使用聊天提示模板
3.1 创建聊天提示模板
ChatPromptTemplate
允许我们定义多轮对话的提示。每个提示由一个元组组成,包含角色和内容。
from langchain_core.prompts import ChatPromptTemplateprompt_template = ChatPromptTemplate([("system", "You are a helpful assistant"),("user", "Tell me a joke about {topic}")
])
3.2 调用聊天提示模板
同样使用 invoke
方法来填充占位符并获取结果。
result = prompt_template.invoke({"topic": "cats"})
print(result.to_messages())
输出:
[SystemMessage(content='You are a helpful assistant', additional_kwargs={}, response_metadata={}), HumanMessage(content='Tell me a joke about cats', additional_kwargs={}, response_metadata={})]
4. 动态添加消息
4.1 修改模板以包含动态消息
使用 placeholder
来动态添加消息。
prompt_template = ChatPromptTemplate([("system", "You are a helpful assistant"),("placeholder", "{msgs}") # 动态消息占位符
])
4.2 调用模板并添加动态消息
传入一个包含消息的列表来填充 placeholder
。
result = prompt_template.invoke({"msgs": [("user", "Tell me a joke about cat")]})
print(result.to_messages())
输出:
[SystemMessage(content='You are a helpful assistant', additional_kwargs={}, response_metadata={}), HumanMessage(content='Tell me a joke about cat', additional_kwargs={}, response_metadata={})]
总结
通过本教程,我们学习了如何使用 LangChain 的 PromptTemplate
和 ChatPromptTemplate
来创建和处理文本提示。这些工具可以帮助我们灵活地生成和管理多轮对话和动态内容。
参考链接:https://python.langchain.com/docs/concepts/prompt_templates/
希望这个教程对你有所帮助!如果有任何问题,欢迎随时提问。