Skip to content

ZaneLing/GaoKao

Repository files navigation

AI安徽高考志愿填报系统

安徽高考数据智能分析平台,基于多Agent架构实现智能志愿推荐。 banner

功能特性

  • 了解学校 - 分析指定学校的综合信息(历年分数线、招生计划、专业详情等)
  • 志愿推荐 - 根据考生排名和专业意向,制定冲稳保志愿方案,生成最终填报表格
  • 多Agent协作 - 分数线分析、院校信息、专业组分析、策略推荐四大Agent协同工作
  • 数据可视化 - 表格形式展示志愿方案,支持15-45个志愿推荐

系统架构

┌─────────────────────────────────────────────────────────────┐
│                      main.py (主入口)                       │
│         功能选择 → 用户信息录入 → Agent调度                  │
└─────────────────────────────────────────────────────────────┘
                              │
          ┌───────────────────┼───────────────────┐
          ▼                   ▼                   ▼
┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
│  GaokaoAgent    │  │ MultiAgentSystem │  │ SchoolAnalysis  │
│  (单Agent模式)   │  │ (多Agent模式)     │  │ (学校分析)       │
└─────────────────┘  └─────────────────┘  └─────────────────┘
                              │
          ┌───────────────────┼───────────────────┐
          ▼                   ▼                   ▼
┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
│ ScoreAgent      │  │ SchoolAgent      │  │ MajorGroupAgent │
│ (分数线分析)     │  │ (院校信息)       │  │ (专业组分析)     │
└─────────────────┘  └─────────────────┘  └─────────────────┘
          │                   │                   │
          └───────────────────┼───────────────────┘
                              ▼
                    ┌─────────────────┐
                    │  Skills模块     │
                    │  (数据处理)      │
                    └─────────────────┘
                              │
          ┌───────────────────┼───────────────────┐
          ▼                   ▼                   ▼
┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
│ score_line_skill│  │ school_info_skill│ │ major_group_skill│
│ (分数线技能)     │  │ (院校信息技能)    │  │ (专业组技能)     │
└─────────────────┘  └─────────────────┘  └─────────────────┘
          │                   │                   │
          ▼                   ▼                   ▼
    ┌───────────┐      ┌───────────┐      ┌───────────┐
    │ Excel数据 │      │ Excel数据 │      │ Excel数据 │
    └───────────┘      └───────────┘      └───────────┘

脚本说明

核心脚本

脚本 说明
main.py 主入口程序,启动系统主菜单,支持功能选择(了解学校/志愿推荐)
agent.py Agent框架核心,实现GaokaoAgent(单Agent)和MultiAgentSystem(多Agent)
skills.py 技能调度模块,统一管理和调用各技能

Skills技能模块

位于 skills/ 目录:

模块 说明
score_line_skill.py 分数线分析技能:历年分数线、一分一段、批次线等
school_info_skill.py 院校信息技能:基础信息、院校对比、录取分析
enrollment_plan_skill.py 招生计划技能:招生章程、计划数、专业组计划
major_info_skill.py 专业信息技能:专业详情、专业对比、专业就业分析
major_group_skill.py 专业组分析技能:专业组划分、选科要求、志愿推荐
school_analysis_skill.py 学校综合分析技能:整合多源数据生成完整报告
reference_data_skill.py 参考数据技能:学科评估、大学排名、保研率等

数据检查脚本

脚本 说明
check_data_structure.py 检查Excel数据文件结构(保留备用)

数据文件结构

安徽/
├── 1_最近年份数据/                    # 📌 最新年度数据(2024-2025)
│   ├── 分数线/
│   │   ├── 院校分数-2020-2024.xlsx      # 全国高校在皖招生历年分数
│   │   ├── 专业分数-2024-考试院.xlsx     # 2024年各专业录取分数(考试院官方)
│   │   ├── 专业分数-2025.xlsx            # 2025年专业分数预估
│   │   ├── 批次线-2021-2024.xlsx        # 文科/理科一本、二本批次控制线
│   │   └── 一分一段-2017-2024.xlsx       # 全省一分一段表(用于位次转换)
│   ├── 招生计划/
│   │   ├── 招生计划-2025.xlsx           # 2025年各高校在皖招生计划
│   │   ├── 招生计划-2024-完整版.xlsx    # 2024年完整招生计划
│   │   └── 选科要求-2024.xlsx           # 各专业选科限制(物理/历史等)
│   └── 选科信息/
├── 2_历史数据/                        # 📊 历年数据(趋势分析)
│   ├── 2020年及以前/
│   │   ├── 安徽高考数据-2017~2020.xlsx  # 历年高考数据
│   │   ├── 院校分数-2016-2020.xlsx      # 2016-2020院校分数
│   │   └── 专业分数-2018~2020-提前批.xlsx # 提前批专业分数
│   ├── 2021年数据/
│   │   ├── 专业分数-2021.xlsx           # 2021专业分数
│   │   └── 招生章程-2021.xlsx           # 招生章程
│   └── 2022年数据/
│       ├── 专业分数-2022.xlsx           # 2022专业分数
│       └── 招生章程-2022.xlsx           # 招生章程
├── 3_院校信息/                        # 🏫 院校基础信息
│   ├── 院校基础信息.xlsx               # 院校电话、地址、985/211/双一流标识
│   └── 2023安徽专业分数线数据库.xlsx  # 2023专业分数线汇总
├── 4_专业信息/                        # 📚 专业详情数据
│   ├── 专业基本介绍.xlsx               # 专业培养目标、课程设置
│   ├── 专业就业信息.xlsx               # 就业率、薪酬数据
│   ├── 专业排名信息.xlsx               # 各专业大学排名
│   ├── 专业就业行业分布分析.xlsx       # 毕业后行业分布
│   ├── 专业就业职业方向分析.xlsx       # 毕业后职业方向
│   ├── 专业就业地区分布分析.xlsx       # 毕业后就业地区
│   ├── 重点专业.xlsx                   # 国家级/省级重点专业
│   └── 特色专业-2021.xlsx             # 院校特色专业
└── 5_参考数据/                        # 🔍 深度参考
    ├── 第四轮学科评估-完整版.xlsx     # 学科评估结果(A+/A/A-等)
    ├── 大学排名(软科/QS/校友会/泰晤士等).xlsx # 多种排名
    ├── 保研资格院校保研率统计-2021.xls # 保研率数据
    └── 本科专业目录-2023.xlsx         # 教育部本科专业目录

