Files
growth_report/IFLOW.md
2025-12-11 17:52:39 +08:00

6.0 KiB
Raw Blame History

幼儿园成长报告生成系统

项目概述

这是一个基于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. 初始化系统 (📤 初始化系统)

  • 自动创建必要的目录结构
  • 安装所需字体文件
  • 配置系统环境

主要文件结构

growth_report/
├── main.py                 # 主程序入口(命令行界面)
├── UI.py                   # 图形用户界面入口
├── config.env.toml         # 项目配置文件
├── pyproject.toml          # 项目依赖配置
├── 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

初始化设置

  1. 编辑config.env.toml配置文件设置API密钥和其他参数
  2. 准备Excel数据文件按指定格式
  3. 准备图片资源文件夹(按指定结构)
  4. 准备PPT模板文件

系统特点

  • 双界面支持: 提供命令行界面和图形界面两种操作方式
  • 自动化流程: 从数据到成品报告的全流程自动化
  • AI集成: 智能生成个性化评语
  • 格式保持: 替换文本时保持原有格式
  • 用户友好: 丰富的命令行界面和图形界面,实时日志显示
  • 批量处理: 支持批量生成和转换
  • 错误处理: 完善的异常处理和日志记录
  • 生肖计算: 自动根据生日计算生肖
  • 模板导出: 支持导出标准数据模板

开发约定

  • 使用loguru进行日志记录
  • 使用rich美化命令行输出
  • 使用tkinter构建图形界面
  • 配置文件使用TOML格式
  • 图片和文本替换使用占位符机制
  • 遵循Python代码规范
  • 使用uv进行依赖管理