Files
auto_agent/llm_server/start_qwen3_omni.sh
T

87 lines
2.5 KiB
Bash

#!/usr/bin/env bash
# =============================================================================
# Qwen3-Omni vLLM-Omni 服务启动脚本
#
# 使用方法 (在远程服务器上):
# 1. 安装 vllm-omni:
# pip install vllm-omni
#
# 2. 下载模型:
# modelscope download --model Qwen/Qwen3-Omni-30B-A3B-Instruct \
# --local_dir ./models/Qwen/Qwen3-Omni-30B-A3B-Instruct
#
# 3. 启动服务:
# bash start_qwen3_omni.sh
#
# 端口: 8904
# API:
# - WebSocket 实时: ws://127.0.0.1:8904/v1/realtime
# - Chat Completions: http://127.0.0.1:8904/v1/chat/completions
# - Health: http://127.0.0.1:8904/health
# =============================================================================
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MODEL_PATH="${SCRIPT_DIR}/models/Qwen/Qwen3-Omni-30B-A3B-Instruct"
PORT="${PORT:-8904}"
echo "============================================"
echo " Qwen3-Omni vLLM-Omni 服务启动"
echo "============================================"
echo " 模型路径: ${MODEL_PATH}"
echo " 端口: ${PORT}"
echo "============================================"
# 检查模型是否存在
if [ ! -d "${MODEL_PATH}" ]; then
echo ""
echo "❌ 模型未找到: ${MODEL_PATH}"
echo ""
echo "请先下载模型:"
echo " pip install modelscope -U"
echo " modelscope download --model Qwen/Qwen3-Omni-30B-A3B-Instruct \\"
echo " --local_dir ${MODEL_PATH}"
exit 1
fi
# 检查 vllm-omni 是否安装
if ! python3 -c "import vllm_omni" 2>/dev/null; then
echo ""
echo "❌ vllm-omni 未安装"
echo ""
echo "请安装:"
echo " pip install vllm-omni"
echo ""
echo "或从源码安装:"
echo " git clone https://github.com/vllm-project/vllm-omni.git"
echo " cd vllm-omni"
echo " pip install -e ."
exit 1
fi
echo ""
echo "🚀 启动 vLLM-Omni 服务..."
# 停止旧进程 (如果存在)
OLD_PID=$(lsof -t -i:${PORT} 2>/dev/null || true)
if [ -n "${OLD_PID}" ]; then
echo " 停止旧进程 (PID: ${OLD_PID})..."
kill ${OLD_PID} 2>/dev/null || true
sleep 2
fi
# 启动服务
# --omni: 启用多阶段编排 (Thinker → Talker → Code2Wav)
# 默认配置: vllm_omni/deploy/qwen3_omni_moe.yaml
# 异步 chunk 流式传输默认开启
vllm serve "${MODEL_PATH}" \
--omni \
--port "${PORT}" \
--host 0.0.0.0 \
--gpu-memory-utilization 0.85 \
--max-model-len 32768 \
2>&1 | tee "${SCRIPT_DIR}/qwen3_omni_server.log"
echo ""
echo "服务已停止."