LangGraph 控制平面¶
“控制平面”这一术语广泛用于指代用户创建和更新 LangGraph 服务器(部署)的控制平面 UI,以及支持 UI 体验的控制平面 API。
当用户通过控制平面 UI 进行更新时,该更新将被存储在控制平面状态中。LangGraph 数据平面 的 “监听器” 应用程序会通过调用控制平面 API 来轮询这些更新。
控制平面 UI¶
通过控制平面 UI,您可以:
- 查看待处理的部署列表。
- 查看单个部署的详细信息。
- 创建新的部署。
- 更新部署。
- 更新部署的环境变量。
- 查看部署的构建和服务器日志。
- 删除部署。
控制平面 UI 嵌入在 LangSmith 中。
控制平面 API¶
本节描述了控制平面 API 的数据模型。该 API 用于创建、更新和删除部署。但是,这些 API 并不对外公开。
部署¶
部署是 LangGraph Server 的一个实例。一个部署可以有多个修订版本。
修订版本¶
修订版本是部署的一个迭代版本。当创建一个新的部署时,会自动生成一个初始的修订版本。要部署代码更改或更新部署的环境变量,必须创建一个新的修订版本。
环境变量¶
环境变量是在部署层面设置的。所有环境变量都作为密钥(即存储在密钥库中)进行存储。
控制平面功能¶
本节描述了控制平面的各种功能。
部署类型¶
为了简化,控制平面提供了两种部署类型,具有不同的资源分配:Development(开发)
和 Production(生产)
。
部署类型 | CPU/内存 | 扩展 | 数据库 |
---|---|---|---|
Development | 1 CPU, 1 GB RAM | 最多 1 个容器 | 10 GB 磁盘,无备份 |
Production | 2 CPU, 2 GB RAM | 最多 10 个容器 | 自动扩展磁盘,自动备份,高可用性(多区域配置) |
每个容器的 CPU 和内存资源。
不可变的部署类型
一旦创建了部署,部署类型将无法更改。
资源自定义
对于 Production(生产)
类型的部署,可以根据使用场景和容量限制,在特定情况下手动增加资源。请联系 support@langchain.dev 以请求增加资源。
对于 Development(开发)
类型的部署,可以根据使用场景和容量限制,在特定情况下手动增加数据库磁盘大小。对于大多数使用场景,应配置 TTLs 来管理磁盘使用。请联系 support@langchain.dev 以请求增加资源。
数据库配置¶
控制平面和 LangGraph 数据平面 的“监听器”应用程序协同工作,为每个部署自动创建一个 Postgres 数据库。该数据库作为部署的 持久化层。
在实现 LangGraph 应用程序时,开发者无需配置 checkpointer(检查点)。相反,图会自动配置一个 checkpointer。任何为图配置的 checkpointer 将被自动配置的 checkpointer 替换。
没有直接访问数据库的权限。所有对数据库的访问都通过 LangGraph Server 进行。
在删除部署之前,数据库永远不会被删除。
异步部署¶
部署和修订的基础设施是异步地配置和部署的。它们在提交后不会立即部署。目前,部署可能需要几分钟的时间。
- 当创建一个新的部署时,会为该部署创建一个新的数据库。数据库的创建是一个一次性步骤。这个步骤会导致初始修订的部署时间更长。
- 当为一个部署创建后续的修订时,没有数据库创建步骤。后续修订的部署时间比初始修订的部署时间显著更快。
- 每个修订的部署过程包含一个构建步骤,这可能需要几分钟的时间。
控制平面和 LangGraph 数据平面 的“监听器”应用程序协同工作,实现异步部署。
LangSmith 集成¶
为每个部署会自动创建一个 LangSmith 跟踪项目。跟踪项目的名称与部署相同。创建部署时,不需要指定 LANGCHAIN_TRACING
和 LANGSMITH_API_KEY
/LANGCHAIN_API_KEY
环境变量;这些变量由控制平面自动设置。
当删除部署时,跟踪记录和跟踪项目不会被删除。