【LangChain指南】Prompt templates
我们可以把 Prompt Template 看作是给大语言模型(LLM)下达指令的“标准化模板”。它帮助我们将用户的输入和各种参数,动态地、安全地组装成最终发送给模型的指令 。这极大地提高了我们构建 AI 应用的效率和可维护性 。
一、 基础 PromptTemplate:参数化与复用
这是最基础也是最常用的模板。它允许我们在提示词中定义占位符(如 {topic}
),然后在运行时传入具体的值来生成最终的提示词 。这让我们可以复用同一个模板来处理不同的输入 。
Python 案例 1: 基础 PromptTemplate
from langchain_core.prompts import PromptTemplate# 创建一个简单的提示词模板
template = "请用中文写一篇关于{topic}的简短介绍,大约100字。"
prompt = PromptTemplate.from_template(template)# 使用模板生成具体的提示词
formatted_prompt = prompt.format(topic="量子计算")
print(formatted_prompt)
# 输出: 请用中文写一篇关于量子计算的简短介绍,大约100字。# 或者使用 invoke 方法 (推荐用于新版本)
from langchain_core.runnables import Runnable
result = prompt.invoke({"topic": "人工智能伦理"})
print(result.to_string())
最佳实践: 保持模板简洁明了,避免过于复杂的逻辑 。可以将复杂的提示词分解为多个小的、可重用的模块 。
二、 ChatPromptTemplate:面向对话模型
当我们使用像 GPT-4 这样的聊天模型时,ChatPromptTemplate
是更合适的选择。它可以让我们构建包含系统消息(System Message)、人类消息(Human Message)、AI 消息(AI Message)等角色的复杂对话历史。
Python 案例 2: ChatPromptTemplate
from langchain_core.prompts import ChatPromptTemplate# 创建一个聊天提示模板
chat_template = ChatPromptTemplate.from_messages([("system", "你是一位知识渊博的百科全书,总是用简洁准确的语言回答问题。"),("human", "请解释一下什么是{concept}?"),# 这里可以继续添加 ("ai", "..."), ("human", "...") 来模拟对话历史
])# 生成消息列表
messages = chat_template.format_messages(concept