Skip to main content
LangSmith 界面目前不支持删除单个追踪记录。不过,可以通过直接从 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 界面,现在应该会看到指定的追踪 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 界面,现在应该会看到所有指定的追踪记录都已被移除。

故障排除

“无法找到追踪 ID”错误

如果收到错误消息提示无法找到追踪 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 条追踪记录以内,并在批次之间等待几分钟,以便删除操作完成。 如果在大量删除后遇到问题,请联系支持团队