Skip to main content
本指南介绍了使用 REST API 进行追踪的两种方法:使用 POST /runsPATCH /runs 端点进行基本追踪,以及使用 POST /runs/multipart 进行批量摄取以实现更高吞吐量。有关完整的端点列表和请求/响应模式,请参阅 API 参考
我们强烈建议使用 Python 或 TypeScript SDK 将追踪数据发送到 LangSmith,而不是直接使用 REST API。SDK 包含批处理和后台发送优化,可防止追踪影响应用程序的性能。
我们建议使用 UUID v7 作为运行 ID。UUIDv7 嵌入了时间戳,可以保留追踪中运行的正确时间顺序。使用 LangSmith SDK 中的 uuid7() 来生成它们,或参阅 指定自定义运行 ID 了解更多详情。
如果无法使用 SDK,请注意,同步发送追踪数据可能会影响应用程序性能。

基本追踪

记录运行的最简单方法是通过 POST /runsPATCH /runs 端点。这种方法只需最少的信息即可建立追踪层次结构。
使用 LangSmith REST API 时,请在请求头中以 "x-api-key" 提供您的 API 密钥。如果您的 API 密钥链接到多个工作区,请在请求头中使用 "x-tenant-id" 指定工作区。在这种方法中,您无需设置 dotted_ordertrace_id 字段——系统会自动生成它们。虽然更简单,但它的速度较慢,并且比批量摄取有更低的速率限制。
以下示例追踪一个包含父链运行和子 LLM 运行的聊天完成:
更多信息,请参阅 运行(跨度)数据格式

批量摄取

为了更快的摄取速度和更高的速率限制,请使用 POST /runs/multipart 端点。这需要 requests-toolbeltuuid-utils 包。 此端点要求您计算并设置 dotted_ordertrace_iddotted_order 是一个字符串,编码了每个运行的时间戳和 UUID,父条目和子条目之间用点连接(例如 20240101T000000Z<parent-uuid>.20240101T000001Z<child-uuid>)。这告诉 LangSmith 运行之间如何关联以及它们发生的顺序。trace_id 是追踪中根运行的 UUID。 以下示例创建一个父运行和一个子运行,在单个批量请求中发送它们,然后用它们的输出修补两者: