1. Runnable与LCEL联动机制解析
在LangChain生态中,Runnable作为基础执行单元与LCEL(LangChain Expression Language)的协同工作,构成了框架最核心的流程编排能力。这种设计模式类似于Unix系统中的管道(pipe)机制——每个Runnable相当于一个独立处理器,而LCEL则提供了连接这些处理器的标准化接口。
1.1 Runnable的核心特性
Runnable接口定义了四种基础执行模式:
- 同步调用:基础的
invoke()方法,适用于单次阻塞式调用 - 异步调用:
ainvoke()方法实现非阻塞执行 - 批量处理:
batch()方法支持列表输入的高效处理 - 流式输出:
stream()方法实现实时数据推送
python复制# 典型Runnable实现示例
from langchain_core.runnables import RunnableLambda
def string_reverser(text: str) -> str:
return text[::-1]
runnable = RunnableLambda(string_reverser)
print(runnable.invoke("hello")) # 输出: olleh
1.2 LCEL的粘合作用
LCEL通过操作符重载实现了声明式的链式组合,主要提供三种连接方式:
- 管道操作符 (
|):数据从左向右流动 - 并行组合符 (
&):多分支并行执行 - 条件路由符:根据输入动态选择分支
python复制from langchain_core.runnables import RunnablePassthrough
chain = (
RunnablePassthrough()
| {"reversed": runnable, "original": RunnablePassthrough()}
)
chain.invoke("world") # 输出: {'reversed': 'dlrow', 'original': 'world'}
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
