项目简介
LitServe 是一个强大而灵活的 Python 框架,旨在简化任何 AI 模型(包括视觉、音频、文本模型)的部署。它支持构建复杂的 AI 系统,如 Agent、聊天机器人、RAG (Retrieval Augmented Generation) 管道和 MCP 服务器,同时提供批处理、多 GPU 支持、流式传输、自定义逻辑和零 YAML 配置等高级功能。
LitServe 作为一个 MCP 服务器,其核心职责是以标准化方式向 LLM 客户端提供上下文信息和功能。它支持托管和管理资源、注册和执行工具,以及定义和渲染 Prompt 模板,并通过 JSON-RPC 协议与客户端通信。
主要功能点
- 部署任何AI系统:无论是Agent、RAG、聊天机器人还是多模态模型,LitServe 都能轻松部署。
- 内置MCP服务器支持:提供标准化的接口,让 LLM 客户端可以发现和调用部署在 LitServe 上的 AI 功能,实现上下文交互。
- 高性能推理:针对 AI 工作负载优化,比 FastAPI 快 2 倍,并支持 GPU 自动扩缩、批处理和流式传输。
- 简化MLOps:无需繁琐的 MLOps 代码,使用简单的 Python API 即可构建完整的 AI 系统。
- 灵活部署:支持自托管,也可以一键部署到 Lightning AI 云平台,提供自动扩缩、监控和高可用性。
安装步骤
- 创建虚拟环境(推荐):
python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows - 安装 LitServe:
'fastmcp' 库是 LitServe 提供 MCP 服务器支持所必需的。pip install litserve fastmcp
服务器配置(MCP客户端使用)
MCP 客户端需要通过 JSON-RPC 协议与 MCP 服务器通信。对于 LitServe 部署的 MCP 服务器,客户端需要配置其连接参数。以下是 MCP 客户端配置信息示例及其说明:
{ "mcpServers": { "litserve-mcp-server": { "command": "npx", "args": [ "mcp-remote", "https://8000-YOUR_HOST_NAME.cloudspaces.litng.ai/mcp/" ], "name": "litserve-mcp-server", "description": "一个由 LitServe 部署的 MCP 服务器,提供模型推理和工具执行功能。" } } }
- 'mcpServers': 包含所有 MCP 服务器配置的根对象。
- 'litserve-mcp-server': 这是您为 LitServe MCP 服务器定义的唯一名称,您可以根据实际情况进行修改。
- 'command': 启动 MCP 远程客户端的命令,通常是 '"npx"'。
- 'args': 传递给 'npx mcp-remote' 命令的参数列表。
- '"mcp-remote"': MCP 远程客户端的名称。
- '"https://8000-YOUR_HOST_NAME.cloudspaces.litng.ai/mcp/"': 这是 LitServe MCP 服务器的实际 URL。 请务必将其替换为您部署的 LitServe 服务器的公共访问地址,并确保末尾包含 '/mcp/' 路径。例如,如果您在本地运行,则可能是 '"http://localhost:8000/mcp/"'。
- 'name': 服务器的友好名称,用于在 MCP 客户端界面中显示。
- 'description': 对服务器功能的简要描述。
基本使用方法
以下是一个简单的 LitServe MCP 服务器示例,它部署了一个计算输入平方的工具:
-
创建 'server.py' 文件:
# server.py from pydantic import BaseModel import litserve as ls from litserve.mcp import MCP class PowerRequest(BaseModel): input: float class MyLitAPI(ls.LitAPI): def setup(self, device): self.model = lambda x: x**2 def decode_request(self, request: PowerRequest) -> float: print(f"Decoding request: {request}") return request.input def predict(self, x): return self.model(x) def encode_response(self, output): return {"output": output} if __name__ == "__main__": api = MyLitAPI(mcp=MCP(description="计算输入数字的平方。")) server = ls.LitServer(api) server.run(port=8000) -
运行服务器:
python server.py服务器将在 'http://localhost:8000' 启动,其 MCP 接口可在 'http://localhost:8000/mcp/' 访问。
-
MCP 客户端交互: 使用配置好的 MCP 客户端(例如 Claude desktop,按照“服务器配置”部分进行配置)连接到 'http://localhost:8000/mcp/'。客户端将能够发现名为 'predict' (或您在 'MCP' 中自定义的 'name') 的工具,并根据其描述(“计算输入数字的平方。”)和输入 Schema 调用它。例如,LLM 客户端可以传递 '{"input": 4.0}',服务器将返回 '{"output": 16.0}'。
信息
分类
AI与计算