当你的应用程序处理 API 密钥、令牌或其他凭证时,如果这些值作为输入或输出的一部分传递,它们可能会出现在 LangSmith traces 中。使用 LangSmith SDK 内置的匿名化器,在将它们发送到后端之前编辑敏感信息。
本页介绍如何通过 SDK 从 trace 数据中编辑敏感信息(API 密钥、令牌、凭证)。若要编辑个人身份信息(PII),如电子邮件、姓名或社会安全号码,请参阅防止在 traces 中记录敏感数据。若要在 LLM 网关层编辑敏感信息,请参阅数据保护。

使用 SDK 匿名化器

create_anonymizer / createAnonymizer 函数要求:
  • Python SDK:0.1.81 及以上版本
  • TypeScript SDK:0.1.33 及以上版本
create_anonymizer 函数接受一个正则表达式模式列表和替换字符串。将生成的匿名化器传递给 Client 构造函数,它将在所有 run 输入和输出到达 LangSmith 之前自动应用编辑。 以下示例编辑常见的敏感信息格式,包括 OpenAI API 密钥、通用 Bearer 令牌以及以 sk- 为前缀的密钥:
匿名化器会将输入和输出序列化为 JSON,应用每个正则表达式模式,然后在发送到 LangSmith 之前反序列化结果。默认情况下,它会遍历最多 10 层嵌套。要更改此值,请传递 max_depth 参数:

使用自定义函数

如果你的编辑逻辑更复杂,可以传递一个函数而不是模式列表。该函数接收一个字符串并返回编辑后的字符串:

与 LANGSMITH_HIDE_INPUTS 结合使用

如果你的用例需要完全禁止所有输入(例如,为了零数据保留合规性),请改用 LANGSMITH_HIDE_INPUTS=true。当 LANGSMITH_HIDE_INPUTS 或 LANGSMITH_HIDE_OUTPUTS 设置为 true 时,匿名化器会被跳过。 有关更多选项,包括隐藏所有输入和输出、隐藏元数据、函数级处理器以及第三方 PII 库,请参阅防止在 traces 中记录敏感数据。