Bootstrap

1.langchain中的prompt模板(Prompt Templates)

本教程将介绍如何使用 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 ChatPromptTemplate

prompt_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 的 PromptTemplateChatPromptTemplate 来创建和处理文本提示。这些工具可以帮助我们灵活地生成和管理多轮对话和动态内容。

参考链接:https://python.langchain.com/docs/concepts/prompt_templates/

希望这个教程对你有所帮助!如果有任何问题,欢迎随时提问。

;