数据内容详解

1️⃣ 分数线文件用途

文件 用途
院校分数-2020-2024.xlsx 查询某院校历年录取分数线,对比趋势
专业分数-2024-考试院.xlsx 查询某专业在各院校的录取分数
一分一段-2017-2024.xlsx 根据分数查全省位次,或根据位次查等价分数
批次线-2021-2024.xlsx 了解当年一本、二本控制线

2️⃣ 招生计划文件用途

文件 用途
招生计划-2025.xlsx 查看各院校招生专业和计划人数
选科要求-2024.xlsx 确认目标专业的选科限制

3️⃣ 专业信息文件用途

文件 用途
专业就业信息.xlsx 了解专业就业率和平均薪酬
专业排名信息.xlsx 查看某专业有哪些好学校
重点专业/特色专业.xlsx 识别院校优势专业

志愿推荐逻辑与流程

志愿推荐核心思路

本系统采用 "排名法" 而非"分数法"作为核心推荐依据:

排名法优势:
  - 每年高考难度不同,但排名相对稳定
  - 用位次对标往年数据更准确
  - 避免因题目难度导致的分数波动

推荐流程(多Agent协作)

┌─────────────────────────────────────────────────────────────────┐
│                    志愿推荐完整流程                              │
└─────────────────────────────────────────────────────────────────┘

第1步:用户输入
──────────────────────────────────────────────────────────────────
  输入:全省排名 + 意向专业 + 意向城市(可选)+ 院校偏好(可选)
  
第2步:分数线分析(ScoreAgent)
──────────────────────────────────────────────────────────────────
  • 根据排名换算等效分数
  • 对标2024年各院校专业录取位次
  • 筛选出"有希望"的院校范围
  
第3步:院校信息分析(SchoolAgent)
──────────────────────────────────────────────────────────────────
  • 查询院校基础信息(985/211/城市)
  • 过滤意向城市、院校偏好
  • 评估院校综合实力
  
第4步:专业组分析(MajorGroupAgent)
──────────────────────────────────────────────────────────────────
  • 按专业相关性分组
  • 确保所有推荐专业与意向专业相关
  • 计算专业组内录取概率
  
第5步:策略推荐(StrategyAgent)
──────────────────────────────────────────────────────────────────
  • 制定冲稳保策略
  • 冲:排名略高于往年录取位次(概率40%-60%)
  • 稳:排名与往年录取位次相当(概率60%-80%)
  • 保:排名远高于往年录取位次(概率80%+)
  
第6步:生成最终方案
──────────────────────────────────────────────────────────────────
  • 按比例选取:冲5 + 稳15 + 保25 ≈ 45个志愿
  • 生成志愿填报表格
  • 输出详细分析报告

冲稳保策略说明

策略 数量建议 录取概率 说明
冲一冲 5个 40%-60% 尝试冲击比自身排名更高的院校
稳一稳 15个 60%-80% 录取概率较大的目标院校
保一保 25个 80%+ 确保有学可上的稳妥院校

关键约束条件

  1. 专业相关性 - 所有推荐专业必须与用户意向专业相关

    • 例如:用户选择"数学",则推荐专业组都包含数学相关
  2. 城市偏好 - 可选筛选条件

    • 如选择"合肥",则优先推荐合肥院校
  3. 院校层次 - 可选筛选条件

    • 如选择"211",则过滤非211院校
  4. 志愿数量 - 最多45个,至少15个推荐

使用方法

启动系统

cd /Users/lingziyang/Desktop/Gaokao
python main.py

