README.md 2.8 KB

项目名称

简介

本项目旨在通过Flask框架构建一个Web应用,支持数据的导入、导出以及机器学习模型的训练和预测。项目使用SQLAlchemy进行数据库操作,并集成了Celery用于异步任务处理。

环境搭建

创建Conda环境

  1. 确保已安装Anaconda。
  2. 根据environment.yml文件新建conda环境:

    conda env create -f environment.yml
    
  3. 激活新创建的环境:

    conda activate your_env_name
    

安装并配置Redis

  1. 下载并安装Redis(Celery依赖):

  2. 版本要求:

    • 推荐使用Redis 5.0及以上版本
    • 最低支持版本: Redis 4.0
    • 项目已在Redis 5.0.14.1上测试通过
  3. 启动Redis服务:

    • Windows: redis-server.exe redis.windows.conf
    • Linux/macOS: redis-server
  4. 验证Redis是否正常运行:

    redis-cli ping
    

    如果返回PONG,则表示Redis服务正常运行。

项目结构

  • app/: 包含Flask应用的主要代码。
    • __init__.py: 初始化Flask应用。
    • config.py: 配置文件。
    • utils.py: 工具函数。
    • model.py: 机器学习模型相关操作。
    • tasks.py: Celery任务定义。
    • celery_app.py: Celery配置。
  • model_optimize/: 包含数据处理和模型优化的代码。
  • uploads/: 用于存储上传的文件。
  • ssl/: 存储SSL证书和密钥。

主要功能

数据导入与导出

  • 支持Excel和CSV格式的数据导入。
  • 根据表名导出数据为Excel或CSV格式。

机器学习模型

  • 支持多种机器学习模型的训练和预测。
  • 提供模型评分功能。

异步任务

  • 使用Celery处理异步任务。

使用方法

启动应用

  1. 确保Redis服务正在运行。

  2. 激活conda环境:

    conda activate your_env_name
    
  3. 启动Flask应用:

    python run.py
    
  4. 启动Celery:

    watchfiles --filter python "celery -A app.celery_app.celery worker --loglevel=info" .
    

    说明:执行上述命令需要先安装 watchfiles:

    pip install watchfiles
    

配置

app/config.py中可以修改数据库路径、上传文件夹路径等配置。默认配置包括:

  • 数据库路径: SoilAcidification.db
  • 上传文件夹: uploads/datasets
  • 模型保存路径: pkl
  • Celery配置:
    • Broker URL: redis://localhost:6379/0
    • Result Backend: redis://localhost:6379/0

依赖

请确保已安装以下依赖:

  • Flask
  • SQLAlchemy
  • Celery
  • Redis
  • Pandas
  • Scikit-learn
  • XGBoost
  • Watchfiles

许可证