在 LangChain 中管理 API 密钥和凭据涉及使用环境变量、安全存储实践和内置集成来确保敏感信息的安全。 LangChain 旨在与外部服务(如 OpenAI、AWS 或数据库)配合使用,这些服务通常需要身份验证。 为避免在代码中暴露凭据,该框架鼓励将密钥存储在环境变量或配置文件中,这些文件不包含在版本控制中。 例如,您可以使用 .env
文件来存储诸如 OPENAI_API_KEY
或 GOOGLE_API_KEY
之类的密钥,并使用诸如 python-dotenv
之类的库来加载它们。 这种方法可确保凭据与代码库分离,并减少意外暴露。
一种常见的做法是将 LangChain 与运行时环境变量集成。 初始化像 OpenAI 模型这样的组件时,LangChain 会自动检查相关的环境变量。 例如,如果您创建一个 OpenAI()
对象而不指定 API 密钥,它将在您的环境中查找 OPENAI_API_KEY
。 这简化了设置,同时保持凭据安全。 对于团队项目,您可以使用诸如 AWS Secrets Manager、HashiCorp Vault 或 Azure Key Vault 之类的密钥管理工具。 这些服务允许集中存储和访问控制,LangChain 可以通过编程方式检索密钥。 例如,在 AWS 中,您可以使用 boto3
获取密钥,并在初始化期间将其传递给 LangChain。
为了增加安全性,请避免在笔记本或脚本中硬编码密钥,即使是临时的。 而是使用分层方法:将生产凭据存储在基于云的密钥管理器中,而本地开发可以依赖包含虚拟或受限密钥的 .env
文件。 LangChain 还支持将凭据直接传递给类构造函数,这在测试或与自定义凭据流集成时非常有用。 例如,OpenAI(openai_api_key="sk-...")
允许您临时覆盖环境变量。 始终限制 API 密钥权限(例如,按 IP 或服务限制访问)并定期轮换密钥。 诸如 GitHub Actions 密钥或 CI/CD 管道之类的工具可以在部署期间自动进行凭据注入,确保密钥永远不会出现在日志或源代码中。