主菜单功能选择

╔════════════════════════════════════════════════════════════╗
║            🎓 AI辅助高考志愿填报系统 v1.0                  ║
║            安徽高考数据智能分析平台                        ║
╚════════════════════════════════════════════════════════════╝

欢迎使用AI辅助高考志愿填报系统!
本系统提供两大核心功能:

  ┌─────────────────────────────────────────────────────────┐
  │  1️⃣  了解学校 - 分析指定学校的综合信息(历年分数线、  │
  │                      招生计划、专业详情等)           │
  │                                                         │
  │  2️⃣  志愿推荐 - 根据您的分数/排名,制定冲稳保志愿方案  │
  │                      并生成最终填报表格                 │
  └─────────────────────────────────────────────────────────┘

请选择功能(输入 1 或 2,输入 exit 退出):

功能1:了解学校

直接输入学校名称即可分析该校综合信息:

请输入要查询的学校名称:安徽大学

🏫 正在分析: 安徽大学
⏳ 正在从多个数据源提取学校信息...

================================================================================
🏫 安徽大学 - 综合信息分析报告
================================================================================
📅 分析时间: 2026-06-24 00:29:03

📋 【基础信息】
--------------------------------------------------------------------------------
  院校类型: 综合
  所在地区: 安徽 合肥市
  院校层次: 211 双一流
  保研率: 14.2%
  ...

📈 【历年分数线】(2020-2024)
--------------------------------------------------------------------------------
年份       科类         批次         分数线        最低位次           

📊 【招生计划】(2025年)
--------------------------------------------------------------------------------
专业组    包含专业                          计划数   科目要求       

📚 【专业详情】(2024年)
--------------------------------------------------------------------------------
专业名称              最高分    最低分    平均分    位次             

💡 【录取分析与建议】
--------------------------------------------------------------------------------

功能2:志愿推荐

  1. 录入用户信息(排名、专业、科目等)
  2. 选择Agent模式(单Agent/多Agent)
  3. 输入问题获取分析结果
请输入你的问题:帮我制定一个冲稳保的志愿方案

输出结果

运行后会在 output/ 目录下创建以时间命名的文件夹:

output/
└── 20260624_003045/
    ├── result.txt                    # 完整输出日志
    ├── multi_agent_result_*.txt      # 多Agent结果
    ├── agent_outputs/                # 各Agent单独输出
    │   ├── 01_score_agent_*.txt
    │   ├── 02_school_agent_*.txt
    │   ├── 03_major_group_agent_*.txt
    │   └── 04_strategy_agent_*.txt
    └── raw_data/                     # 原始数据
        ├── multi_agent_raw_data_*.json
        └── raw_data_*.json

志愿方案表格格式

================================================================================================
🎯 志愿方案最终填报表格
================================================================================================

┌──────┬────────────────────────────────┬────────────┬──────────┬──────────────┬────────────┬────────────┬────────────┐
│ 志愿 │ 学校名称                      │ 专业组代码 │ 科目要求 │ 包含专业     │ 录取概率   │ 平均位次   │ 计划人数   │
├──────┼────────────────────────────────┼────────────┼──────────┼──────────────┼────────────┼────────────┼────────────┤
│    1 │ 合肥工业大学                 │ 001        │ 物理     │ 计算机;软件 │ 40%-50%    │ 12000      │ 50        │
│    2 │ 安徽大学                     │ 002        │ 物理     │ 数学;物理   │ 60%-70%    │ 15000      │ 80        │
...

📊 填报统计:
  总计: 20 个志愿
  冲一冲: 5 个(录取概率较低,尝试冲击更高层次院校)
  稳一稳: 10 个(录取概率较高,匹配自身分数段)
  保一保: 5 个(录取概率很高,确保有学可上)

备选库: 共 45 个专业组可选择

配置说明

环境要求

  • Python 3.8+
  • openpyxl(Excel处理)
  • 配置好API密钥(见 .env 文件)

数据更新

如需更新数据,将新的Excel文件放入对应的数据目录:

  • 分数线数据 → 安徽/1_最近年份数据/分数线/
  • 招生计划 → 安徽/1_最近年份数据/招生计划/
  • 院校信息 → 安徽/3_院校信息/
  • 专业信息 → 安徽/4_专业信息/

技术特点

  1. 模块化设计 - 各功能独立为Skill,可单独调用和测试
  2. 多Agent协作 - 不同Agent负责不同分析任务,结果汇总输出
  3. 智能志愿推荐 - 基于冲稳保策略,结合专业相关性约束
  4. 数据自动整合 - 从多个Excel文件提取数据,生成统一报告
  5. 输出保存 - 完整日志和分门别类的数据文件便于事后回顾

注意事项

  • 排名是主要对标往年数据的指标,应优先填写
  • 意向专业是必填项,所有推荐将围绕该专业展开
  • 志愿数目建议15-20个,最多45个
  • 数据来源于安徽省教育考试院,仅供参考

About

安徽高考志愿填报系统

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages