创建时间: 2026-03-29最后更新: 2026-09-10作者: yangbo(9e98781e0)
1. 并行执行
上一篇介绍了 Runnable 和 .pipe()。当后一项任务需要使用前一项任务的结果时,我们可以把这些步骤连接成一条顺序链:
code.ts
1输入 -> 清洗输入 -> 生成 Prompt -> 调用模型 -> 解析输出
这类数据流很好理解:前一步完成以后,后一步才能开始。
真实应用中还会遇到另一种情况。收到一条用户消息后,我们既要分析情绪,又要提取用户当前关注的事情。这两项任务读取的都是用户原话,彼此不需要等待:
code.ts
1-> 情绪分析 -\2用户消息 -> 分发输入 -> 合并结果3-> 关注点提取 -/
如果继续把它们写成顺序链,关注点提取就要等情绪分析结束,等待时间会被累加。LCEL 提供了两个与这种结构有关的工具:
RunnableParallel把同一份输入交给多个分支,并将各分支的结果组合成对象。RunnablePassthrough.assign()保留输入对象原有字段,同时计算并添加新字段。
这两个工具解决的问题不同。我们先理解并行执行,再学习如何保留原始输入,阅读过程会更加清晰。
正在加载图示...
正在验证登录状态
请稍候,验证完成后将继续显示文章内容