Skip to main content
LangSmith UI 目前不支持删除单个追踪记录。但是,可以通过直接从 ClickHouse 中所有物化视图(runs_history 视图除外)以及 runs 和 feedback 表本身移除追踪记录来实现。 此命令可以使用追踪 ID 作为参数运行,也可以使用包含追踪 ID 列表的文件运行。

前提条件

确保您已准备好以下工具/物品。
  1. kubectl
  2. Clickhouse 数据库凭据
    • 主机
    • 端口
    • 用户名
      • 如果使用捆绑版本,则为 default
    • 密码
      • 如果使用捆绑版本,则为 password
    • 数据库名称
      • 如果使用捆绑版本,则为 default
  3. 从您将运行 delete_trace_by_id 脚本的机器连接到 Clickhouse 数据库。
    • 如果您使用捆绑版本,可能需要将 clickhouse 服务端口转发到您的本地机器。
    • 运行 kubectl port-forward svc/langsmith-clickhouse 8123:8123 将 clickhouse 服务端口转发到您的本地机器。
  4. 用于删除追踪记录的脚本
批量大小限制此脚本针对多个 ClickHouse 表批量发出 DELETE 变更。大规模删除可能导致服务中断。
  • 每次运行最多 10,000 条追踪记录:拆分较大的文件并按顺序处理。
  • 批次之间等待:在开始下一批次之前,留出时间让删除操作完成。
  • 使用 --sync 标志进行顺序(较慢但更安全)删除。

运行单个追踪记录的删除脚本

运行以下命令,使用单个追踪 ID 运行追踪删除脚本:
sh delete_trace_by_id.sh <clickhouse_url> --trace_id <trace_id>
例如,如果您使用带有端口转发的捆绑版本,命令将如下所示:
sh delete_trace_by_id.sh "clickhouse://default:password@localhost:8123/default" --trace_id 4ec70ec7-0808-416a-b836-7100aeec934b
如果您访问 LangSmith UI,现在应该看到指定的追踪 ID 不再存在,也不会反映在统计信息中。

运行从文件中读取多个追踪记录(每行一个追踪 ID)的删除脚本

运行以下命令,使用追踪 ID 列表运行追踪删除脚本:
sh delete_trace_by_id.sh <clickhouse_url> --file <path/to/foo.txt>
例如,如果您使用带有端口转发的捆绑版本,命令将如下所示:
sh delete_trace_by_id.sh "clickhouse://default:password@localhost:8123/default" --file path/to/traces.txt
如果您访问 LangSmith UI,现在应该看到所有指定的追踪记录已被移除。

故障排除

”Could not find trace IDs” 错误

如果您收到一条错误消息,指出找不到追踪 ID,请在命令中添加 --ssl 标志。没有此标志,脚本可能无法正确连接到 ClickHouse,导致出现错误的“找不到追踪 ID”错误。 带有 SSL 标志的示例:
sh delete_trace_by_id.sh "clickhouse://default:password@localhost:8123/default" --file path/to/traces.txt --ssl
您也可以通过使用 clickhouse-cli 直接连接到 ClickHouse 并在运行删除脚本之前查询追踪 ID 来验证追踪记录是否存在。

大规模删除后服务中断

如果在删除大量追踪记录后服务变得无响应,可能是删除队列过载。 预防措施:将每次运行的删除限制在 10,000 条追踪记录,并在批次之间等待几分钟,以便删除操作处理完成。 如果您在大规模删除后遇到问题,请联系 支持团队