6.4 KiB
6.4 KiB
幼儿园成长报告生成系统
项目概述
这是一个基于Python的自动化幼儿园成长报告生成系统。该系统可以从Excel数据文件中读取幼儿信息,结合AI生成个性化评语,并将所有信息批量填充到PPT模板中,最终生成每个学生的个性化成长报告。系统支持双界面运行(命令行界面和图形界面),具备字体安装、图片替换、批量PDF转换、生肖计算等功能。
技术栈
- Python 3.13+: 主要编程语言
- python-pptx: PPT文件处理
- pandas: Excel数据读取与处理
- langchain: AI模型集成
- comtypes: PowerPoint转PDF功能
- rich: 美化命令行界面
- loguru: 日志记录
- tomli: 配置文件解析
- tkinter: 图形用户界面
核心功能
1. 生成模板 (📁 生成图片路径)
- 从Excel文件中读取学生姓名
- 为每个学生创建图片文件夹结构
- 支持批量创建学生专属图片目录
2. 生成评语 (🤖 生成评语)
- 使用AI模型根据学生姓名、年龄组、性别和表现特征生成个性化评语
- 评语会自动写入Excel文件的对应列
- 支持跳过已有评语的记录以节省API调用
- 采用"治愈系"三段式评语结构
3. 生成报告 (📊 生成报告)
- 读取Excel数据和图片资源
- 将信息批量填充到PPT模板中
- 保持原有的文字格式和样式
- 替换文本占位符和图片占位符
- 支持5页PPT模板的完整替换
4. 格式转换 (📑 格式转换)
- 批量将生成的PPT文件转换为PDF格式
- 使用COM接口与PowerPoint进行交互
- 支持跳过已存在的PDF文件
5. 生肖转化 (🐂 生肖转化)
- 根据学生生日自动计算生肖
- 批量更新Excel中的生肖信息
- 支持日期格式自动识别
6. 导出数据模板 (📦 导出数据模板)
- 生成标准化的数据模板ZIP包
- 包含示例Excel文件和图片文件夹结构
- 方便新用户快速上手
7. 初始化系统 (📤 初始化系统)
- 自动创建必要的目录结构
- 安装所需字体文件
- 配置系统环境
8. 字体安装 (🔤 字体安装)
- 自动检测系统是否安装了指定字体
- 自动安装项目所需的字体文件
- 支持方正兰亭黑简体和方正少儿简体字体
主要文件结构
growth_report/
├── main.py # 主程序入口(命令行界面)
├── UI.py # 图形用户界面入口
├── config.env.toml # 项目配置文件
├── pyproject.toml # 项目依赖配置
├── start_app.bat # Windows启动批处理文件
├── README.md # 项目说明文档
├── IFLOW.md # 项目详细说明文档
├── config/
│ ├── config.py # 配置加载工具
│ └── output/ # 配置输出目录
├── utils/
│ ├── agent_utils.py # AI评语生成工具
│ ├── file_utils.py # 文件操作工具
│ ├── font_utils.py # 字体安装和检测工具
│ ├── generate_utils.py # 核心生成功能
│ ├── growt_utils.py # PPT模板替换工具
│ ├── image_utils.py # 图片处理工具
│ ├── pdf_utils.py # PDF转换工具
│ ├── pptx_utils.py # PPT文本和图片替换工具
│ └── zodiac_utils.py # 生肖计算工具
├── data/
│ ├── names.xlsx # 学生数据Excel文件
│ └── images/ # 学生图片资源文件夹
├── fonts/ # 字体文件目录
├── templates/ # PPT模板文件
├── output/ # 生成的报告输出目录
└── old/ # 旧版本文件备份
配置说明
config.env.toml
paths: 定义文件路径(模板、输出、Excel、图片、字体)class_info: 班级信息(名称、教师名单)defaults: 默认设置(默认评语、年龄组)excel: Excel表配置(工作表名、列名顺序)ai: AI配置(API密钥、URL、模型、提示词)
Excel数据格式
Excel文件应包含以下列(顺序必须与配置文件中一致):
- 姓名
- 英文名
- 性别
- 生日
- 属相
- 我的好朋友
- 我的爱好
- 喜欢的游戏
- 喜欢吃的食物
- 评价
- 表现特征(可选,用于AI评语生成)
图片文件结构
data/images/
├── 班级名称.jpg # 班级集体照片
└── 学生姓名/
├── me.jpg # 学生个人照片
├── 1.jpg # 活动照片1
├── 2.jpg # 活动照片2
支持多种图片格式:.jpg, .jpeg, .png
AI评语生成
系统使用langchain框架与AI模型集成,根据以下信息生成评语:
- 幼儿姓名
- 所在班级(年龄段)
- 性别
- 表现特征
评语风格为"治愈系",采用三段式结构:亲切问候、具体描述优点、委婉期望与祝福。支持分龄侧重评价,针对不同年龄段有不同的评价重点。
使用方法
运行程序
命令行界面
python main.py
图形界面
python UI.py
或直接运行批处理文件:
start_app.bat
依赖安装
使用uv(推荐)
uv sync
使用pip
pip install -r requirements.txt
初始化设置
- 编辑
config.env.toml配置文件,设置API密钥和其他参数 - 准备Excel数据文件(按指定格式)
- 准备图片资源文件夹(按指定结构)
- 准备PPT模板文件
系统特点
- 双界面支持: 提供命令行界面和图形界面两种操作方式
- 自动化流程: 从数据到成品报告的全流程自动化
- AI集成: 智能生成个性化评语
- 格式保持: 替换文本时保持原有格式
- 用户友好: 丰富的命令行界面和图形界面,实时日志显示
- 批量处理: 支持批量生成和转换
- 错误处理: 完善的异常处理和日志记录
- 生肖计算: 自动根据生日计算生肖
- 模板导出: 支持导出标准数据模板
- 字体管理: 自动安装和检测所需字体
- 跨平台兼容: 支持Windows环境运行
开发约定
- 使用
loguru进行日志记录 - 使用
rich美化命令行输出 - 使用
tkinter构建图形界面 - 配置文件使用TOML格式
- 图片和文本替换使用占位符机制
- 遵循Python代码规范
- 使用uv进行依赖管理