面向整车热管理算法研发的 AI 预测训练、评估、压缩与部署工作台。平台覆盖从 Excel/总线数据导入、数据质量诊断、清洗、特征工程、模型训练、模型评估、模型压缩、模型注册、部署打包、实时预测到 HTML 报告导出的完整闭环,并为每个关键环节接入可配置大模型 AI 助手。
当前版本已进入面向生产化验证的增强阶段,除原有数据导入、清洗、特征工程、训练、评估、压缩、部署与预测闭环外,新增了更完整的工程化治理能力。
Claude Code 第二轮审查提出的 P1/P2/P3 问题已完成闭环整改,并补充专项测试与验收文档。核心整改包括:时序切分防泄露、API Key 脱敏、AI任务重试与 token 计量、API限流、总线字段鲁棒识别、增量学习验证隔离、A/B统计显著性、类别漂移监控、近似贡献解释命名修正、随机搜索调参、结构化日志轮转、环境变量回滚、Streamlit重复函数清理、大数据分页与AI结果持久化。
验收文档:
本轮验证命令:
python -m compileall streamlit_app.py thermal_ai_trainer tests
python -m pytest tests -q --basetemp=pytest-cache-files-review-v2当前结果:30 passed。
| 方向 | 已落地能力 |
|---|---|
| 生产化中心 | 环境隔离、数值/类别漂移监控、近似贡献解释、网格/随机自动调参、A/B 统计显著性、结构化日志轮转 |
| 部署与预测 | 支持本地数据导入预测、当前流程数据预测、整车总线实时预测入口和部署契约检查 |
| 可视化体验 | Plotly 图表统一交互、选择明细、白底黑字 hover 提示、侧栏深色主题一致性优化 |
| 文档同步 | 主界面嵌入三阶段开发历程 HTML 与工具使用说明 HTML,后续功能迭代需同步更新 |
| 安全边界 | 本地 AI 配置、运行产物、报告、导出文件、训练模型和临时调试文件默认不提交到 Git |
| 能力 | 说明 |
|---|---|
| 全流程建模闭环 | 数据导入、质量诊断、清洗、特征工程、训练、评估、压缩、注册、部署、预测、报告全部打通 |
| 热管理专题优化 | 面向电池、冷却液、座舱、压缩机、车速、HVAC 功率等热管理信号生成领域特征和风险诊断 |
| AI 增强 | 支持 DeepSeek、Kimi、Claude、GPT、GLM、自定义 OpenAI-compatible API;每个主要功能页都有 AI 分析入口 |
| 高自由度特征工程 | 滑动窗口、滞后、温差、变化率、PCA 目标相关特征发现、聚类标签与距离高维特征 |
| 增量学习 | 冻结基础模型参数矩阵,只对增量数据训练 residual adapter,并保存为新的可追溯产物 |
| 模型压缩中心 | 支持 Joblib 压缩、树裁剪、线性稀疏化、PyTorch 幅值剪枝、知识蒸馏、压缩前后指标/延迟对比 |
| 部署中心 | 产物完整性检查、接口契约、部署评分、FastAPI、本地批量预测、总线实时预测接入设计 |
| 图表可交互 | Plotly 悬停、缩放、复位、点击、框选、套索选择;可视化中心展示日志、工作流、算法结构和原理 |
平台按“先可用闭环,再增强能力,再部署集成”的工程节奏组织功能。数据、配置、模型、评估指标和报告都保留可追溯产物,便于批量实验、模型对比和上线回滚。
flowchart LR
A["Excel / CSV / 总线数据"] --> B["数据质量诊断"]
B --> C["数据清洗与滤波"]
C --> D["热管理特征工程"]
D --> E["算法实验室"]
E --> F["模型训练"]
F --> G["模型评估"]
G --> H["模型压缩中心"]
H --> I["模型注册"]
I --> J["部署中心"]
J --> K["批量预测 / 实时总线预测"]
K --> L["HTML 报告与 AI 复盘"]
| 模块 | 关键文件 | 职责 |
|---|---|---|
| 数据处理 | thermal_ai_trainer/data_processing/ |
Excel 加载、质量分析、清洗、滤波、热管理专题特征、PCA、聚类 |
| 模型训练 | thermal_ai_trainer/models/ |
模型工厂、传统模型、树模型、深度学习、增量残差模型、模型压缩 |
| 部署预测 | thermal_ai_trainer/deployment/ |
产物检查、部署包、FastAPI、批量预测、总线数据归一化与实时预测 |
| AI 能力 | thermal_ai_trainer/ai/ |
大模型配置、上下文压缩、AI 任务、连续问答助手 |
| 图形界面 | streamlit_app.py、thermal_ai_trainer/gui/ |
Streamlit 增强工作台与 PySide6 桌面复刻 |
| 工具与报告 | thermal_ai_trainer/utils/ |
配置读写、HTML 报告、导出、模型注册、运行产物管理 |
| 脚本 | scripts/ |
依赖安装、启动、冒烟测试、预测 CLI、预测 API |
| 页面 | 视觉/交互能力 | AI 能力 | 产物 |
|---|---|---|---|
| 1 数据导入 | 文件列表、数据预览、摘要卡片 | 数据结构识别 | 原始数据帧 |
| 2 数据质量 | 缺失、重复、时间连续性、相关性图 | 质量风险分析 | 质量报告 |
| 3 信号浏览 | 多信号曲线、分布、散点、滑动统计 | 信号关系解释 | 信号洞察 |
| 4 数据清洗 | 单特征/批量滤波、划分、标准化 | 清洗策略建议 | 清洗配置 |
| 5 特征工程 | PCA 载荷、目标相关性、聚类画像 | 特征组合建议 | 特征配置 |
| 6 算法实验室 Pro | 算法矩阵、批量实验、能力雷达 | 实验规划 | 实验记录 |
| 7 模型训练 Pro | 参数面板、日志、损失曲线 | 训练策略建议 | 模型产物 |
| 8 模型评估 Pro | 残差、校准散点、指标热力图 | 指标风险解释 | HTML 评估报告 |
| 9 模型压缩中心 | 压缩方法矩阵、延迟/指标对比 | 压缩部署审查 | 压缩模型与报告 |
| 10 实验看板 | 排行榜、模型对比图表 | 实验结果解读 | 对比记录 |
| 11 模型注册 | 模型卡、版本、特征清单 | 版本说明 | 模型卡 |
| 12 部署中心 | 部署评分、契约、风险清单 | 部署审查 | ZIP 部署包 |
| 13 热管理专题 Pro | 工况、风险、事件回放 | 热管理诊断 | 领域诊断 |
| 14 验证预测 | 本地文件预测、当前流预测、总线预测 | 预测结果解读 | Excel/HTML |
| 15 AI 项目助手 | 上下文选择、连续问答 | 项目级算法助手 | AI 审计日志 |
| 16 AI 设置 | 供应商、模型、Key、连接测试 | 多模型接入 | 本地 AI 配置 |
| 17 文档中心 | 开发历程和使用说明内嵌预览 | 文档同步提醒 | HTML 文档 |
| 18 可视化中心 | 日志时间线、算法结构 SVG、Sankey | 算法结构解读 | 结构分析 |
| 19 生产化中心 | 环境配置、漂移、解释性、调参、A/B、结构化日志 | 生产治理建议 | 生产化审计记录 |
模型压缩位于“模型评估”之后、“模型注册/部署”之前,避免未经验证的压缩模型直接进入上线流程。
| 压缩路线 | 适用对象 | 自由度 | 验收重点 |
|---|---|---|---|
| Joblib 存储压缩 | 传统模型、树模型、增量残差适配器 | 压缩等级、是否剥离训练历史 | 文件大小、加载耗时 |
| 树集成裁剪 | RandomForest、兼容 estimators_ 的集成模型 |
保留比例、最少树数量 | RMSE/MAE/R2 漂移 |
| 线性稀疏化 | 线性模型或线性学生模型 | 系数稀疏率 | 解释性、误差边界 |
| PyTorch 幅值剪枝 | DNN/LSTM/GRU | 权重稀疏率 | 时序窗口、目标误差 |
| 知识蒸馏 | 任意教师模型到轻量学生模型 | 学生模型类型、树数、深度、学习率 | 真实标签复测、工况覆盖 |
| 量化/ONNX/TensorRT | 端侧部署扩展 | 位宽、校准样本、opset、硬件后端 | Python 与端侧输出一致性 |
sequenceDiagram
participant User as 工程师
participant UI as 平台界面
participant Context as 项目上下文压缩器
participant LLM as 自定义大模型 API
participant Audit as AI 审计日志
User->>UI: 点击 AI 分析 / 连续问答
UI->>Context: 汇总当前数据、配置、指标、日志摘要
Context->>LLM: 发送压缩后的上下文和任务指令
LLM-->>UI: 返回策略、风险、解释和下一步建议
UI->>Audit: 记录任务名、模型、时间和上下文摘要
支持的供应商:
| 供应商 | 环境变量 |
|---|---|
| 自定义 OpenAI-compatible | AI_PLATFORM_API_KEY 或 OPENAI_API_KEY |
| OpenAI / GPT | OPENAI_API_KEY |
| DeepSeek | DEEPSEEK_API_KEY |
| Kimi / Moonshot | KIMI_API_KEY 或 MOONSHOT_API_KEY |
| GLM / 智谱 | GLM_API_KEY 或 ZHIPU_API_KEY |
| Claude / Anthropic | ANTHROPIC_API_KEY 或 CLAUDE_API_KEY |
本地密钥保存在 local_settings/ai_settings.json,该目录已被 .gitignore 排除。
建议优先使用 Python 3.11。平台代码支持 Python 3.11 到 3.14,但在全量安装 PyTorch、LightGBM、XGBoost 等机器学习依赖时,Python 3.11 的 Windows 预编译轮子兼容性通常最好。
在其它 Windows 10/11 电脑上部署时,推荐直接下载仓库 ZIP 或执行 git clone,然后双击:
setup_and_launch.cmd
这个脚本会自动完成:
| 步骤 | 行为 |
|---|---|
| Python 检查 | 自动寻找 Python 3.11-3.14,优先使用 3.11 |
| Python 安装 | 如果找不到 Python,会尝试通过 winget 安装 Python 3.11 |
| 环境隔离 | 在项目目录创建 .venv,不污染系统 Python |
| 依赖安装 | 使用 scripts/install_dependencies.py --all 安装完整依赖 |
| 平台启动 | 自动打开 http://127.0.0.1:8501/ 并启动 Streamlit |
可选参数:
setup_and_launch.cmd --mirror tsinghua --port 8501
setup_and_launch.cmd --mirror pypi --port 8502如果目标电脑没有 winget,需要先手动安装 Python 3.11 或更高版本,并勾选 Add python.exe to PATH,再运行该脚本。
python scripts\install_dependencies.py
python main.py指定国内镜像源:
python scripts\install_dependencies.py --mirror tsinghua只启动服务、不自动打开浏览器:
python scripts\launch_enhanced.py --port 8501 --no-open启动成功后 URL 会写入:
tmp\enhanced_platform_url.txt
| 项目 | 约定 |
|---|---|
| 文件格式 | .xlsx、.xls、.csv、.json、.jsonl、.ndjson |
| Excel 结构 | 首行为测点列名 |
| 时间列 | 推荐命名为 时间、timestamp、datetime、time |
| 采样形态 | 秒级时序数据,支持多 VIN、多文件、多日期拼接 |
| 预测输入 | 可导入本地数据,也可通过总线数据缓冲区实时预测 |
| 类型 | 模型 |
|---|---|
| 传统模型 | 线性回归、随机森林 |
| 提升树模型 | XGBoost、LightGBM |
| 深度学习 | DNN、LSTM、GRU |
| 增量学习 | 冻结基础模型 + 残差增量适配器 |
| 自定义扩展 | 插件模型,需实现 fit 与 predict |
平台不做算法能力降级。缺少依赖时,启动器会停止并提示安装命令。
| 目录 | 内容 | 是否提交 |
|---|---|---|
runs/ |
训练运行、模型文件、元数据、指标 | 不提交 |
reports/ |
HTML 报告和 AI 审计日志 | 不提交 |
exports/ |
预测结果、部署包 ZIP | 不提交 |
tmp/ |
启动日志、临时截图、服务 URL | 不提交 |
local_settings/ |
本机 AI 配置和密钥 | 不提交 |
docs/ |
开发规划、工具说明、README 图形资产 | 提交 |
批量预测:
python scripts\predict_cli.py --artifact runs\<run_dir> --input input.xlsx --output prediction.xlsx按训练特征配置重新生成特征:
python scripts\predict_cli.py --artifact runs\<run_dir> --input input.xlsx --output prediction.xlsx --apply-feature-config启动本地预测 API:
python scripts\run_prediction_api.py --artifact runs\<run_dir> --host 127.0.0.1 --port 8000接口:
GET /health
GET /schema
POST /predict
POST /predict/bus
python -m py_compile streamlit_app.py thermal_ai_trainer\models\compression.py thermal_ai_trainer\ai\tasks.py
python -m pytest tests -q- 不提交
local_settings/、.env、API Key、模型权重、预测结果、运行日志、缓存和临时文件。 - AI 请求只发送摘要、配置、指标、少量样本和运行日志片段,不发送完整数据集。
- 压缩模型必须经过压缩前后指标对比和热管理边界工况复核后才能部署。
- 增量学习不会覆盖旧模型参数文件,所有增量模型保存为新产物。
| 文档 | 说明 |
|---|---|
docs/AI平台功能升级计划.html |
当前工具全量功能概述与三阶段开发历程 |
docs/AI平台工具使用说明.html |
详细工具使用说明 |
docs/AI平台第五轮审查整改验收表.html |
第五轮技术审查整改与验证对应表 |
后续任何工具迭代升级,都应同步更新 README、开发规划文档和工具使用说明。
本轮基于 AI平台第三轮技术审查报告.md 完成 P1/P2/P3 审查项闭环,重点补强 XGBoost/LightGBM 早停参数透传、小样本切分边界、PCA/聚类状态分布漂移校验、热管理阈值配置化、增量学习 bootstrap 显著性、AI/API 脱敏与 trace-id、总线 fallback 调试信息、自动调参持久化、总线缓冲区落盘恢复,以及深度学习早停策略元数据。
配套验收文档:
docs/AI平台第三轮审查整改验收表.htmldocs/AI平台第三轮审查整改验收表.md
验证命令:
python -m compileall streamlit_app.py thermal_ai_trainer tests
python -m pytest tests -q --basetemp=pytest-cache-files-review-v3当前结果:40 passed。
本轮基于 AI平台第四轮技术审查报告.md 完成新增 P1/P2/P3 问题闭环,重点补强 API 安全错误响应、限流身份源可信边界、结构化日志字符串级脱敏、PCA/聚类标准差漂移校验、增量学习训练/验证过拟合诊断、热风险等级阈值配置、LSTM/GRU 测试覆盖、训练 warning 用户可见化,以及增量模型可选加密存储。
配套验收文档:
docs/AI平台第四轮审查整改验收表.htmldocs/AI平台第四轮审查整改验收表.md
验证命令:
python -m compileall streamlit_app.py thermal_ai_trainer tests
python -m pytest tests -q --basetemp=pytest-cache-files-review-v4当前结果:48 passed。
本轮基于 AI平台第五轮技术审查报告.md 完成最终发布前遗留项闭环。第四轮已修复的 API 安全、限流、日志脱敏、PCA 漂移、增量学习、热风险阈值、深度学习 warning 和加密产物继续由既有专项测试复验;第五轮新增重点落地三项:插件模型通用序列化从 pickle 迁移为签名 joblib、PySide6 GUI 异常写入结构化日志、预测 API trace_id 改为服务端内部生成并拒绝外部注入。
配套验收文档:
docs/AI平台第五轮审查整改验收表.htmldocs/AI平台第五轮审查整改验收表.md
新增安全约束:
- 自定义插件模型若依赖平台通用序列化,需设置
THERMAL_AI_PLUGIN_SIGNING_KEY;更推荐插件自行实现save/load。 - 旧版 pickle 插件模型默认拒绝加载,仅允许在可信离线迁移场景临时设置
THERMAL_AI_ALLOW_LEGACY_PLUGIN_PICKLE=1。 - API 响应中的
trace_id不再读取客户端X-Trace-Id,避免日志追踪链被外部输入污染。
验证命令:
python -m compileall streamlit_app.py thermal_ai_trainer tests
python -m pytest tests -q --basetemp=pytest-cache-files-review-v5当前结果:52 passed。