LangChain Chain链
LangChain chain链
Chain链式LangChain中的核心概念,它允许将多个组件(如提示模板、模型、输出解析器等)连接起来,构建一个处理特定任务的“链式”应用。 旨在简化复杂任务的构建过程
核心工作原理:将组件串联,上一个组件的输出作为下一个组件的输入
chain = prompt_template | model
核心前提:即Runnable子类对象才能入链(以及Callable、Mapping接口子类对象也可以加入,用的不多)

from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_community.chat_models.tongyi import ChatTongyi
chat_template = ChatPromptTemplate.from_messages(
[
("system", "你是一个唐朝诗人"),
("ai", "我是一个唐朝诗人,只写唐诗"),
MessagesPlaceholder(variable_name="history"),
("human", "写一首宋词"),
]
)
history_data = [
("human", "写一首唐诗"),
("ai", "床前明月光,疑是地上霜。举头望明月,低头思故乡。"),
("human", "再写一首宋词"),
("ai", "我不会写宋词,我只写唐诗"),
]
model = ChatTongyi(model="deepseek-v3.2")
# 组成链 要求每个组件都是Runnable接口的子类
chain = chat_template | model
res = chain.invoke({"history": history_data})
print(res.content)

LangChain中链将各个组件串联在一起,按顺序执行,前一个组件输出作为下一个组件输入
- 可以通过
|符号来让各个组件形成链 - 成链的各个组件,需要是
Runnable接口的子类 - 形成的链式
RunnableSequence对象 (RunnableSerializable子类)(也是Runnable接口子类) - 可通过链调用
invoke或stream触发整个链条的执行

浙公网安备 33010602011771号