catalog/repos/0xsero--vllm-studio.md

5.2 KiB
Raw Blame History

vLLM推理模型管理

vLLM SGLang 模型推理 LLM 推理服务器

vLLM Studio

面向 vLLM 和 SGLang 推理服务器的模型生命周期管理工具。

功能概述

  • 启动/卸载模型 — 支持 vLLM 或 SGLang 后端
  • 保存配方 — 可复用的模型配置,支持完整参数设置
  • 推理支持 — 自动检测 GLMglm45、INTELLECT-3deepseek_r1)和 MiniMaxminimax_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 vllmsglang
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