以编程方式使用文档

创建导出作业后 ,您可以使用此页面上的 API 来跟踪其进度、检查各个运行记录,必要时停止它。本页面还介绍 LangSmith 如何自动处理失败情况,以及在重试耗尽后导出仍然失败时应如何处理。

本页面涵盖:

,请在以下请求中更新 LangSmith URL。

要监控导出作业的状态,请使用以下 cURL 命令:

curl --request GET \
  --url 'https://api.smith.langchain.com/api/v1/bulk-exports/{export_id}' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'X-Tenant-Id: YOUR_WORKSPACE_ID'

{export_id} 替换为您要监控的导出的 ID。此命令检索指定导出作业的当前状态。

列出导出的运行记录

导出通常被拆分为多个运行记录,每个运行记录对应一个特定的日期分区进行导出。 要列出与特定导出关联的所有运行记录,请使用以下 cURL 命令:

curl --request GET \
  --url 'https://api.smith.langchain.com/api/v1/bulk-exports/{export_id}/runs' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'X-Tenant-Id: YOUR_WORKSPACE_ID'

此命令获取与指定导出相关的所有运行记录,提供运行记录 ID、状态、创建时间、已导出行数等详细信息。

列出所有导出

要检索所有导出作业的列表,请使用以下 cURL 命令:

curl --request GET \
  --url 'https://api.smith.langchain.com/api/v1/bulk-exports' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'X-Tenant-Id: YOUR_WORKSPACE_ID'

此命令返回所有导出作业及其当前状态和创建时间戳的列表。

停止导出

要停止现有导出,请使用以下 cURL 命令:

curl --request PATCH \
  --url 'https://api.smith.langchain.com/api/v1/bulk-exports/{export_id}' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'X-Tenant-Id: YOUR_WORKSPACE_ID' \
  --data '{
    "status": "Cancelled"
}'

{export_id} 替换为您要取消的导出的 ID。请注意,作业一旦被取消就无法重新启动, 您需要改为创建一个新的导出作业。

故障模式和重试策略

LangSmith 批量导出会自动处理瞬时故障和基础设施问题,以确保韧性。

每个批量导出都被拆分为多个 _运行记录_,其中每个运行记录处理一个 特定日期分区 的数据(通常按天组织)。运行记录独立处理,这使得:

  • - 不同时间段可以并行处理。
  • - 每个运行记录可以独立重试。
  • - 如果中断,可以从特定检查点恢复。

您的导出中的每次运行(日期范围)都有其自己的 故障处理重试预算。如果运行在耗尽所有重试后失败,则整个导出被标记为 FAILED.

自动重试行为

导出作业会自动重试临时故障,具有以下行为:

  • 最大重试次数:每次运行 20 次重试(可能更改)。
  • 重试延迟:尝试之间间隔 30 秒(固定,无指数退避)。
  • 运行超时:每次运行最多 4 小时。
  • 整个工作流超时:整个导出为 72 小时。

故障场景

故障类型原因自动重试?需要操作
**基础设施中断**部署、服务器重启、工作进程崩溃是,自动重新排队并保留剩余重试次数。无,作业自动恢复。
**运行超时**单次运行超过 4 小时限制是,最多重试 20 次(可能更改)。如果持续存在,请缩小日期范围、添加筛选条件或 限制导出的字段.
**工作流超时**整个导出超过 72 小时缩小导出范围(日期范围、筛选条件)或拆分为较小的导出。
**Storage/destination errors**无效的凭证, 缺失的存储桶, 权限问题修复目标配置并创建新的导出。
**目标已删除**导出期间存储桶被移除重新创建目标并重新启动导出。
**终端处理错误**数据序列化问题、资源耗尽是,最多重试 20 次(可能更改)。检查运行错误详情;可能需要调查。

导出状态生命周期

导出可以具有以下状态:

状态描述
CREATED导出已创建但尚未开始处理。
RUNNING导出正在主动处理运行。
COMPLETED所有运行均成功导出。
FAILED一个或多个运行在耗尽重试后失败。
CANCELLED导出已被用户手动取消。
TIMEDOUT导出超过 48 小时的工作流超时限制。

单次运行可以具有相同的可能状态: CREATED, RUNNING, COMPLETED, FAILED, CANCELLED, or TIMEDOUT.

并发和速率限制

为确保系统稳定性,导出受以下限制约束:

  • 每个导出的最大并发运行数: 45
  • 每个工作区的最大并发导出数: 15

如果您有多个导出正在运行,新的运行作业将排队等待直到有可用容量。

进度跟踪和可恢复性

导出系统为每次运行维护详细的进度元数据: - 数据流中的最新光标位置。 - 已导出的行数。 - 已写入的 Parquet 文件列表。

此进度跟踪支持: - **优雅恢复**:如果运行被中断(例如通过部署),它将从最后一个检查点恢复,而不是重新开始。 - **进度监控**:通过 API 跟踪已导出多少数据。 - **高效重试**:失败的运行不会重新导出已成功写入的数据。

导出失败的故障排除

如果导出失败,请按照以下步骤操作:

  1. **检查导出状态**:使用 GET /api/v1/bulk-exports/{export_id} 端点 来获取导出详情和状态。
  2. **查看运行错误**:您可以使用 列出运行 API监控您的运行。每次运行都包含一个 errors 字段,其中包含按重试尝试键控的详细错误消息(例如, retry_0, retry_1).
  3. **验证目标访问权限**:确保您的 目标存储桶 仍然存在且 凭证 有效。
  4. **检查运行大小**:如果看到超时错误,您的日期分区可能包含太多数据。可能需要 限制导出的字段.
  5. **查看系统限制**:确保您没有触及 并发限制 (每个导出 5 次运行,每个工作区 3 个导出)。

对于与存储相关的错误,您可以在重试导出之前使用 AWS CLI 或 gsutil 测试目标配置。