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

2.2 KiB
Raw Permalink Blame History

项目进度记录

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集成(待做)


使用方式

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校(样本量小),后续接入全市数据后可改善
  • 赋分规则为手工编码,部分题目的映射可能需要校验