来源:互联网 更新时间:2026-07-17 14:16
上篇聊顺序链时,用到了 SequentialChain,它能把多个链按顺序串起来。这次要讲的是 LangChain 里的另一个重要角色——

实际使用中,路由链主要跟两个核心类打交道:LLMRouterChain 和 MultiPromptChain。看看官网的描述:

使用路由链通常有固定的几步:
destination_chains 字典里,给每个链起个名字。MultiPromptChain 把路由链、目标链和默认链串起来,执行一次调用,链会自动选择并运行。假设一个很常见的场景:用户输入不同领域的问题(物理、数学、英语),系统要根据问题内容自动选择对应的专业链去回答;如果输入的问题不属于任何一个已知领域,就退回到默认链处理。代码实现如下:
from langchain_openai import ChatOpenAI
model = ChatOpenAI(
model_name="gpt-3.5-turbo",
openai_api_key="sk-xxxx",
openai_api_base="https://api.302.ai/v1",
)
from langchain.chains.router import LLMRouterChain, MultiPromptChain
from langchain.chains.router.llm_router import RouterOutputParser
from langchain.chains.router.multi_prompt_prompt import MULTI_PROMPT_ROUTER_TEMPLATE
from langchain.chains import LLMChain, ConversationChain
from langchain.prompts import PromptTemplate
# 准备2条目的链:一条物理链,一条数学链
# 1. 物理链
physics_template = """
你是一位物理学家,擅长回答物理相关的问题,当你不知道问题的答案时,你就回答不知道。
具体问题如下:
{input}
"""
physics_prompt = PromptTemplate.from_template(physics_template)
physics_chain = LLMChain(llm=model, prompt=physics_prompt)
# 2. 数学链
math_template = """
你是一个数学家,擅长回答数学相关的问题,当你不知道问题的答案时,你就回答不知道。
具体问题如下:
{input}
"""
math_prompt = PromptTemplate.from_template(math_template)
math_chain = LLMChain(llm=model, prompt=math_prompt)
# 3. 英语链
english_template = """
你是一个非常厉害的英语老师,擅长回答英语相关的问题,当你不知道问题的答案时,你就回答不知道。
具体问题如下:
{input}
"""
english_prompt = PromptTemplate.from_template(english_template)
english_chain = LLMChain(llm=model, prompt=english_prompt)
######### 所有可能的目的链
destination_chains = {}
destination_chains["physics"] = physics_chain
destination_chains["math"] = math_chain
destination_chains["english"] = english_chain
######### 默认链
default_chain = ConversationChain(llm=model, output_key="text")
# 让多路由模板 能找到合适的 提示词模板
destinations_template_str = """
physics:擅长回答物理问题
math:擅长回答数学问题
english:擅长回答英语问题
"""
router_template = MULTI_PROMPT_ROUTER_TEMPLATE.format(
destinations=destinations_template_str
)
# 通过路由提示词模板,构建路由提示词
router_prompt = PromptTemplate(
template=router_template,
input_variables=["input"],
output_parser=RouterOutputParser(),
)
######### 路由链
router_chain = LLMRouterChain.from_llm(llm=model, prompt=router_prompt)
######### 最终的链
multi_prompt_chain = MultiPromptChain(
router_chain=router_chain,
destination_chains=destination_chains,
default_chain=default_chain,
verbose=True,
)
# multi_prompt_chain.invoke({"input": "重力加速度是多少?"})
# multi_prompt_chain.invoke("y=x^2+2x+1的导数是多少?")
multi_prompt_chain.invoke("将以下英文翻译成中文,只输出中文翻译结果:n The largest community building the future of LLM apps.")
# multi_prompt_chain.invoke("你是怎么理解ja va的面向对象的思想的?")
执行结果和我们预想的一致,分别测试了物理、数学、英语和默认场景,结果如下:



这篇主要聊了 LangChain 里的
七麦数据官网网页地址 七麦数据官方入口在线首页
币安Binance官方中文网站 币安App最新版下载及新手注册指南
问卷星官方网站入口地址 问卷星网页版在线使用
闲鱼的严选验货在哪里看?闲鱼严选和验货宝哪个可靠
新浪人工智能热点小时报丨2026年06月20日02时_今日实时人工智能热点速递
淘宝直播如何看回放在哪里看?怎么查看淘宝直播回放
欧易OKX官方网站直达入口 2026欧易官方App安卓版v7.1.0下载安装
花的网名大全男生古风(精选100个)
以太坊(ETH)未来数周或持续呈现低迷态势,多重因素制约价格走势
PokePay加密卡2026完整指南:申请开卡全攻略+多场景应用技巧
为何比特币BTC价格跌破7.3万美元?一文拆解影响近期比特币行情的五大原因
Pharos(PROS)币是什么?如何参与?PROS币代币经济学和参与指南
比特币(BTC)与黄金在英国相遇:21Shares将BOLD基金引入伦敦
新手如何购买比特币?2026年新手在币安购买比特币的完整教程
迷你网名古风男生霸气(精选100个)
GPT5.6惨遭切脑,Fable 5回归要变弱鸡版?
《梦幻西游》特殊鬼怪怎么抓-隐藏变异鬼应对要点
文雅简易网名男生可爱(精选100个)
动漫《恶之华》剧情介绍
王者荣耀「西行封妖记」【孙权-仙扇使者】6月25日上线!
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc