架构概览
自托管 LangSmith 是为我们最大型、对安全性最敏感的客户设计的企业计划附加组件。有关更多详细信息,请参阅我们的定价页面,如果您想获得许可证密钥以在您的环境中试用 LangSmith,请通过sales@langchain.dev与我们联系。
LangSmith 可以通过 Kubernetes(推荐)或 Docker 在您控制的云环境中运行。
LangSmith 应用程序由多个组件组成,包括 5 个 LangSmith 服务器和 3 个有状态服务
- LangSmith 前端
- LangSmith 后端
- LangSmith 平台后端
- LangSmith Playground
- LangSmith 队列
- LangSmith ACE(任意代码执行) 后端
- ClickHouse
- Postgres
- Redis
要访问 LangSmith UI 并发送 API 请求,您需要暴露 LangSmith 前端服务。根据您的安装方法,这可以是负载均衡器或主机上暴露的端口。
存储服务
LangSmith 自托管默认捆绑所有存储服务。 LangSmith 可以配置为使用所有存储服务的外部版本。在生产环境中,我们强烈建议使用外部存储服务。
ClickHouse
ClickHouse 是一个用于在线分析处理 (OLAP) 的高性能、面向列的 SQL 数据库管理系统 (DBMS)。
LangSmith 使用 ClickHouse 作为跟踪和反馈(高容量数据)的主要数据存储。
PostgreSQL
PostgreSQL 是一个功能强大的开源对象关系数据库系统,它使用和扩展了 SQL 语言,并结合了许多安全地存储和扩展最复杂数据工作负载的功能
LangSmith 使用 Postgres 作为事务性工作负载和操作数据(几乎所有除跟踪和反馈之外的数据)的主要数据存储。
Redis
Redis 是一个功能强大的内存键值数据库,可在磁盘上持久保存。通过将数据保存在内存中,Redis 为缓存等操作提供了高性能。
LangSmith 使用 Redis 来支持队列/缓存操作。
服务
LangSmith 前端
前端使用 Nginx 来服务 LangSmith UI 并将 API 请求路由到其他服务器。这充当应用程序的入口点,是唯一必须向用户公开的组件。
LangSmith 后端
后端是 API 请求的主要入口点,并处理应用程序的大部分业务逻辑。这包括处理来自前端和 SDK 的请求、准备要摄取的跟踪,以及支持 hub API。
LangSmith 队列
队列处理传入的跟踪和反馈,以确保它们被异步摄取并持久化到跟踪和反馈数据存储中,处理数据完整性检查并确保成功插入到数据存储中,处理数据库错误或临时无法连接到数据库等情况下的重试。
LangSmith 平台后端
平台后端是一项内部服务,主要处理身份验证和其他高容量任务。用户应该不需要直接与此服务交互。
LangSmith Playground
Playground 是一项服务,用于处理将请求转发到各种 LLM API,以支持 LangSmith Playground 功能。 这也可以用于连接到您自己的自定义模型服务器。
LangSmith ACE(任意代码执行) 后端
ACE 后端是一项服务,用于处理在安全环境中执行任意代码。 这用于支持在 LangSmith 内运行自定义代码。