部署
使用 LangSmith Cloud 或 JavaScript 框架与托管平台将 LangChain 智能体部署到生产环境。
当您准备将 LangChain 智能体部署到生产环境时,请选择适合您技术栈的托管模式。LangSmith Cloud 为具备持久化状态和后台执行能力的有状态、长时间运行智能体提供全托管基础设施。
您还可以使用相同的 Agent Streaming Protocol,部署在诸如 Next.js、SvelteKit、Nuxt、Cloudflare Workers 和 Deno Deploy 等 JavaScript 框架和平台上。
框架与平台
LangSmith
Next.js
SvelteKit
Nuxt
Cloudflare
Deno
TIP
LangSmith 提供除 Cloud 之外的多种部署选项,包括混合部署、独立服务器以及带控制平面的私有化部署。有关更多信息,请参阅 LangSmith 部署概览。
LangSmith Cloud
本节将介绍如何从 GitHub 仓库将您的智能体部署到 LangSmith Cloud。LangSmith 会负责处理基础设施、扩缩容和运维相关事项。
前置条件
在开始之前,请确保您具备以下条件:
- GitHub 账号
- LangSmith 账号(免费注册)
部署您的智能体
1. 在 GitHub 上创建仓库
您的应用程序代码必须存放在 GitHub 仓库中才能部署到 LangSmith。公开仓库和私有仓库均受支持。对于本快速入门,请先按照本地服务器搭建指南确保您的应用与 LangGraph 兼容。然后,将代码推送到该仓库。
2. 部署到 LangSmith
1. 前往 LangSmith 部署页面(Deployments)
登录 LangSmith。在左侧边栏中,选择 Deployments。
2. 创建新部署
点击 + New Deployment 按钮。系统将打开一个面板,供您填写必填字段。
3. 关联仓库
如果您是首次使用或正在添加此前未关联过的私有仓库,请点击 Add new account 按钮,并按照指引连接您的 GitHub 账号。
4. 部署仓库
选择您的应用程序仓库。点击 Submit 进行部署。这可能需要大约 15 分钟完成。您可以在 Deployment details 视图中查看状态。
3. 在 Studio 中测试您的应用程序
应用程序部署完成后:
- 选择刚刚创建的部署以查看更多详情。
- 点击右上角的 Studio 按钮。Studio 将打开并展示您的图。
4. 获取部署的 API URL
- 在 LangGraph 的 Deployment details 视图中,点击 API URL 将其复制到剪贴板。
- 点击
URL将其复制到剪贴板。
5. 测试 API
现在您可以测试该 API:
JavaScript
- 安装 LangGraph JS:
npm install @langchain/langgraph-sdk- 向智能体发送消息:
const { Client } = await import("@langchain/langgraph-sdk");
const client = new Client({ apiUrl: "your-deployment-url", apiKey: "your-langsmith-api-key" });
const streamResponse = client.runs.stream(
null, // 无线程运行(Threadless run)
"agent", // 智能体名称。定义在 langgraph.json 中。
{
input: {
"messages": [
{ "role": "user", "content": "What is LangGraph?"}
]
},
streamMode: "messages",
}
);
for await (const chunk of streamResponse) {
console.log(`Receiving new event of type: ${chunk.event}...`);
console.log(JSON.stringify(chunk.data));
console.log("\n\n");
}Rest API
curl -s --request POST \
--url <DEPLOYMENT_URL>/runs/stream \
--header 'Content-Type: application/json' \
--header "X-Api-Key: <LANGSMITH API KEY> \
--data "{
\"assistant_id\": \"agent\", `# 智能体名称。定义在 langgraph.json 中。`
\"input\": {
\"messages\": [
{
\"role\": \"human\",
\"content\": \"What is LangGraph?\"
}
]
},
\"stream_mode\": \"updates\"
}"TIP
LangSmith 还提供其他托管选项,包括私有化部署和混合部署。有关更多信息,请参阅平台设置概览。
