#!/bin/bash set -e echo "============================================================" echo "信用卡欺诈检测系统 - 一键安装脚本" echo "============================================================" echo "" # 检查Python是否安装 if ! command -v python3 &> /dev/null; then echo "[错误] 未检测到Python,请先安装Python 3.10或更高版本" echo "Ubuntu/Debian: sudo apt-get install python3 python3-pip" echo "CentOS/RHEL: sudo yum install python3 python3-pip" echo "macOS: brew install python3" exit 1 fi echo "[步骤 1/5] 检查Python版本..." PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}') echo "Python版本: $PYTHON_VERSION" echo "" # 检查Python版本是否满足要求 PYTHON_MAJOR=$(echo $PYTHON_VERSION | cut -d. -f1) PYTHON_MINOR=$(echo $PYTHON_VERSION | cut -d. -f2) if [ "$PYTHON_MAJOR" -lt 3 ] || ([ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -lt 10 ]); then echo "[错误] Python版本过低,需要3.10或更高版本" exit 1 fi echo "[步骤 2/5] 安装Python依赖..." echo "正在安装依赖包,这可能需要几分钟..." pip3 install -r requirements.txt if [ $? -ne 0 ]; then echo "[错误] 依赖安装失败" echo "请检查网络连接或尝试使用国内镜像源:" echo "pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple" exit 1 fi echo "依赖安装完成" echo "" echo "[步骤 3/5] 检查数据文件..." if [ ! -f "data/creditcard.csv" ]; then echo "[警告] 未找到数据文件 data/creditcard.csv" echo "" echo "请从以下地址下载数据集:" echo "https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud" echo "" echo "下载后将 creditcard.csv 文件放入 data/ 目录" echo "" read -p "数据文件已准备好吗?(Y/N): " DATA_READY if [[ ! "$DATA_READY" =~ ^[Yy]$ ]]; then echo "安装已取消" exit 1 fi else echo "数据文件已存在" fi echo "" echo "[步骤 4/5] 检查模型文件..." if [ ! -f "models/random_forest_model.joblib" ]; then echo "模型文件不存在,开始训练模型..." echo "这可能需要几分钟,请耐心等待..." python3 src/train.py if [ $? -ne 0 ]; then echo "[错误] 模型训练失败" exit 1 fi echo "模型训练完成" else echo "模型文件已存在" fi echo "" echo "[步骤 5/5] 运行环境检查..." python3 check_environment.py if [ $? -ne 0 ]; then echo "[警告] 环境检查发现问题,但将继续启动应用" fi echo "" echo "============================================================" echo "安装完成!正在启动Web界面..." echo "============================================================" echo "" echo "提示:" echo "- Web界面将在浏览器中自动打开" echo "- 如果没有自动打开,请访问: http://localhost:8501" echo "- 按 Ctrl+C 可以停止服务" echo "" python3 src/agent_app.py