LangSmith SDK 配置文件允许您将 API 密钥、端点和工作区 ID 保存在一个可重用的 JSON 文件中,而不是在每个 shell 会话中设置相同的环境变量。 当您经常在 LangSmith 云区域、自托管实例或工作区之间切换时,或者当您希望远程运行时从一个挂载的文件加载相同的 SDK 配置时,请使用配置文件。
配置文件可能包含 API 密钥和 OAuth 刷新令牌。请勿将它们提交到源代码控制、烘焙到容器镜像中,或在日志中打印。请像对待其他凭据一样小心存储和挂载它们。

最低版本

配置文件功能在以下版本中可用:

配置文件位置

默认情况下,SDK 会在以下位置查找配置文件:
要使用不同的路径,请设置 LANGSMITH_CONFIG_FILE:
TypeScript SDK 仅在类 Node.js 运行时中加载配置文件。浏览器和 Web Worker 运行时没有文件系统访问权限,因此在这些环境中请显式传递配置。

创建配置文件

创建 ~/.langsmith/config.json 文件,包含一个 profiles 对象。每个配置文件可以定义:
限制文件权限,仅允许您的用户读取:

选择配置文件

SDK 按以下顺序选择配置文件:
  1. LANGSMITH_PROFILE(如果已设置)。
  2. 配置文件中的 current_profile(如果已设置)。
  3. 名为 default 的配置文件(如果存在)。
例如:
LangSmith CLI 还接受一个全局 --profile 标志,该标志优先于 LANGSMITH_PROFILE(针对该命令):

使用 CLI 管理配置文件

使用 LangSmith CLI 来创建、检查、切换和删除配置文件,无需手动编辑 JSON 文件。 要从现有 API 密钥创建 API 密钥配置文件:
您也可以通过标志传递密钥和端点。在共享机器上,建议使用环境变量,因为 shell 历史可能会记录命令标志。
常用配置文件命令: 使用 --format pretty 获取人类可读的表格:

使用 langsmith auth login 进行认证

运行 langsmith auth login 通过 OAuth 进行认证,而不是手动创建 API 密钥配置文件。该命令会启动一个基于浏览器的设备授权流程,将 OAuth 令牌存储在所选的配置文件中,并将该配置文件设置为当前配置。
langsmith auth login 目前仅支持 LangSmith Cloud (SaaS)。对于自托管或其他非 SaaS 的 LangSmith 端点,请改为创建 API 密钥配置文件。
使用 --profile 或 LANGSMITH_PROFILE 选择配置文件:
对于无头环境,请禁止自动打开浏览器并传递一个工作区 ID:
langsmith auth login 按以下顺序选择配置文件名:
  1. --profile(如果已传递)。
  2. LANGSMITH_PROFILE(如果已设置)。
  3. 配置文件中的 current_profile(如果已设置)。
  4. default。
它按以下顺序选择 API URL:
  1. --api-url(如果已传递)。
  2. LANGSMITH_ENDPOINT(如果已设置)。
  3. 所选配置文件的 api_url(如果存在)。
  4. 默认的 LangSmith Cloud 端点。
登录后,CLI 和 SDK 可以使用已保存的配置文件。CLI 会在需要时刷新 OAuth 令牌,并将刷新后的令牌字段写回配置文件。当环境变量或构造函数的 API 密钥认证未设置时,SDK 也会使用配置文件中的 OAuth 访问令牌。

覆盖配置文件值

显式的客户端构造函数参数和环境变量优先于配置文件值。 旧的 LANGCHAIN_API_KEY、LANGCHAIN_ENDPOINT 和 LANGCHAIN_WORKSPACE_ID 别名仍然有效,但对于新配置,建议使用 LANGSMITH_* 名称。 如果配置文件同时包含 oauth.access_token 和 api_key,SDK 会优先使用 OAuth 访问令牌。如果存在 OAuth 刷新令牌,并且访问令牌已过期或即将过期,SDK 可以刷新令牌并将更新后的令牌字段写回配置文件。
如果您将配置文件挂载为只读,则 OAuth 令牌刷新无法持久化更新的令牌。只读挂载适用于 API 密钥配置文件。仅当您明确依赖 OAuth 令牌刷新时,才使用可写挂载。

在代码中使用配置文件

当配置文件存在时,正常创建客户端:
要在代码中覆盖配置文件,请显式传递值:

在远程运行时挂载配置文件

对于远程运行时,请将配置文件作为密钥文件挂载,并将 LANGSMITH_CONFIG_FILE 设置为挂载的路径。不要将文件复制到镜像或存储库中。

Docker

将本地配置文件目录挂载到容器中:
仅当配置文件使用 OAuth 刷新令牌时,才使用读写挂载:

Kubernetes

从配置文件创建一个 Kubernetes 密钥:
挂载该密钥并将 SDK 指向它:
Kubernetes 密钥卷是只读的。对于此模式,请使用 API 密钥配置文件,或者如果您的 OAuth 配置文件必须刷新和持久化令牌,请使用可写的密钥同步机制。

远程开发和 CI

在远程开发环境或 CI 任务中,将配置文件 JSON 存储在平台的密钥库中,在运行时将其写入临时文件,并将 LANGSMITH_CONFIG_FILE 设置为该文件路径。
对于托管的 LangSmith Cloud,除非平台明确支持挂载密钥文件,否则请将这些值配置为环境变量或工作区密钥。