9 Commits

Author SHA1 Message Date
fc3054fd95 完成预测模块的文件统一保存,回滚,修改预测界面模型列表模型名称展示不出,调整分页 2025-07-30 15:31:48 +08:00
b8d14255d1 修复xgboost训练损失图导出错误 2025-07-30 10:42:29 +08:00
671519fc03 模型训练的文件保存统一管理,训练失败,文件操作回滚,修复模型管理详情页的损失图缺失数据loss_curve_data 2025-07-30 09:49:42 +08:00
348741d49c 解决模型保存过程中的原子性问题,以确保系统在遇到任何错误时都能保持数据的一致性,避免产生“孤儿文件”或不完整的数据库记录。
主要变更和成果:

实现了原子化的模型保存逻辑:

在核心的 PharmacyPredictor 类 (ShopTRAINING/server/core/predictor.py) 中,我们引入了一个新的私有方法 _save_model_transactional。
此方法将所有与模型保存相关的操作(包括所有文件工件的磁盘写入和元数据到数据库的写入)封装成一个单一的事务性操作。
通过使用 try...except 块,我们确保了只有在数据库成功记录元数据后,整个保存操作才被视为成功。
引入了自动回滚机制:

如果在 _save_model_transactional 方法执行期间发生任何错误(例如,数据库连接失败、磁盘空间不足等),except 块会触发回滚。
回滚操作由 _rollback_files 方法执行,它会负责删除在该次失败的训练过程中已经生成的所有文件(如模型文件 .pth、损失曲线图 .png 和损失数据 .json)。
这保证了文件系统不会留下任何与数据库记录不匹配的“孤儿”文件,从而维护了系统的整洁和数据一致性。
重构了核心训练流程:

修改了 PharmacyPredictor 类中的 train_model 方法,使其在训练器成功返回结果后,不再直接返回,而是调用新的 _save_model_transactional 方法。
这使得保存逻辑从 api.py 的路由处理函数中解耦,并集中到负责业务流程编排的 predictor 核心类中,使代码结构更清晰,职责更分明。
相应地,api.py 中的后台训练任务逻辑也进行了简化,它现在只需信任 predictor 返回的结果,无需再关心具体的保存细节。
2025-07-29 16:30:39 +08:00
29b74297cf 更新修复训练预测特征问题 2025-07-29 11:28:58 +08:00
257f2eac72 更换数据源,调试完模型训练,模型预测不完善 2025-07-26 17:01:07 +08:00
a02bc11921 将训练模型信息保存到数据库 2025-07-24 17:55:13 +08:00
9d7dcae1c8 一、使用Swagger UI 展示药店销售预测系统API
二、完成新增模型xgboost,cnn_bilstm_attention的训练,预测
2025-07-23 16:58:20 +08:00
751de9b548 插件式添加模型 2025-07-22 15:41:05 +08:00