LangSmith 使用 ClickHouse 作为 **追踪** 和 **反馈**的主要存储引擎。为了更方便地管理和扩展,建议将自托管的 LangSmith 实例连接到外部 ClickHouse 实例。LangSmith 托管的 ClickHouse 是一个选项,允许您使用由 LangSmith 团队监控和维护的完全托管的 ClickHouse 实例。
架构概述
使用 LangSmith 托管的 ClickHouse 与您的自托管 LangSmith 实例的架构与使用完全自托管的 ClickHouse 实例类似,但有一些关键区别:
- - 您需要在 LangSmith 实例和 LangSmith 托管的 ClickHouse 实例之间建立专用网络连接。这是为了确保您的数据安全,并且您可以从自托管的 LangSmith 实例连接到 ClickHouse 实例。
- - 使用此选项,追踪的敏感信息(输入和输出)将存储在您云中的云对象存储(S3 或 GCS)中,而不是 ClickHouse,以确保敏感信息不会离开您的 VPC。有关各数据字段存储位置的更多详细信息,请参阅 数据存储.
- - LangSmith 团队将监控您的 ClickHouse 实例并确保其运行顺畅。这使我们能够跟踪运行摄入延迟和查询性能等指标。
整体架构如下:
要求
- 您必须使用支持的 blob 存储选项。 阅读 blob 存储指南 了解更多。
- - 要使用私有端点,请确保您的 VPC 位于 ClickHouse Cloud 支持的 区域中。否则,您将需要使用我们通过防火墙规则保护的公共端点。您的 VPC 需要有 NAT 网关以允许我们允许列表您的流量。
- - 您必须拥有可连接到 LangSmith 托管 ClickHouse 服务的 VPC。您需要与我们的团队合作来设置必要的网络。
- - 您必须运行一个 LangSmith 自托管实例。您可以将我们的托管 ClickHouse 服务与 Kubernetes installations.
数据存储
ClickHouse 存储 **运行** 和 **反馈** 数据,具体包括:
- - 所有反馈数据字段。
- - 部分运行数据字段。
有关字段列表,请参阅 存储的运行数据字段 和 存储的反馈数据字段.
LangChain 将敏感应用数据定义为 inputs, outputs, errors, manifests, extras,以及 events 的运行,因为这些字段可能包含 LLM 提示和完成内容。使用 LangSmith 托管的 ClickHouse 时,这些敏感字段存储在您云中的云对象存储(S3 或 GCS)中,而其余运行数据存储在 ClickHouse 中,确保敏感信息不会离开您的 VPC。
存储的反馈数据字段
使用 LangSmith 托管的 ClickHouse 设置时, **所有反馈数据字段都存储在 ClickHouse 中**:
本 参考文档 说明了存储的反馈格式,这是 LangSmith 表示运行评估分数和注释的方式。
存储的运行数据字段
运行数据字段在托管 ClickHouse 数据库和云对象存储(如 S3 或 GCS)之间分配。
该表详细说明了每个运行字段及其存储位置:
| 字段 | 存储位置 |
|---|---|
id | ClickHouse |
name | ClickHouse |
inputs | **对象存储** |
run_type | ClickHouse |
start_time | ClickHouse |
end_time | ClickHouse |
extra | **对象存储** |
error | **对象存储** |
outputs | **对象存储** |
events | **对象存储** |
tags | ClickHouse |
trace_id | ClickHouse |
dotted_order | ClickHouse |
status | ClickHouse |
child_run_ids | ClickHouse |
direct_child_run_ids | ClickHouse |
parent_run_ids | ClickHouse |
feedback_stats | ClickHouse |
reference_example_id | ClickHouse |
total_tokens | ClickHouse |
prompt_tokens | ClickHouse |
completion_tokens | ClickHouse |
total_cost | ClickHouse |
prompt_cost | ClickHouse |
completion_cost | ClickHouse |
first_token_time | ClickHouse |
session_id | ClickHouse |
in_dataset | ClickHouse |
parent_run_id | ClickHouse |
execution_order (已弃用) | ClickHouse |
serialized | ClickHouse |
manifest_id (已弃用) | ClickHouse |
manifest_s3_id | ClickHouse |
inputs_s3_urls | ClickHouse |
outputs_s3_urls | ClickHouse |
price_model_id | ClickHouse |
app_path | ClickHouse |
last_queued_at | ClickHouse |
share_token | ClickHouse |
本文 参考文档 介绍了存储运行(span)的格式,这些运行是跟踪的构建块。