Skip to main content
在深入了解本内容之前,建议先阅读以下指南:
以下功能在以下 SDK 版本中可用:
  • Python SDK: >=0.1.141
  • JS/TS SDK: >=0.2.5
LangSmith 支持在追踪中上传二进制文件(如图像、音频、视频、PDF 和 CSV)。这在处理使用多模态输入或输出的 LLM 管道时特别有用。 在 Python 和 TypeScript SDK 中,都可以通过指定每个文件的 MIME 类型和二进制内容来向追踪添加附件。本指南解释了如何使用 Python 中的 Attachment 类型以及 TypeScript 中的 Uint8Array / ArrayBuffer 来定义和追踪附件。

Python

在 Python SDK 中,您可以使用 Attachment 类型向追踪添加文件。每个 Attachment 需要:
  • mime_type (str): 文件的 MIME 类型(例如 "image/png")。
  • data (bytes | Path): 文件的二进制内容,或文件路径。
为了方便起见,您也可以使用 (mime_type, data) 形式的元组来定义附件。 只需用 @traceable 装饰一个函数,并将您的 Attachment 实例作为参数包含在内。请注意,要使用文件路径而不是原始字节,您需要在可追踪装饰器中设置 dangerously_allow_filesystem 标志为 True
Python

TypeScript

在 TypeScript SDK 中,您可以通过使用 Uint8ArrayArrayBuffer 作为数据类型来向追踪添加附件。每个附件的 MIME 类型在 extractAttachments 中指定:
  • Uint8Array: 适用于直接处理二进制数据。
  • ArrayBuffer: 表示固定长度的二进制数据,可以根据需要转换为 Uint8Array
traceable 包装您的函数,并在 extractAttachments 选项中包含您的附件。 在 TypeScript SDK 中,extractAttachments 函数是 traceable 配置中的一个可选参数。当调用被 traceable 包装的函数时,它会从输入中提取二进制数据(例如图像、音频文件),并与其他追踪数据一起记录,同时指定其 MIME 类型。 请注意,在 TypeScript SDK 中不能直接传入文件路径,因为并非所有运行时环境都支持访问本地文件。
TypeScript
TypeScript
以上代码在 LangSmith UI 中的显示效果如下。您可以展开每个附件以查看其内容。 带有附件的追踪