Blame view

scripts/check_services.sh 2.13 KB
e7f2b240   tangwang   first commit
1
2
3
  #!/usr/bin/env bash
  # =============================================================================
  # OmniShopAgent - 服务健康检查脚本
8810a6fa   tangwang   重构
4
  # 检查 Streamlit、Search API 等依赖
e7f2b240   tangwang   first commit
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
  # =============================================================================
  set -euo pipefail
  
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
  RED='\033[0;31m'
  GREEN='\033[0;32m'
  YELLOW='\033[1;33m'
  NC='\033[0m'
  
  echo "=========================================="
  echo "OmniShopAgent 服务健康检查"
  echo "=========================================="
  
  # 1. Python 环境
  echo -n "[Python] "
  if command -v python3 &>/dev/null; then
      VER=$(python3 -c 'import sys; v=sys.version_info; print(f"{v.major}.{v.minor}.{v.micro}")' 2>/dev/null)
      if [[ "$VER" == "3.1"* ]] || [[ "$VER" == "3.12"* ]]; then
          echo -e "${GREEN}OK${NC} $VER"
      else
          echo -e "${YELLOW}WARN${NC} $VER (建议 3.12+)"
      fi
  else
      echo -e "${RED}FAIL${NC} 未找到"
  fi
  
  # 2. 虚拟环境
  echo -n "[Virtualenv] "
  if [ -d "$PROJECT_ROOT/venv" ]; then
      echo -e "${GREEN}OK${NC} $PROJECT_ROOT/venv"
  else
      echo -e "${YELLOW}WARN${NC} 未找到 venv"
  fi
  
  # 3. .env 配置
  echo -n "[.env] "
  if [ -f "$PROJECT_ROOT/.env" ]; then
      if grep -q "OPENAI_API_KEY=sk-" "$PROJECT_ROOT/.env" 2>/dev/null; then
          echo -e "${GREEN}OK${NC} 已配置"
      else
          echo -e "${YELLOW}WARN${NC} 请配置 OPENAI_API_KEY"
      fi
  else
      echo -e "${RED}FAIL${NC} 未找到"
  fi
  
8810a6fa   tangwang   重构
52
  # 4. 数据目录(可选,用于图片上传)
e7f2b240   tangwang   first commit
53
54
55
56
57
  echo -n "[数据] "
  if [ -d "$PROJECT_ROOT/data/images" ] && [ -f "$PROJECT_ROOT/data/styles.csv" ]; then
      IMG_COUNT=$(find "$PROJECT_ROOT/data/images" -name "*.jpg" 2>/dev/null | wc -l)
      echo -e "${GREEN}OK${NC} $IMG_COUNT 张图片"
  else
8810a6fa   tangwang   重构
58
      echo -e "${YELLOW}WARN${NC} 未找到 data/images 或 data/styles.csv (可选,用于图片风格分析)"
e7f2b240   tangwang   first commit
59
60
  fi
  
8810a6fa   tangwang   重构
61
  # 5. Streamlit
e7f2b240   tangwang   first commit
62
63
64
65
66
67
68
69
  echo -n "[Streamlit] "
  if pgrep -f "streamlit run app.py" >/dev/null 2>&1; then
      echo -e "${GREEN}OK${NC} 运行中"
  else
      echo -e "${YELLOW}WARN${NC} 未运行 (./scripts/start.sh)"
  fi
  
  echo "=========================================="