LangChain——数据传递

数据传递

RunnablePassthrough 允许不改变或添加额外的键来传递输入。这通常与 RunnableParallel 结合使用,将数据分配给映射中的新键。

RunnablePassthrough() 单独调用,将简单地获取输入并将其传递。

使用分配 ( RunnablePassthrough.assign(…) ) 调用的 RunnablePassthrough 将获取输入,并将添加传递给分配函数的额外参数

from langchain_core.runnables import RunnableParallel, RunnablePassthrough

runnable = RunnableParallel(
    passed=RunnablePassthrough(),
    extra=RunnablePassthrough.assign(mult=lambda x: x["num"] * 3),
    modified=lambda x: x["num"] + 1,
)

runnable.invoke({
   "num": 1})
# 输出结果:{'passed': {'num': 1}, 'extra': {'num': 1, 'mult': 3}, 'modified': 2}

如上所示, passed 键是用 RunnablePassthrough() 调用的,因此它只是传递 {‘num’: 1} 。
在第二行中,我们使用 RunnablePastshrough.assign 和一个将数值乘以 3 的 lambda。在这种情况下, extra 设置为 {‘num’: 1, ‘mult’: 3} ,这是原始的添加了 mult 键的值。
最后,我们还在映射中使用 modified 设置了第三个键,它使用 lambda 来设置单个值,在 num 上加 1,从而得到 modified 键,其值为 < b2> 。

运行自定义函数

可以在管道中使用任意函数。

请注意,这些函数的所有输入都必须是单个参数。如果有一个接受多个参数的函数,则应该编写一个接受单个输入并将其解包为多个参数的包装器。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值