LangSmith 管理的 ClickHouse
在继续阅读本指南之前,请阅读 LangSmith 架构概述 和 关于连接到外部 Clickhouse 的指南。
正如之前的指南中提到的,LangSmith 使用 Clickhouse 作为 traces 和 feedback 的主要存储引擎。为了更易于管理和扩展,建议将自托管的 LangSmith 实例连接到外部 Clickhouse 实例。LangSmith 管理的 ClickHouse 是一种选项,允许您使用由 LangSmith 团队监控和维护的完全托管的 ClickHouse 实例。
架构概述
将 LangSmith 管理的 Clickhouse 与您的自托管 LangSmith 实例一起使用非常简单。总体架构类似于使用完全自托管的 ClickHouse 实例,但有一些关键区别
- 您需要设置您的 LangSmith 实例和 LangSmith 管理的 ClickHouse 实例之间的私有网络连接。这是为了确保您的数据安全,并且您可以从自托管的 LangSmith 实例连接到 ClickHouse 实例。
- 使用此选项,您的 traces 的敏感信息(输入和输出)将存储在您云内的云对象存储(S3 或 GCS)中,而不是 Clickhouse 中,以确保敏感信息不会离开您的 VPC。
Clickhouse 存储 runs 和 feedback 数据。
此 参考文档 解释了我们用于存储 feedback 的格式,这是 LangSmith 表示 runs 的评估分数和注释的方式。此 参考文档 解释了我们用于存储 runs (spans) 的格式,runs 是 traces 的构建块。
我们对与应用程序数据相关的敏感信息的定义是 run 的 inputs
、outputs
、errors
、manifests
、extras
和 events
,因为这些字段可能包含来自 LLM 的 prompts 和 completions。
使用 LangSmith 管理的 ClickHouse,我们将 inputs
、outputs
、errors
、manifests
、extras
和 events
存储在您云内的云对象存储(S3 或 GCS)中,并将剩余的 run 数据存储在 ClickHouse 中。这确保了敏感信息不会离开您的 VPC。
请注意,所有 feedback 数据都存储在 ClickHouse 中。请不要在 feedback(分数和注释/评论)或上面提到的任何其他 run 字段中发送敏感信息。
- LangSmith 团队将监控您的 ClickHouse 实例,并确保它运行顺畅。这使我们能够跟踪诸如 run 摄取延迟和查询性能之类的指标。
总体架构如下所示
要求
- 您必须使用受支持的 blob 存储选项。 阅读 blob 存储指南 以获取更多信息。
- 要使用私有端点,请确保您的 VPC 位于 ClickHouse Cloud 支持的 区域 中。否则,您将需要使用我们将使用防火墙规则保护的公共端点。您的 VPC 需要具有 NAT 网关,以允许我们将您的流量列入白名单。
- 您必须拥有一个可以连接到 LangSmith 管理的 Clickhouse 服务的 VPC。您需要与我们的团队合作来设置必要的网络。
- 您必须有一个正在运行的 LangSmith 自托管实例。您可以将我们的托管 ClickHouse 服务与 Kubernetes 和 Docker 安装一起使用。