#!/bin/bash # 视频模型检测平台 - 初始化脚本 set -e echo "🚀 开始初始化 jc-video-web 项目..." # 检查 pnpm if ! command -v pnpm &> /dev/null; then echo "📦 安装 pnpm..." npm install -g pnpm fi # 安装根依赖 echo "📦 安装根依赖..." cd "$(dirname "$0")/.." pnpm install # 安装前端依赖 echo "📦 安装前端依赖..." cd apps/web pnpm install cd ../.. # 检查 Python 虚拟环境 if [ ! -d "apps/server/venv" ]; then echo "🐍 创建 Python 虚拟环境..." cd apps/server python3 -m venv venv source venv/bin/activate pip install -r requirements.txt cd ../.. else echo "✓ Python 虚拟环境已存在" fi # 创建必要的目录 echo "📁 创建必要的目录..." mkdir -p apps/server/static/{uploads,results,temp} mkdir -p models/{fire_detection,helmet_detection,crowd_detection,smoking_detection} # 链接模型文件(如果不存在) echo "🔗 检查模型文件链接..." # 火灾检测模型 if [ ! -f "models/fire_detection/best.pt" ]; then if [ -f "../../fire_detection/models/best.pt" ]; then ln -sf "$(pwd)/../../fire_detection/models/best.pt" models/fire_detection/ fi fi # 安全帽检测模型 if [ ! -f "models/helmet_detection/yolov8n.pt" ]; then if [ -f "../../yolov/yolov8n.pt" ]; then ln -sf "$(pwd)/../../yolov/yolov8n.pt" models/helmet_detection/ fi fi # 人群检测模型 if [ ! -f "models/crowd_detection/yolov8l.pt" ]; then if [ -f "../../behavior_detection/Crowd-Gathering/models/yolov8l.pt" ]; then ln -sf "$(pwd)/../../behavior_detection/Crowd-Gathering/models/yolov8l.pt" models/crowd_detection/ fi fi # 抽烟检测模型 if [ ! -f "models/smoking_detection/smoking_yolov8n.pt" ]; then if [ -f "../../behavior_detection/smoker-detection/models/smoking_yolov8n.pt" ]; then ln -sf "$(pwd)/../../behavior_detection/smoker-detection/models/smoking_yolov8n.pt" models/smoking_detection/ fi fi echo "✅ 初始化完成!" echo "" echo "📝 可用命令:" echo " pnpm dev - 同时启动前后端开发服务器" echo " pnpm dev:web - 只启动前端开发服务器" echo " pnpm dev:server - 只启动后端开发服务器" echo "" echo "🌐 访问地址:" echo " 前端: http://localhost:5173" echo " 后端: http://localhost:8000"