|
|
4 ヶ月 前 | |
|---|---|---|
| .idea | 5 ヶ月 前 | |
| api | 5 ヶ月 前 | |
| ci | 5 ヶ月 前 | |
| common | 5 ヶ月 前 | |
| models | 4 ヶ月 前 | |
| README.md | 4 ヶ月 前 | |
| env.example | 5 ヶ月 前 | |
| requirements-dev.txt | 5 ヶ月 前 | |
| requirements.txt | 5 ヶ月 前 |
DualFlow 是一个专业的多模型协作平台,专注于工业场景下的智能模型集成与部署。平台集成了异常检测、因果推理、压力预测和超滤强化学习等多个核心机器学习模型,为工业生产过程提供智能化解决方案。
DualFlow/
├── models/ # 机器学习模型
│ ├── anomaly_detection/ # 异常检测模型
│ │ ├── detection.py # 检测算法实现
│ │ └── *.pkl # 预训练模型文件
│ ├── causal-inference/ # 因果推理模型
│ │ ├── gat.py # 图注意力网络
│ │ ├── rl_optimizer.py # 强化学习优化器
│ │ └── *.pth # 训练好的模型权重
│ ├── pressure-predictor/ # 压力预测模型
│ │ ├── gat-lstm_model/ # GAT-LSTM混合模型
│ │ ├── 20分钟TMP预测模型源码/ # 20分钟短期预测
│ │ ├── 90天TMP预测模型源码/ # 90天长期预测
│ │ └── 90天TMP预测模型源码修改/ # 改进版预测模型
│ └── uf-rl/ # 超滤强化学习模型
│ ├── Ultrafiltration_model/ # 超滤生产模型
│ ├── dqn_model/ # 深度Q网络模型
│ └── 超滤训练源码/ # 训练源码和文档
├── common/ # 公共模块
│ ├── data/ # 数据处理模块
│ │ └── loader.py # 数据加载器
│ ├── preprocessing/ # 数据预处理
│ │ ├── image.py # 图像预处理
│ │ └── text.py # 文本预处理
│ ├── metrics/ # 评估指标
│ │ ├── classification.py # 分类指标
│ │ └── regression.py # 回归指标
│ └── utils/ # 工具函数
│ ├── config.py # 配置管理
│ └── logger.py # 日志工具
├── api/ # API接口
│ └── routers/ # 路由模块
│ ├── health.py # 健康检查
│ ├── models.py # 模型管理
│ └── users.py # 用户管理
├── ci/ # CI/CD配置
│ ├── model_build.yml # 模型构建流程
│ ├── model_deploy.yml # 模型部署流程
│ └── scripts/ # 部署脚本
│ └── deploy_model.sh # 模型部署脚本
├── requirements.txt # 项目依赖
├── requirements-dev.txt # 开发依赖
├── env.example # 环境变量示例
└── README.md # 项目说明
克隆项目
git clone <repository-url>
cd DualFlow
创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
安装依赖
pip install -r requirements.txt
pip install -r requirements-dev.txt # 开发环境
环境配置
cp env.example .env
# 编辑 .env 文件,配置相关环境变量
cd models/anomaly_detection
python detection.py
cd models/causal-inference
python main.py
# 20分钟预测
cd models/pressure-predictor/20分钟TMP预测模型源码
python main.py
# 90天预测
cd models/pressure-predictor/90天TMP预测模型源码
python main.py
# GAT-LSTM混合模型
cd models/pressure-predictor/gat-lstm_model
python api_main.py
# 训练
cd models/uf-rl/超滤训练源码
python DQN_train.py
# 推理
cd models/uf-rl/Ultrafiltration_model
python loop_main.py
# 启动FastAPI服务
uvicorn api.main:app --host 0.0.0.0 --port 8000 --reload
每个模型目录应包含以下标准结构:
model_name/
├── README.md # 模型说明文档
├── main.py # 主程序入口
├── config.py # 配置文件
├── requirements.txt # 模型特定依赖
├── data/ # 数据目录
├── models/ # 模型文件
└── tests/ # 测试文件
创建模型目录
mkdir models/new_model
cd models/new_model
创建标准文件
touch README.md main.py config.py requirements.txt
mkdir -p data models tests
实现模型代码
main.py中实现模型逻辑config.py中定义配置参数README.md中编写详细文档添加测试
# 在tests/目录下创建测试文件
pytest tests/
代码格式化: 使用 Black 进行代码格式化
black .
导入排序: 使用 isort 进行导入排序
isort .
类型检查: 使用 mypy 进行类型检查
mypy .
代码质量: 使用 flake8 进行代码检查
flake8 .
提交前检查: 使用 pre-commit hooks
pre-commit install
# 运行所有测试
pytest
# 运行特定模型测试
pytest models/anomaly_detection/tests/
# 生成测试覆盖率报告
pytest --cov=models --cov-report=html
构建镜像
docker build -t dualflow:latest .
运行容器
docker run -d -p 8000:8000 --name dualflow-app dualflow:latest
使用CI/CD流程
# 构建模型
./ci/scripts/model_build.yml
# 部署模型
./ci/scripts/model_deploy.yml
监控和日志
使用 Prometheus 进行指标监控
使用结构化日志记录运行状态
启动服务后,访问以下地址查看API文档:
GET /health - 健康检查GET /models - 获取模型列表POST /models/{model_name}/predict - 模型预测GET /models/{model_name}/status - 模型状态我们欢迎所有形式的贡献!请遵循以下步骤:
创建功能分支
git checkout -b feature/your-feature-name
提交更改
git commit -m "Add your feature description"
推送分支
git push origin feature/your-feature-name
创建 Pull Request
提供清晰的PR描述
确保所有测试通过
更新相关文档
如果您遇到任何问题或有改进建议,请:
本项目采用 MIT 许可证。详情请查看 LICENSE 文件。
注意: 本项目仍在持续开发中,部分功能可能存在不稳定情况。建议在生产环境使用前进行充分测试。