LangServe: 简单部署 LangChain 的教程
Published on
LangServe 不仅仅是 LangChain 生态系统中的又一个工具;它是一个改变游戏规则的产品。如果您一直在为部署 LangChain 可运行程序和链的复杂性而苦恼,LangServe 就是您期待已久的魔法棒。本文旨在成为您的终极指南,重点介绍如何使用 LangServe 实现无缝部署 LangChain。
LangServe 的重要性无法过分强调。它是将您的 LangChain 项目从开发阶段带入实际应用的桥梁。无论您是一位资深开发者还是 LangChain 宇宙中的新手,精通 LangServe 都至关重要。所以,让我们进入主题。
什么是 LangServe,为什么你应该关心
什么是 LangServe?
LangServe 是一个 Python 包,旨在使 LangChain 部署变得顺畅无比。它允许您将任何 LangChain 可运行程序或链部署为 REST API,有效地将您的 LangChain 项目转化为可以投入生产环境的应用程序。
- 自动模式推导:不再需要手动定义输入和输出模式的工作,LangServe 为您完成。
- API 端点:它提供了内置的 API 端点,如
/invoke
、/batch
和/stream
,可以同时处理多个请求。 - 监控:通过内置的 LangSmith 追踪,您可以实时监控您的部署情况。
为什么你应该关心?
如果您在 LangChain 生态系统中,LangServe 至关重要,有以下几个原因:
- 简化部署:LangServe 消除了复杂配置的需求,使您可以更专注于核心逻辑。
- 可扩展性:它被设计用于扩展,这意味着随着 LangChain 项目的壮大,LangServe 也会随之壮大。
- 节省时间:通过自动模式推导和高效的 API 端点等功能,LangServe 为您节省了大量时间,加快了项目的上市时间。
从本质上讲,LangServe 不仅仅是一个工具;它是您的部署合作伙伴。它消除了 LangChain 部署中的猜测工作,让您专注于您最擅长的事情:创造令人惊叹的 LangChain 项目。
LangServe 在 LangChain 部署中的关键功能
LangServe 拥有一系列功能,使其成为 LangChain 部署的首选解决方案。以下是其主要功能的简介:
-
自动输入和输出模式推导:LangServe 可以自动从您的 LangChain 对象推导出输入和输出模式。这样就不再需要手动定义模式,让您的工作更轻松。
-
高效的 API 端点:LangServe 提供了像
/invoke
、/batch
和/stream
这样的高效 API 端点。这些端点被设计用于处理多个并发请求,确保您的 LangChain 应用程序可以同时为多个用户提供服务而不费吹灰之力。 -
内置的 LangSmith 监控:LangServe 的一个突出功能是其内置的与 LangSmith 的追踪。这使您可以实时监控您的 LangChain 部署,提供有关应用程序性能和健康状况的有价值洞察。
这些功能旨在简化和优化部署 LangChain 项目的过程。无论您是部署简单的聊天机器人还是复杂的数据分析工具,LangServe 都能帮助您。
为 LangChain 部署设置 LangServe:一步步指南
设置 LangServe 前提条件
在开始 LangServe 设置之前,确保您拥有正确的环境是必要的。以下是您需要的内容:
- Python 3.8 或更高版本:LangServe 是一个 Python 包,所以您需要在系统上安装 Python。
- LangChain 命令行界面:这是 LangChain 的命令行界面,您将使用它来安装 LangServe。
- Git:您需要 Git 来克隆示例仓库。
一旦准备就绪,您就可以安装 LangServe 并开始部署 LangChain 项目了。
安装 LangServe
由于 LangChain CLI 的存在,安装 LangServe 非常简单。打开终端并运行以下命令:
langchain-cli install langserve
此命令将获取 LangServe 的最新版本并将其安装在系统上。安装完成后,您可以运行以下命令验证安装是否成功:
langserve --version
如果看到版本号,恭喜!您已成功安装 LangServe。
创建您的第一个 LangChain 可运行程序
现在 LangServe 已安装好,让我们创建我们的第一个 LangChain 可运行程序。可运行程序本质上是您 LangChain 项目中执行特定任务的代码片段。以下是一个示例代码片段,用于设置基本的 LangChain 可运行程序:
from langchain import Runnable
class MyRunnable(Runnable):
def run(self, input_data):
return {"output": input_data["input"] * 2}
将此代码保存在名为 my_runnable.py
的文件中。
使用 LangServe 部署可运行程序
当您的可运行程序就位后,就可以使用 LangServe 进行部署了。创建一个名为 deploy.py
的新 Python 文件,并添加以下代码:
from fastapi import FastAPI
from langserve import add_routes
from my_runnable import MyRunnable
app = FastAPI()
runnable = MyRunnable()
add_routes(app, runnable)
此代码设置了一个 FastAPI 应用程序,并使用 LangServe 的 add_routes
函数为您的可运行程序添加路由。
要运行 FastAPI 应用程序,请执行以下命令:
uvicorn deploy:app --reload
你的LangChain可运行代码现在已经部署为一个REST API,可以通过http://localhost:8000
访问。
测试你的部署
在部署可运行代码之后,测试它确保一切都按预期运行非常重要。使用curl
或者Postman发送一个POST请求到http://localhost:8000/invoke
,请求的JSON payload如下:
{
"input": 5
}
如果一切设置正确,你应该会收到一个带有输出值为10的JSON响应。
LangServe的部署选项
在GCP Cloud Run上部署LangServe
Google Cloud Platform(GCP)是最受欢迎的云服务之一,LangServe使得在GCP Cloud Run上部署你的LangChain项目变得非常简单。具体操作如下:
-
构建Docker镜像:在你的项目目录中创建一个
Dockerfile
,内容如下:FROM python:3.8 COPY . /app WORKDIR /app RUN pip install -r requirements.txt CMD ["uvicorn", "deploy:app", "--host", "0.0.0.0", "--port", "8080"]
-
构建镜像:
docker build -t my-langserve-app .
-
部署到Cloud Run:
gcloud run deploy --image gcr.io/your-project-id/my-langserve-app
就是这样!你的LangChain项目现在已经在GCP Cloud Run上部署完成。
在Replit上部署LangServe
Replit是一个非常适合快速原型开发的平台,你也可以使用它来部署LangServe。只需将你的LangServe项目仓库克隆到Replit并点击“Run”按钮即可。Replit会自动检测到FastAPI应用程序并部署它。
LangServe的未来发展
LangServe不是一个静态工具,它在不断发展以满足LangChain生态系统的不断增长的需求。尽管它已经提供了一套稳定的LangChain部署功能,开发团队计划进一步完善它。以下是即将推出的一些功能的一瞥:
-
更多云平台的支持:尽管LangServe目前支持在GCP Cloud Run和Replit上部署,未来的更新计划将包括与其他云平台(如AWS和Azure)的兼容性。
-
增强的监控功能:LangServe内置到LangSmith的跟踪只是冰山一角。即将推出的版本将提供更深入的分析和监控功能,帮助你更好地监视你的部署情况。
-
高级API功能:开发团队正在努力添加更多高级API功能,包括实时数据流和批处理能力,使LangServe变得更加强大。
这些未来的发展旨在使LangServe成为LangChain部署的更加不可或缺的工具。无论你是一个独立开发者还是一个大型团队的一部分,这些即将推出的功能都将让你的生活更加轻松,让你的部署更加健壮。
LangServe和LangChain部署的其他资源
虽然本指南旨在全面介绍LangServe和LangChain,但LangServe和LangChain还有更多功能可供探索。以下是一些额外的资源,可以帮助你进一步加深理解和提升技能:
-
LangChain部署的GitHub仓库:GitHub上有几个示例仓库可用,展示了不同类型的LangChain部署。这些是学习的绝佳资源,也可以作为你的项目模板。
-
LangChain服务器文档:对于那些希望深入了解技术细节的人来说,LangChain服务器文档是一个宝库。它涵盖了从基本设置到高级功能的方方面面。
-
LangChain Discord社区:如果你有问题或遇到问题,LangChain Discord社区是寻求帮助的好地方。它也是与其他LangChain开发者交流和了解最新新闻和更新的绝佳平台。
结论
LangServe是一个开创性的工具,简化了复杂的LangChain部署任务。从主要特性到详细的逐步设置指南,本文给你提供了开始像专业人士一样部署LangChain项目所需的知识。通过LangServe,扩展和部署的力量就在你的指尖。
随着LangServe的不断发展,创造更健壮和可扩展的LangChain部署的机会也在增加。所以,无论是刚刚开始还是希望将现有项目提升到更高水平,LangServe就是你一直在等待的工具。