引言
在现代应用开发中,部署高性能和灵活的服务是关键。LangServe 是一个强大的工具,可帮助开发者将 LangChain 应用程序部署为 REST API。本篇文章将介绍 LangServe 的基本特性、使用方法及其在项目中的应用。
主要内容
什么是 LangServe?
LangServe 是一个开源库,集成了 FastAPI 和 Pydantic,用于将 LangChain 的运行对象和链部署为 REST API。它自动推断输入和输出模式,并在每次 API 调用时进行验证。
LangServe 的特性
- 自动模式推断和验证: LangServe 会自动从 LangChain 对象中推断输入和输出模式,并在每次 API 调用时进行验证。
- 高效的端点: 支持 /invoke, /batch, 和 /stream 等端点,允许在单台服务器上处理多个并发请求。
- Playground 和 Streaming 输出: 使用 /playground/ 可以测试和配置运行对象,并查看中间步骤输出。
- 集成追踪: 支持与 LangSmith 的追踪集成,只需添加你的 API 密钥。
代码示例
以下是一个简单的 LangServe 服务器示例,部署了 OpenAI 和 Anthropic 的聊天模型:
from fastapi import FastAPI
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatAnthropic, ChatOpenAI
from langserve import add_routes
app = FastAPI(
title="LangChain Server",
version="1.0",
description="A simple API server using Langchain's Runnable interfaces"
)
# 使用API代理服务提高访问稳定性
add_routes(
app,
ChatOpenAI(model="gpt-3.5-turbo-0125"),
path="/openai"
)
add_routes(
app,
ChatAnthropic(model="claude-3-haiku-20240307"),
path="/anthropic"
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="localhost", port=8000)
此代码在本地运行一个 FastAPI 应用,打开浏览器访问 http://localhost:8000/docs,即可查看自动生成的 API 文档。
常见问题和解决方案
- API 访问问题: 由于某些地区的网络限制,开发者可能需要考虑使用API代理服务提高访问的稳定性。
- Pydantic 版本问题: 使用 Pydantic V2 时,OpenAPI 文档可能无法生成。请使用
pip install pydantic==1.10.17来解决此问题。
总结和进一步学习资源
LangServe 提供了一种高效且灵活的方法来部署 LangChain 应用。它的自动模式验证和高效的端点支持使其成为现代应用开发的重要工具。
进一步学习资源:
参考资料
- LangChain 官方文档
- FastAPI 官方文档
- Pydantic 官方文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---