5.2 KiB
5.2 KiB
vLLM推理模型管理
vLLM SGLang 模型推理 LLM 推理服务器
vLLM Studio
面向 vLLM 和 SGLang 推理服务器的模型生命周期管理工具。
功能概述
- 启动/卸载模型 — 支持 vLLM 或 SGLang 后端
- 保存配方 — 可复用的模型配置,支持完整参数设置
- 推理支持 — 自动检测 GLM(
glm45)、INTELLECT-3(deepseek_r1)和 MiniMax(minimax_m2_append_think)解析器 - 工具调用 — 原生函数调用,支持自动工具选择(GLM 和 INTELLECT-3 模型自动检测)
- Web 界面 — 用于聊天、模型管理和使用分析
- LiteLLM 集成 — 提供 API 网关功能(可选)
架构
┌──────────┐ ┌────────────┐ ┌─────────────┐
│ 客户端 │─────▶│ 控制器 │─────▶│ vLLM/SGLang │
│ │ │ :8080 │ │ :8000 │
└──────────┘ └────────────┘ └─────────────┘
│
┌─────┴─────┐
│ Web 界面 │
│ :3000 │
└───────────┘
可选: 添加 LiteLLM 作为 API 网关,支持 OpenAI/Anthropic 格式转换、费用追踪和请求路由。
快速开始
# 安装控制器
pip install -e .
# 启动控制器
vllm-studio
# (可选)启动前端
cd frontend && npm install && npm run dev
API 参考
健康检查与状态
| 端点 | 方法 | 描述 |
|---|---|---|
/health |
GET | 健康检查及后端状态 |
/status |
GET | 运行中的进程详情 |
/gpus |
GET | GPU 信息(显存、利用率) |
配方管理
| 端点 | 方法 | 描述 |
|---|---|---|
/recipes |
GET | 列出所有配方 |
/recipes |
POST | 创建配方 |
/recipes/{id} |
GET | 获取配方 |
/recipes/{id} |
PUT | 更新配方 |
/recipes/{id} |
DELETE | 删除配方 |
模型生命周期
| 端点 | 方法 | 描述 |
|---|---|---|
/launch/{recipe_id} |
POST | 从配方启动模型 |
/evict |
POST | 停止运行中的模型 |
/wait-ready |
GET | 等待后端就绪 |
聊天会话
| 端点 | 方法 | 描述 |
|---|---|---|
/chats |
GET | 列出会话 |
/chats |
POST | 创建会话 |
/chats/{id} |
GET | 获取会话及消息 |
/chats/{id} |
PUT | 更新会话 |
/chats/{id} |
DELETE | 删除会话 |
/chats/{id}/messages |
POST | 添加消息 |
/chats/{id}/fork |
POST | 派生会话 |
MCP(模型上下文协议)
| 端点 | 方法 | 描述 |
|---|---|---|
/mcp/servers |
GET | 列出 MCP 服务器 |
/mcp/servers |
POST | 添加服务器 |
/mcp/tools |
GET | 列出可用工具 |
/mcp/tools/{server}/{tool} |
POST | 调用工具 |
配置
环境变量
VLLM_STUDIO_PORT=8080 # 控制器端口
VLLM_STUDIO_INFERENCE_PORT=8000 # vLLM/SGLang 端口
VLLM_STUDIO_API_KEY=your-key # 可选认证密钥
配方示例
{
"id": "llama3-8b",
"name": "Llama 3 8B",
"model_path": "/models/Meta-Llama-3-8B-Instruct",
"backend": "vllm",
"tensor_parallel_size": 1,
"max_model_len": 8192,
"gpu_memory_utilization": 0.9,
"trust_remote_code": true
}
配方字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
id |
string | 唯一标识符 |
name |
string | 显示名称 |
model_path |
string | 模型权重路径 |
backend |
string | vllm 或 sglang |
tensor_parallel_size |
int | GPU 张量并行数 |
pipeline_parallel_size |
int | 流水线并行数 |
max_model_len |
int | 最大上下文长度 |
gpu_memory_utilization |
float | 显存占用率(0-1) |
kv_cache_dtype |
string | KV 缓存类型 |
quantization |
string | 量化方式 |
dtype |
string | 模型数据类型 |
served_model_name |
string | API 暴露的模型名称 |
tool_call_parser |
string | 工具调用解析器 |
reasoning_parser |
string | 推理/思考解析器(GLM、MiniMax 自动检测) |
enable_auto_tool_choice |
bool | 启用自动工具选择 |
trust_remote_code |
bool | 允许远程代码 |
extra_args |
object | 额外 CLI 参数 |
目录结构
vllm-studio/
├── controller/
│ ├── app.py # FastAPI 端点
│ ├── process.py # 进程管理
│ ├── backends.py # vLLM/SGLang 命令构建器
│ ├── models.py # Pydantic 数据模型
│ ├── store.py # SQLite 存储
│ ├── config.py # 配置项
│ └── cli.py # 入口点
├── frontend/ # Next.js Web 界面
├── config/
│ └── litellm.yaml # LiteLLM 配置(可选)
└── docker-compose.yml
与 LiteLLM 配合使用(可选)
如需兼容 OpenAI/Anthropic API 格式:
docker compose up litellm
然后将 http://localhost:4100 作为 API 端点,可与任意 OpenAI 兼容客户端配合使用。
许可证
Apache 2.0