主题
本指南将展示如何在您的自托管 LangSmith 实例上启用 LangSmith Deployment。这将添加一个控制平面和一个数据平面,让您可以直接通过 LangSmith UI 来部署、扩展和管理智能体(agent)与应用程序。
完成本指南后,您将可以使用 LangSmith 的可观测性、评估和部署功能。
重要
启用 LangSmith Deployment 需要一个[企业版](https://langchain.com/pricing)计划。
启用 LangSmith Deployment 需要一个[企业版](https://langchain.com/pricing)计划。
此设置页面用于在现有的 LangSmith 实例上启用 LangSmith Deployment。
请查阅自托管选项以了解:
- LangSmith(可观测性):您应该首先安装的部分。
- LangSmith Deployment:本指南将启用的功能。
- 独立服务器:不含 UI 的轻量级替代方案。
概述
本指南建立在 Kubernetes 安装指南 的基础之上。在继续之前,您必须先完成该指南。本页面涵盖了启用 LangSmith Deployment 所需的额外设置步骤:
- 安装 LangGraph operator
- 配置您的 Ingress
- 连接到控制平面
先决条件
- 您正在使用 Kubernetes。
- 您有一个正在运行的自托管 LangSmith 实例。
- 您的集群上已安装
KEDA。
bash
helm repo add kedacore https://kedacore.github.io/charts
helm install keda kedacore/keda --namespace keda --create-namespaceKEDA 用于根据队列大小自动扩展部署系统。
- Ingress 配置
- 您必须为您的 LangSmith 实例设置一个 Ingress、Gateway 或使用 Istio。所有智能体都将作为 Kubernetes 服务部署在此 Ingress 之后。请使用此指南为您的实例设置 Ingress。要启用 LangSmith Deployment,您需要在
values.yaml中提供一个hostname。
- 您必须为您的 LangSmith 实例设置一个 Ingress、Gateway 或使用 Istio。所有智能体都将作为 Kubernetes 服务部署在此 Ingress 之后。请使用此指南为您的实例设置 Ingress。要启用 LangSmith Deployment,您需要在
- 您的集群中必须有足够的空间来容纳多个部署。建议使用
Cluster-Autoscaler来自动配置新节点。 - 集群上有一个有效的动态 PV 供应器或可用的 PV。您可以通过运行以下命令来验证:
bash
kubectl get storageclass- 您的网络可以出站访问
https://beacon.langchain.com。如果未在隔离(air-gapped)模式下运行,则需要进行许可证验证和使用情况报告。更多详情请参阅出站访问文档。
设置
- 作为配置自托管 LangSmith 实例的一部分,您需要启用
deployment选项。这将配置几个关键资源。
从 v0.12.0 版本开始,langgraphPlatform 选项已弃用。对于 v0.12.0 之后的任何版本,请使用 config.deployment。
- 该 Chart 将使用两个额外的镜像。请使用最新版本中指定的镜像。
bash
hostBackendImage:
repository: "docker.io/langchain/hosted-langserve-backend"
pullPolicy: IfNotPresent
operatorImage:
repository: "docker.io/langchain/langgraph-operator"
pullPolicy: IfNotPresent- 在您的 LangSmith 配置文件(通常是
langsmith_config.yaml)中,启用deployment选项。请注意,您还必须有一个有效的 Ingress 设置:
bash
config:
deployment:
enabled: true
# 从 v0.12.0 开始,此部分已弃用。对于 v0.12.0 之后的任何版本,请使用 config.deployment。
langgraphPlatform:
enabled: true
langgraphPlatformLicenseKey: "YOUR_LANGGRAPH_PLATFORM_LICENSE_KEY"在您的
values.yaml文件中,配置hostBackendImage和operatorImage选项(如果您需要镜像镜像)。如果您使用的是需要身份验证的私有容器注册表,则还必须配置imagePullSecrets,请参阅为私有注册表配置身份验证。您还可以通过覆盖此处的基础模板来为您的智能体配置基础模板。
现在,您的自托管基础设施已准备好创建部署。
(可选)配置额外的数据平面
除了在上述步骤中已创建的现有数据平面之外,您还可以创建更多位于不同 Kubernetes 集群或同一集群不同命名空间中的数据平面。
先决条件
- 阅读混合部署文档中的集群组织指南,以了解如何根据您的用例最佳地组织此操作。
- 验证混合部署部分中提到的先决条件是否已为新集群满足。请注意,在此部分的第 5 步中,您需要启用对您的自托管 LangSmith 实例的出站访问,而不是 https://api.host.langchain.com 和 https://api.smith.langchain.com。
- 针对您的 LangSmith Postgres 实例运行以下命令以启用此功能。这是您的自托管 LangSmith 设置附带的 Postgres 实例。
update organizations set config = config || '{"enable_lgp_listeners_page": true}' where id = '<org id here>';
update tenants set config = config || '{"langgraph_remote_reconciler_enabled": true}' where id = '<workspace id here>';记下您选择的工作空间 ID,因为在后续步骤中您将需要它。
部署到不同的集群
部署到同一集群的不同命名空间
- 您需要对在上述设置说明第 3 步中创建的
langsmith_config.yaml文件进行一些修改:- 将
operator.watchNamespaces字段设置为您的自托管 LangSmith 实例当前运行的命名空间。这是为了防止与将作为新数据平面一部分添加的 operator 发生冲突。 - 必须使用 Gateway API 或 Istio Gateway。请相应地调整您的
langsmith_config.yaml文件。
- 将
- 运行
helm upgrade以使用新配置更新您的自托管 LangSmith 实例。 - 按照混合设置指南中的步骤 2-6 操作。
config.langsmithWorkspaceId值应设置为在先决条件中记下的工作空间 ID。请记住,config.watchNamespaces应设置为与现有数据平面使用的命名空间不同的命名空间!
(可选)为私有注册表配置身份验证
如果您的 Agent Server 部署 将使用来自私有容器注册表(例如,AWS ECR、Azure ACR、GCP Artifact Registry、私有 Docker 注册表)的镜像,请配置镜像拉取密钥(image pull secrets)。这是一次性的基础设施配置,允许所有部署自动与您的私有注册表进行身份验证。
步骤 1:创建 Kubernetes 镜像拉取密钥
bash
kubectl create secret docker-registry langsmith-registry-secret \
--docker-server=myregistry.com \
--docker-username=your-username \
--docker-password=your-password \
--docker-email=your-email@example.com \
-n langsmith将值替换为您的注册表凭据:
myregistry.com:您的注册表 URLyour-username:您的注册表用户名your-password:您的注册表密码或访问令牌langsmith:安装 LangSmith 的 Kubernetes 命名空间
步骤 2:在 values.yaml 中配置部署模板
要使 Agent Server 部署能够使用私有注册表密钥,您必须在 operator 的部署模板中添加 imagePullSecrets:
yaml
operator:
templates:
deployment: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: ${name}
namespace: ${namespace}
spec:
replicas: ${replicas}
revisionHistoryLimit: 10
selector:
matchLabels:
app: ${name}
template:
metadata:
labels:
app: ${name}
spec:
enableServiceLinks: false
imagePullSecrets:
- name: langsmith-registry-secret
containers:
- name: api-server
image: ${image}
ports:
- name: api-server
containerPort: 8000
protocol: TCP
livenessProbe:
httpGet:
path: /ok
port: 8000
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 6
readinessProbe:
httpGet:
path: /ok
port: 8000
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 6步骤 3:在 Helm 安装/升级期间应用
当您使用 Helm 部署或升级 LangSmith 实例时,此配置将被应用。通过 LangSmith UI 创建的所有用户部署都将自动继承这些注册表凭据。
对于特定注册表的身份验证方法(AWS ECR、Azure ACR、GCP Artifact Registry 等),请参阅 Kubernetes 关于从私有注册表拉取镜像的文档。
后续步骤
一旦您的基础设施设置完成,就可以开始部署应用程序了。请参阅部署选项卡中的部署指南,了解如何构建和部署您的应用程序。