Files
lofyerandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 71db82393a Initial commit
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-07-13 15:38:41 +08:00

67 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目进度记录
## 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校(样本量小),后续接入全市数据后可改善
- 赋分规则为手工编码,部分题目的映射可能需要校验