LangChain Chain链

LangChain chain链

Chain链式LangChain中的核心概念,它允许将多个组件(如提示模板、模型、输出解析器等)连接起来,构建一个处理特定任务的“链式”应用。 旨在简化复杂任务的构建过程

核心工作原理:将组件串联,上一个组件的输出作为下一个组件的输入

chain = prompt_template | model

核心前提:即Runnable子类对象才能入链(以及Callable、Mapping接口子类对象也可以加入,用的不多)

image

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)

image

LangChain中链将各个组件串联在一起,按顺序执行,前一个组件输出作为下一个组件输入

  • 可以通过|符号来让各个组件形成链
  • 成链的各个组件,需要是Runnable接口的子类
  • 形成的链式RunnableSequence对象 (RunnableSerializable子类)(也是Runnable接口子类)
  • 可通过链调用invokestream触发整个链条的执行
posted @ 2026-03-03 11:54  风陵南  阅读(42)  评论(0)    收藏  举报