@traceable 装饰器或 traceable 包装器 进行追踪时,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) 形式的元组来定义附件。
有两种方式提供文件数据:
- 自己加载字节并直接传递(适用于所有环境),或者
-
传递一个
Path对象,并通过在@traceable装饰器上设置dangerously_allow_filesystem=True让 SDK 读取文件。dangerously_allow_filesystem标志是为服务器和多租户环境设置的安全防护,在这些环境中,用户控制的输入可能影响文件路径。在受信任的环境(本地脚本或您拥有文件路径的受控流水线)中,启用它是安全的。
@traceable 装饰一个函数,并将您的 Attachment 实例作为参数包含在内。以下示例演示了两种方法:将文件字节手动加载到 Attachment 中,以及传递一个 Path 对象并设置 dangerously_allow_filesystem=True:
Python
TypeScript
在 TypeScript SDK 中,您可以使用Uint8Array 或 ArrayBuffer 作为数据类型来为追踪添加附件。每个附件的 MIME 类型在 extractAttachments 中指定:
Uint8Array:适用于直接处理二进制数据。ArrayBuffer:表示固定长度的二进制数据,您可以根据需要将其转换为Uint8Array。
extractAttachments 函数是 traceable 配置中的一个可选参数。当被 traceable 包装的函数被调用时,它会从您的输入中提取二进制数据(例如图像、音频文件),并将其与其他追踪数据一起记录,同时指定它们的 MIME 类型。
在 TypeScript SDK 中,您不能直接传递文件路径,因为在所有运行时环境中并不支持访问本地文件。
traceable 包装您的函数,并在 extractAttachments 选项中包含您的附件。其签名是:
TypeScript
TypeScript
相关内容
将这些文档通过 MCP 连接到 Claude、VSCode 等,以获取实时答案。

