# 项目进度记录 ## Phase 1: 后端Pipeline + HTML报告 ### ✅ 1.1 数据引擎 (`backend/app/engines/data_engine.py`) - 读取3个Excel表(基础信息/课程实施/学科课程),共30,789行 - 9所学校,15个学科,6个学期 - 学校名称标准化,统一列名 ### ✅ 1.2 赋分引擎 (`backend/app/engines/scoring_engine.py`) - 20个维度的赋分函数(对应7大二级维度、20个三级维度) - 量表题(4/3/2/1)、多选题(逐项加总)、填空题(数值)、上传题(有/无) - 全区9校赋分 ~1秒 ### ✅ 1.3 统计引擎 (`backend/app/engines/stats_engine.py`) - PCA合成 → 标准化(均值50/标准差10) - 水平判定(1-4),阈值来自赋分整理表 - KMeans聚类(较好/待提升) - 单样本T检验、维度间相关性 ### ✅ 1.4 LLM引擎 (`backend/app/engines/llm_engine.py`) - API: `https://cdr.digiman.live/v1`, model: `claude-opus-4-6` - 29个段落,10路并发,~60秒完成 - 分段上下文:每段独立prompt,只喂该段需要的JSON数据 - MD5缓存:同数据二次生成秒出 - 兼容Anthropic原生格式(content在顶层而非choices中) ### ✅ 1.5 报告渲染 (`backend/app/engines/report_renderer.py`) - Jinja2模板 (`backend/templates/report.html`) - ECharts: 雷达图(七维度) + 柱状图(子维度对比) - 得分卡片、水平指示器、数据表格 - 打印友好CSS ### 🔲 1.6 FastAPI集成(待做) --- ## 使用方式 ```bash cd report-admin # 生成完整报告(含LLM分析) python3 scripts/03_generate_report.py --school "延安中学" # 快速预览(跳过LLM) python3 scripts/03_generate_report.py --school "延安中学" --no-llm # 列出学校 python3 scripts/03_generate_report.py --list-schools ``` ## 输出 ``` output/ ├── 延安中学_报告.html # 96KB HTML报告 ├── 延安中学_report_data.json # 结构化数据 ├── all_schools_scores.json # 9校得分汇总 └── llm_cache/ # 29个LLM缓存 ``` ## 已知约束 - 仅有长宁区9校数据,无全市273校对照基准 - PCA标准化基于区内9校(样本量小),后续接入全市数据后可改善 - 赋分规则为手工编码,部分题目的映射可能需要校验