创建导出任务后,你可以使用本页中的 API 跟踪其进度、检查单个运行,并在需要时停止导出。本页还介绍了 LangSmith 如何自动处理故障,以及导出在重试次数耗尽后失败时应采取的措施。 本页涵盖:
适用于自托管、GCP EU、GCP APAC 和 AWS US SaaS对于自托管安装、GCP EU(eu.api.smith.langchain.com)、GCP APAC(apac.api.smith.langchain.com)或 AWS US(aws.api.smith.langchain.com),请更新以下请求中的 LangSmith URL。

监控导出状态

要监控导出任务的状态,请使用以下 cURL 命令:
将 {export_id} 替换为要监控的导出任务 ID。此命令会获取指定导出任务的当前状态。

列出导出的运行

导出通常会拆分为多个运行,每个运行对应要导出的特定日期分区。 要列出与特定导出关联的所有运行,请使用以下 cURL 命令:
此命令会获取与指定导出相关的所有运行,并提供运行 ID、状态、创建时间、已导出行数等详细信息。

列出所有导出

要获取所有导出任务的列表,请使用以下 cURL 命令:
此命令会返回所有导出任务的列表,以及它们当前的状态和创建时间戳。

停止导出

要停止现有导出,请使用以下 cURL 命令:
将 {export_id} 替换为要取消的导出任务 ID。请注意,任务取消后无法重新启动, 你需要改为创建新的导出任务。

故障模式和重试策略

LangSmith 批量导出会自动处理临时故障和基础设施问题,以确保系统具有弹性。 每个批量导出都会拆分为多个_运行_,每个运行处理特定日期分区的数据(通常按天组织)。运行会独立处理,因此支持:
  • 并行处理不同时间段的数据。
  • 为每个运行单独执行重试逻辑。
  • 在发生中断时从特定检查点恢复。
导出中的每个运行(日期范围)都有自己的故障处理机制和重试额度。如果某个运行在耗尽所有重试次数后仍然失败,整个导出会被标记为 FAILED。

自动重试行为

导出任务会按照以下行为自动重试临时故障:
  • 最大重试次数:每个运行重试 20 次(可能会更改)。
  • 重试延迟:每次尝试之间间隔 30 秒(固定间隔,不采用指数退避)。
  • 运行超时:每个运行最长 4 小时。
  • 整体工作流超时:整个导出最长 72 小时。

故障场景

任何单个运行失败(在所有重试次数均耗尽后)都会导致整个导出失败。

导出状态生命周期

导出可能具有以下状态: 单个运行也可能具有以下状态:CREATED、RUNNING、COMPLETED、FAILED、CANCELLED 或 TIMEDOUT。

并发和速率限制

为确保系统稳定性,导出受以下限制约束:
  • 每个导出的最大并发运行数:45
  • 每个工作区的最大并发导出数:15
如果你有多个正在运行的导出,新运行任务会排队等待,直到有可用容量。

自托管:调整批量导出并发数和负载大小

在 LangSmith Self-hosted 中,并发限制采用默认值。要调整批量导出期间 Pod 的内存使用量,请在 langsmith-backend 服务上配置以下环境变量: 内存受限部署的保守设置示例
降低这些值会减少并行度,并可能延长总导出时间,但可以降低每个 Pod 的内存峰值。如果内存受限的节点上出现内存不足(OOM)错误,这些设置可能会有所帮助。

进度跟踪和可恢复性

导出系统会维护每个运行的详细进度元数据:
  • 数据流中的最新游标位置。
  • 已导出的行数。
  • 已写入的 Parquet 文件列表。
此进度跟踪支持:
  • 平滑恢复:如果运行被中断(例如,由于部署),它会从上一个检查点恢复,而不是重新开始。
  • 进度监控:通过 API 跟踪已导出的数据量。
  • 高效重试:失败的运行不会重新导出已经成功写入的数据。

排查失败的导出

如果导出失败,请按照以下步骤操作:
  1. 检查导出状态:使用 GET /api/v1/bulk-exports/{export_id} endpoint 获取导出详细信息和状态。
  2. 查看运行错误:你可以使用 List Runs API 监控运行。每个运行都包含一个 errors 字段,其中按重试尝试次数记录详细错误消息(例如 retry_0、retry_1)。
  3. 验证目标位置访问权限:确保你的目标存储桶仍然存在,并且凭据有效。
  4. 检查运行大小:如果看到超时错误,日期分区中可能包含过多数据。此时可以尝试限制导出的字段。
  5. 检查系统限制:确保没有达到并发限制(每个导出 5 个运行、每个工作区 3 个导出)。
对于存储相关错误,可以在重试导出前,使用 AWS CLI 或 gsutil 测试目标位置配置。