LangChain 使用教程(简单入门)

提示模板

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": <
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值