Initial commit

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
lofyer
2026-07-13 15:38:41 +08:00
co-authored by factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
commit 71db82393a
180 changed files with 170640 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# 项目进度记录
## 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校(样本量小),后续接入全市数据后可改善
- 赋分规则为手工编码,部分题目的映射可能需要校验