xz2000 a9a0e51769 # 修改记录日志 (日期: 2025-07-16)
## 1. 核心 Bug 修复

### 文件: `server/core/predictor.py`

- **问题**: 在 `train_model` 方法中调用内部辅助函数 `_prepare_training_params` 时,没有正确传递 `product_ids` 和 `store_ids` 参数,导致在 `_prepare_training_params` 内部发生 `NameError`。
- **修复**:
    - 修正了 `train_model` 方法内部对 `_prepare_training_params` 的调用,确保 `product_ids` 和 `store_ids` 被显式传递。
    - 此前已修复 `train_model` 的函数签名,使其能正确接收 `store_ids`。
- **结果**: 彻底解决了训练流程中的参数传递问题,根除了由此引发的 `NameError`。

## 2. 代码清理与重构

### 文件: `server/api.py`

- **内容**: 移除了在 `start_training` API 端点中遗留的旧版、基于线程(`threading.Thread`)的训练逻辑。
- **原因**: 该代码块已被新的、基于多进程(`multiprocessing`)的 `TrainingProcessManager` 完全取代。旧代码中包含了大量用于调试的 `thread_safe_print` 日志,已无用处。
- **结果**: `start_training` 端点的逻辑变得更加清晰,只负责参数校验和向 `TrainingProcessManager` 提交任务。

### 文件: `server/utils/training_process_manager.py`

- **内容**: 在 `TrainingWorker` 的 `run_training_task` 方法中,移除了一个用于模拟训练进度的 `for` 循环。
- **原因**: 该循环包含 `time.sleep(1)`,仅用于在没有实际训练逻辑时模拟进度更新,现在实际的训练器会通过回调函数报告真实进度,因此该模拟代码不再需要。
- **结果**: `TrainingWorker` 现在直接调用实际的训练器,不再有模拟延迟,代码更贴近生产环境。

## 3. 启动依赖

- **Python**: 3.x
- **主要库**:
    - Flask
    - Flask-SocketIO
    - Flasgger
    - pandas
    - numpy
    - torch
    - scikit-learn
    - matplotlib
- **启动命令**: `python server/api.py`
2025-07-16 15:34:57 +08:00
..
2025-07-02 11:05:23 +08:00
2025-07-02 11:05:23 +08:00
2025-07-02 11:05:23 +08:00

药店销售预测系统 - 前端界面

这是一个使用 Vue 3, Vite, Element Plus 和 Vue Router 构建的前端管理界面用于与药店销售预测系统的后端API进行交互。

功能模块

  • 首页: 系统功能概览和快捷入口。
  • 数据管理: 浏览产品数据上传新的销售数据Excel文件。
  • 模型训练: 选择产品和模型类型,启动异步训练任务,并实时查看任务状态。
  • 模型预测: 对指定产品进行销售预测,支持单模型预测和多模型效果对比,并提供可视化图表。
  • 模型管理: 查看、筛选、搜索、导入、导出和删除已训练的模型。

技术栈

  • Vue 3: 渐进式JavaScript框架。
  • Vite: 下一代前端开发与构建工具。
  • Vue Router: Vue.js 的官方路由。
  • Element Plus: 基于 Vue 3 的桌面端组件库。
  • Axios: 一个基于 promise 的 HTTP 库。
  • Chart.js: 用于数据可视化的JavaScript图表库。

安装和运行

前提条件

  • Node.js (建议使用LTS版本)
  • pnpm (可选,但推荐)

步骤

  1. 进入UI目录

    cd UI
    
  2. 安装依赖 使用 npm:

    npm install
    

    或者使用 pnpm:

    pnpm install
    

    或者使用 yarn:

    yarn
    
  3. 启动开发服务器

    npm run dev
    

    该命令会启动一个本地开发服务器,你可以在浏览器中访问 http://localhost:5173 (或终端提示的其他端口) 来查看界面。

    重要:

    • 请确保后端的Flask API服务正在运行中。
    • Vite配置文件中已设置了代理所有 /api 开头的请求都会被转发到 http://127.0.0.1:5000
  4. 构建生产版本

    npm run build
    

    该命令会将项目打包到 dist 目录,用于生产环境部署。