[掌握LangChain:从工具中访问RunnableConfig]

掌握LangChain:从工具中访问RunnableConfig

引言

在使用LangChain时,开发者可能需要访问内部事件或配置工具的行为,尤其是在调用聊天模型、检索器或其他可运行单元时。本文将介绍如何正确传递参数,以便通过astream_events()方法配置和跟踪子调用。

主要内容

工具和可运行单元

工具是可运行单元,你可以在接口级别像对待其他可运行单元一样对待它们:调用invoke()batch()stream()等。然而,当创建自定义工具时,可能需要调用其他可运行单元(如聊天模型或检索器)。要跟踪和配置这些子调用,需要手动访问并传递工具的RunnableConfig对象。

参数类型推断

要从自定义工具中引用活动配置对象,需要在工具的签名中添加一个参数,类型为RunnableConfig。LangChain将检查工具的签名,寻找类型为RunnableConfig的参数,并自动填充。

*注意:*参数的实际名称并不重要,只有类型重要。

例如,定义一个接受两个参数的自定义工具——一个类型为字符串,另一个类型为RunnableConfig

%pip install -qU langchain_core

from langchain_core.runnables import RunnableConfig
from langchain_core.tools import tool


@tool
async def reverse_tool(text: str, special_config_param: RunnableConfig) -> str:
    """A test tool that combines input text with a configurable parameter."""
    return (text + special_config_param["configurable"]["additional_field"])[::-1]

代码示例

# 使用API代理服务提高访问稳定性
await reverse_tool.ainvoke(
    {"text": "abc"}, config={"configurable": {"additional_field": "123"}}
)

# 输出
'321cba'

以上代码展示了如何配置工具,以正确传递additional_field

常见问题和解决方案

无法正确传递配置

确保传递的配置参数类型正确,并检查工具的签名是否包含RunnableConfig类型的参数。

网络限制导致API访问不稳定

由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,提高访问稳定性。

总结和进一步学习资源

通过本文,你已了解到如何在LangChain中配置和访问工具的RunnableConfig。接下来,您可以探索以下指南:

  • 从子运行中流式传输事件到自定义工具
  • 将工具结果传递回模型

更多工具调用的具体用法:

  • 构建工具使用链和代理
  • 从模型中获取结构化输出

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值