在继续阅读本指南前,请先查看 LangSmith 架构概览与连接外部 ClickHouse 的指南。
架构概览
在自托管 LangSmith 中使用托管版 ClickHouse 的整体架构与完全自建 ClickHouse 相似,但需注意以下差异:- 需要在自托管的 LangSmith 与托管版 ClickHouse 之间建立私有网络连接,以确保数据安全并允许实例之间互通。
- 采用该方案时,追踪中的敏感信息(如输入与输出)将存储在你所管理的云对象存储(S3 或 GCS)中,而不是 ClickHouse,从而保证敏感数据不会离开你的 VPC。更多字段存储位置请参见数据存储。
- LangSmith 团队会监控你的 ClickHouse 实例,确保运行稳定,包括跟踪运行写入延迟、查询性能等指标。
前置要求
- 必须使用受支持的对象存储。 详情请参阅对象存储指南。
- 若要使用私有端点,需确保 VPC 位于 ClickHouse Cloud 支持的区域内;否则需通过公共端点访问,并由我们配合防火墙规则保障安全。你的 VPC 还需具备 NAT 网关,以便将流量加入白名单。
- 需要具备能够连接至 LangSmith 托管 ClickHouse 服务的 VPC,并与我们的团队合作完成必要的网络配置。
- 你必须已经运行自托管的 LangSmith 实例。托管版 ClickHouse 适用于 Kubernetes 与 Docker 部署方式。
数据存储
ClickHouse 用于存储 运行(runs) 与 反馈(feedback) 数据,具体包括:- 所有反馈相关字段。
- 部分运行数据字段。
inputs、outputs、errors、manifests、extras 与 events 定义为敏感应用数据,因为这些字段可能包含 LLM 提示词与回答。在使用托管版 ClickHouse 时,这些敏感字段会保存到你所在云环境的对象存储(S3 或 GCS),而其余运行数据则存储在 ClickHouse 中,确保敏感信息不离开你的 VPC。
反馈数据存储字段
由于所有反馈数据都会存储在 ClickHouse 中,请勿在反馈(评分与注释/评论)或运行数据存储字段中提及的其它字段中写入敏感信息。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| id | UUID | 记录本身的唯一标识符 |
| created_at | datetime | 创建记录时的时间戳 |
| modified_at | datetime | 上次修改记录时的时间戳 |
| session_id | UUID | 运行所属的实验或跟踪项目的唯一标识符 |
| run_id | UUID | 会话中特定运行的唯一标识符 |
| key | string | 描述反馈标准的键,例如 “correctness” |
| score | number | 与反馈键关联的数值分数 |
| value | string | 保留用于存储与分数关联的值。对分类反馈很有用。 |
| comment | string | 与记录关联的任何评论或注释。这可以是给定分数的理由。 |
| correction | object | 保留用于存储更正详细信息(如果有) |
| feedback_source | object | 包含有关反馈源的信息的对象 |
| feedback_source.type | string | 反馈源的类型,例如 “api”、“app”、“evaluator” |
| feedback_source.metadata | object | 保留用于其他元数据 |
| feedback_source.user_id | UUID | 提供反馈的用户的唯一标识符 |
运行数据存储字段
运行数据字段会在托管 ClickHouse 与云对象存储(如 S3、GCS)之间分布存储。对于存储在对象存储中的运行字段,ClickHouse 仅保留引用或指针。例如,
inputs 与 outputs 的实际内容会迁移至 S3/GCS,而 ClickHouse 仅在 inputs_s3_urls、outputs_s3_urls 字段中记录相应的对象链接。| Field | Storage Location |
|---|---|
id | ClickHouse |
name | ClickHouse |
inputs | Object Storage |
run_type | ClickHouse |
start_time | ClickHouse |
end_time | ClickHouse |
extra | Object Storage |
error | Object Storage |
outputs | Object Storage |
events | Object Storage |
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 (deprecated) | ClickHouse |
serialized | ClickHouse |
manifest_id (deprecated) | 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 |