File size: 2,654 Bytes
4673545
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/bin/bash

# 单鼠姿态检测WebRTC系统自动部署脚本
echo "🚀 开始部署单鼠姿态检测WebRTC系统..."

# 检查Python环境
echo "🔍 检查Python环境..."
if ! command -v python3 &> /dev/null; then
    echo "❌ 错误: 未找到Python3,请先安装Python 3.11+"
    exit 1
fi

echo "✅ Python版本: $(python3 --version)"

# 检查虚拟环境
echo "🔍 检查虚拟环境..."
if [[ "$VIRTUAL_ENV" == "" ]]; then
    echo "⚠️  警告: 建议在虚拟环境中运行"
    echo "💡 创建虚拟环境: conda create -n mouse-webrtc python=3.11"
    echo "💡 激活环境: conda activate mouse-webrtc"
    read -p "是否继续在当前环境安装? (y/N): " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        exit 1
    fi
fi

# 安装依赖
echo "📦 安装Python依赖..."
pip install -r requirements_gradio_webrtc.txt

if [ $? -ne 0 ]; then
    echo "❌ 依赖安装失败,请检查网络连接和Python环境"
    exit 1
fi

# 检查模型文件
echo "🔍 检查模型文件..."
if [ ! -f "models/kunin-mice-pose.v0.1.5n.pt" ]; then
    echo "❌ 错误: 模型文件不存在 models/kunin-mice-pose.v0.1.5n.pt"
    echo "请确保模型文件已正确放置在models目录中"
    exit 1
fi

echo "✅ 模型文件检查通过"

# 运行模型检查
echo "🧪 测试模型加载..."
python check_model.py

if [ $? -ne 0 ]; then
    echo "❌ 模型加载测试失败"
    exit 1
fi

# 检查端口是否占用
echo "🔍 检查端口占用..."
if lsof -Pi :7860 -sTCP:LISTEN -t >/dev/null 2>&1; then
    echo "⚠️  端口7860已被占用"
    read -p "是否强制停止占用进程? (y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        lsof -ti:7860 | xargs kill -9 2>/dev/null
    fi
fi

if lsof -Pi :8765 -sTCP:LISTEN -t >/dev/null 2>&1; then
    echo "⚠️  端口8765已被占用"
    read -p "是否强制停止占用进程? (y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        lsof -ti:8765 | xargs kill -9 2>/dev/null
    fi
fi

# 创建日志目录
mkdir -p logs

echo "🎉 部署准备完成!"
echo "📋 服务信息:"
echo "  - Gradio界面: http://localhost:7860"
echo "  - API服务: http://localhost:8765"
echo "  - WebSocket: ws://localhost:8765/ws/stream"
echo "  - API文档: http://localhost:8765/docs"
echo ""

# 询问是否立即启动
read -p "是否立即启动服务? (Y/n): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Nn]$ ]]; then
    echo "🚀 启动服务中..."
    python start_gradio_webrtc.py
else
    echo "💡 手动启动命令: python start_gradio_webrtc.py"
    echo "💡 测试命令: python test_gradio_webrtc_client.py"
fi