This commit is contained in:
李如威 2025-10-23 17:03:43 +08:00
commit 799fe71666
7 changed files with 177 additions and 0 deletions

73
.gitignore vendored Normal file
View File

@ -0,0 +1,73 @@
# 专为 macOS 设计的 .gitignore 文件
# 生成日期2025-10-23
### macOS 系统特定文件 ###
# Finder 和操作系统生成的隐藏文件
models
.DS_Store
.AppleDouble
.LSOverride
# 图标必须文件,在 Retina 显示屏上使用
Icon?
# 缩略图
._*
# 文件可能出现在 Apple 文件共享中
.Spotlight-V100
.Trashes
### 常见开发环境 ###
# 日志文件
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# 依赖目录
node_modules/
*/node_modules
# 编译输出目录
build/
dist/
*.min.js
*.min.css
# 临时文件
*.tmp
*.temp
# 环境变量文件(包含敏感信息,务必忽略)
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
### 集成开发环境 (IDE) ###
# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# IntelliJ IDEA
.idea/
*.iws
*.iml
*.ipr
### 其他通用忽略规则 ###
# 系统文件
Thumbs.db
ehthumbs.db
Desktop.ini
# 备份文件
*.bak
*.backup
*~

1
.python-version Normal file
View File

@ -0,0 +1 @@
3.13.0

35
README.md Normal file
View File

@ -0,0 +1,35 @@
## 简介
本来想直接在docker里面跑 vllm ,但是 mac m2 没有对应的镜像所以改为直接系统上用python 跑
## 准备
下载需要运行的模型,记得修改 `start.sh` 中的模型配置
例: 使用 `Qwen2.5-0.5B-Instruct` 模型调试
```
# mac 系统
# 1. 安装 git-lfsGit LFSLarge File Storage是 Git 的一个扩展,专门用于高效地版本控制大型文件,如音频、视频、数据集、图形资产等
brew install git-lfs
git lfs install
# 2. 下载模型
mkdir models
cd models
git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git
```
## 命令
```shell
# 启动
sh start.sh
# 关闭
sh stop.sh
# 查看是否成功
curl http://localhost:8022/v1/models
```

4
requirements.txt Normal file
View File

@ -0,0 +1,4 @@
torch
torchvision
torchaudio
vllm==0.11.0

43
start.sh Normal file
View File

@ -0,0 +1,43 @@
#!/bin/bash
# 启动本地 vLLM OpenAI API 服务 (MPS 模式)
# ========= 配置区域 =========
MODEL_PATH="./models/Qwen2.5-0.5B-Instruct"
MODEL_NAME="Qwen2.5-0.5B-Instruct"
PORT=8022
LOG_FILE="vllm.log"
PID_FILE="vllm.pid"
VENV_DIR="venv-vllm"
API_KEY="sk-local-827ccb0eea8a706c4c34a16891f84e7b"
# ===========================
echo "🔍 检查 Python 虚拟环境..."
if [ ! -d "$VENV_DIR" ]; then
echo "⚙️ 创建虚拟环境..."
python3 -m venv "$VENV_DIR"
fi
source "$VENV_DIR/bin/activate"
# 检查 vllm 是否安装
if ! python -c "import vllm" &>/dev/null; then
echo "📦 安装 vLLM 和 PyTorch..."
pip install --upgrade pip
pip install torch torchvision torchaudio
pip install vllm==0.11.0
fi
# 启动 vLLM
echo "🚀 启动 vLLM API Server..."
nohup python -m vllm.entrypoints.openai.api_server \
--model "$MODEL_PATH" \
--served-model-name "$MODEL_NAME" \
--max-model-len 2048 \
--host 0.0.0.0 \
--port $PORT \
--api-key "$API_KEY" > "$LOG_FILE" 2>&1 &
echo $! > "$PID_FILE"
echo "✅ vLLM 已启动 (PID=$(cat $PID_FILE))"
echo "📡 访问地址: http://localhost:$PORT/v1"
echo "📜 日志文件: $LOG_FILE"

20
stop.sh Normal file
View File

@ -0,0 +1,20 @@
#!/bin/bash
# 停止本地 vLLM 服务
PID_FILE="vllm.pid"
if [ ! -f "$PID_FILE" ]; then
echo "⚠️ 未找到 PID 文件vLLM 可能未运行。"
exit 1
fi
PID=$(cat "$PID_FILE")
if ps -p "$PID" > /dev/null 2>&1; then
echo "🛑 停止 vLLM (PID=$PID)..."
kill "$PID"
rm -f "$PID_FILE"
echo "✅ 已关闭 vLLM 服务。"
else
echo "⚠️ 未找到运行中的 vLLM 进程。"
rm -f "$PID_FILE"
fi

1
vllm.pid Normal file
View File

@ -0,0 +1 @@
56356