提示模板
langchain hub prompt
可以从 langchain hub 拉去适合的模板来构成 prompt,例如 ReAct Agent,在下文中也提到了
Langchain hub 链接:https://blog.langchain.ac.cn/langchain-prompt-hub/,可以下载别人的 prompt,也可以管理自己的 prompt
from langchain import hub
prompt = hub.pull("hwchase17/react")
PromptTemplate
适用场景
- 普通文本提示:适用于非对话式模型(如文本生成模型)
- 单一文本输入:将用户输入和模板直接拼接为字符串
- 简单场景:不需要区分系统、用户、AI 消息角色的场景
特点
- 生成纯文本提示
- 通过
{}定义变量插值 - 输出格式为字符串
from langchain_core.prompts import PromptTemplate
# 定义模板
template = """你是一个翻译助手,将中文翻译成英文。
输入内容:{text}
翻译结果:"""
# 创建 prompt
prompt = PromptTemplate.from_template(template)
# 格式化输入
formatted_prompt = prompt_template.format(text="你好,世界!")
# 输出 formatted_prompt:
"""
你是一个翻译助手,将中文翻译成英文。
输入内容:你好,世界!
翻译结果:
"""
ChatPromptTemplate
适用场景
- 对话式模型:专为聊天模型(如 ChatGPT、Qwen 等)设计
- 多角色消息:需要区分系统指令、用户输入、AI 回复的场景
- 复杂对话:需要动态插入对话历史的场景
特点
- 生成结构化消息列表
- 支持角色标签(
system,human,ai) - 输出格式为
ChatMessage对象列表
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.messages import HumanMessage, SystemMessage
# 创建 prompt(包含系统指令和动态历史)
prompt = ChatPromptTemplate.from_messages([
SystemMessage(content="你是一个专业翻译助手,当前时间:{time}"),
MessagesPlaceholder(variable_name="chat_history"), # 动态注入历史
HumanMessage(content="翻译这句话:{input}")
])
# 格式化输入(模拟对话历史)
formatted_messages = prompt.format_messages(
time="2024-01-01 10:00",
chat_history=[
HumanMessage(content="你好!"),
AIMessage(content="Hello!")
],
input="今天天气很好"
)
# 输出 formatted_prompt:
"""
[
SystemMessage(content='你是一个专业翻译助手,当前时间:2024-01-01 10:00'),
HumanMessage(content='你好!'),
AIMessage(content='Hello!'),
HumanMessage(content='翻译这句话:今天天气很好')
]
"""
普通 Chain
LLMChain
# 注意:LangChainDeprecationWarning: The class `LLMChain` was deprecated in LangChain 0.1.17 and will be removed in 1.0. Use :meth:`~RunnableSequence, e.g., `prompt | llm`` instead.
from langchain.chains import LLMChain
# 支持的功能示例
chain = LLMChain(
llm=llm,
prompt=prompt,
memory=memory, # 内置记忆管理
output_key="result", # 自定义输出字段名
verbose=True, # 开启详细日志
callbacks=[handler], # 回调系统
.....
)
一轮问答
prompt 构造:prompt & json output parser
from langchain.prompts import PromptTemplate
from langchain_core.output_parsers import JsonOutputParser
# 输出 json 格式(对应 partial_variables,如果不需要约束去掉就好了 )
json_schema = {
"type": "object",
"properties": <

最低0.47元/天 解锁文章
962

被折叠的 条评论
为什么被折叠?



