📖 什么是 Chain?
Chain 是预定义的操作序列,将多个步骤串联成固定流程。适合确定性的工作流。
⚡ LCEL 表达式语言
LangChain Expression Language 是构建链的现代方式:
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-4")
prompt = ChatPromptTemplate.from_messages([
("system", "你是{role}专家"),
("human", "{input}")
])
# 使用 | 运算符连接
chain = prompt | llm
result = chain.invoke({"role": "Python", "input": "什么是装饰器?"})🔗 顺序链
from langchain.schema.output_parser import StrOutputParser
# 多步骤链
chain = prompt | llm | StrOutputParser()
# 添加处理步骤
chain = (
{"topic": RunnablePassthrough()} |
prompt |
llm |
StrOutputParser()
)📊 Runnable 接口
🔀 分支链
from langchain.schema.runnable import RunnableBranch
branch = RunnableBranch(
(lambda x: x["type"] == "code", code_chain),
(lambda x: x["type"] == "text", text_chain),
default_chain
)