创建导出作业后 ,您可以使用此页面上的 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 跟踪已导出多少数据。 - **高效重试**:失败的运行不会重新导出已成功写入的数据。
导出失败的故障排除
如果导出失败,请按照以下步骤操作:
- **检查导出状态**:使用
GET /api/v1/bulk-exports/{export_id}端点 来获取导出详情和状态。 - **查看运行错误**:您可以使用 列出运行 API监控您的运行。每次运行都包含一个
errors字段,其中包含按重试尝试键控的详细错误消息(例如,retry_0,retry_1). - **验证目标访问权限**:确保您的 目标存储桶 仍然存在且 凭证 有效。
- **检查运行大小**:如果看到超时错误,您的日期分区可能包含太多数据。可能需要 限制导出的字段.
- **查看系统限制**:确保您没有触及 并发限制 (每个导出 5 次运行,每个工作区 3 个导出)。
对于与存储相关的错误,您可以在重试导出之前使用 AWS CLI 或 gsutil 测试目标配置。