更新开发文档:重构列表

This commit is contained in:
LYFxiaoan 2025-07-23 11:51:09 +08:00
parent e844debfaa
commit 0a65e07434

View File

@ -324,3 +324,34 @@
2. **修正数据访问**: 在 `startPrediction` 方法中将API响应的核心数据 `response.data.data` 赋值给 `predictionResult`
3. **标准化日期**: 在 `renderChart` 方法的开头,增加了一个 `formatDate` 辅助函数,并在处理数据时立即调用它,将所有日期都统一转换为 `'YYYY-MM-DD'` 格式的字符串,从而一举解决了数据点丢失和标题格式错误的双重问题。
- **最终结论**: 至此所有预测视图的前后端数据链路和UI展示功能均已修复系统功能恢复正常。
---
## 2025-07-23预测页面UI重构与后端修复
**开发者**: lyf
### 10:00 - 功能升级重构所有预测页面的模型选择UI
- **任务目标**: 为了提供更丰富的模型信息并优化用户体验,将“按药品”、“按店铺”和“全局模型”三个预测页面中的模型版本选择下拉框 (`el-select`) 替换为详细信息表格 (`el-table`)。
- **实现方案**:
1. **UI层面**: 在 `ProductPredictionView.vue`, `StorePredictionView.vue`, 和 `GlobalPredictionView.vue` 中,使用 `el-table` 组件替换了原有的 `el-select`。新的表格能够展示每个模型版本的详细信息包括版本号、创建时间、以及关键的性能指标MAE, RMSE, MAPE
2. **交互优化**: 为表格的每一行增加了一个独立的“开始预测”按钮,允许用户直接针对特定版本的模型发起预测任务。
### 10:30 - 后端改造升级模型版本API以支持新UI
- **任务目标**: 改造后端API使其能够提供前端新版UI所需的全量模型信息。
- **实现方案**:
- **修改API**: 修改了 `server/api.py` 中的三个关键接口:`get_model_versions_api` (药品), `get_store_model_versions_api` (店铺), 和 `get_global_model_versions_api` (全局)。
- **数据结构升级**: 这些接口现在不再返回简单的版本号字符串列表,而是返回一个包含完整模型对象的数组。每个对象都包含了版本号、创建时间、文件路径、以及包含所有评估指标的 `metrics` 字典。
### 11:00 - Bug修复第一环解决店铺名称缺失问题
- **问题现象**: 在“按店铺预测”页面的新版表格中,“店铺名称”一列为空。
- **根本原因**: `get_store_model_versions_api` 接口返回的模型对象中不包含店铺名称信息。
- **修复方案**:
1. 在 `server/utils/multi_store_data_utils.py` 中增加了一个新的辅助函数 `get_store_name`用于根据店铺ID查询其名称。
2. 在 `server/api.py``get_store_model_versions_api` 接口中调用此函数,并将查询到的店铺名称动态添加到每个返回的模型对象中。
### 11:15 - Bug修复第二环根治 `float32` JSON序列化错误
- **问题现象**: 在完成上述所有改造后,所有预测页面的模型版本列表均加载失败,后端返回 `500` 错误,日志显示 `TypeError: Object of type float32 is not JSON serializable`
- **根本原因**: 模型训练后保存的评估指标 (`metrics`) 是NumPy的 `float32` 数据类型标准的Flask JSON编码器无法处理。
- **修复方案**: 在 `server/api.py``get_model_versions_api`, `get_store_model_versions_api`, 和 `get_global_model_versions_api` 三个接口中增加了一个处理步骤。在返回JSON响应之前显式地遍历 `metrics` 字典将所有值从NumPy类型`float32`强制转换为标准的Python `float` 类型,从而彻底解决了该序列化问题。
- **最终结论**: 至此所有预测页面的UI重构和功能升级已全部完成相关的数据链路和bug也已修复。系统现在能够为用户提供更加清晰、详细的模型版本信息并支持基于这些信息直接发起预测。