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

基本追踪

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

批量摄取

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

相关内容