Files
growth_report/README.md

231 lines
6.9 KiB
Markdown
Raw 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.

# 幼儿园成长报告生成系统
[![Python Version](https://img.shields.io/badge/python-3.13+-blue.svg)](https://python.org)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
## 项目概述
基于Python的自动化幼儿园学期成长报告生成系统。该系统可以从Excel数据文件中读取幼儿信息结合AI生成个性化评语并将所有信息批量填充到PPT模板中最终生成每个学生的个性化成长报告。系统支持双界面操作命令行界面和图形界面具备字体安装、图片替换、批量PDF转换、生肖计算、模板导出等完整功能。
## ✨ 主要特性
- 🚀 **一键生成**: 从Excel数据到完整报告的自动化流程
- 🤖 **AI评语**: 智能生成个性化、治愈系风格的幼儿评语
- 🖼️ **图文并茂**: 支持个人照片、活动照片、班级合影的自动替换
- 📄 **格式转换**: 批量PPT转PDF便于分发和存档
- 🎨 **双界面**: 提供命令行界面和图形界面,满足不同用户需求
- 🐲 **生肖计算**: 根据生日自动计算生肖信息
- 📦 **模板导出**: 生成标准化数据模板,快速上手
## 🛠️ 技术栈
- **Python 3.13+**: 主要编程语言
- **python-pptx**: PPT文件处理
- **pandas**: Excel数据读取与处理
- **langchain**: AI模型集成
- **comtypes**: PowerPoint转PDF功能
- **rich**: 美化命令行界面
- **loguru**: 日志记录
- **tkinter**: 图形用户界面
- **tomli**: 配置文件解析
## 📋 系统要求
- Windows 10/11 (支持PowerPoint COM接口)
- Python 3.13 或更高版本
- Microsoft PowerPoint (用于PDF转换功能)
## 🚀 快速开始
### 1. 克隆项目
```bash
git clone https://gitee.com/hanhanshibaobei/growthreport.git
cd growthreport
```
### 2. 安装依赖
#### 使用uv推荐
```bash
uv sync
```
#### 使用pip
```bash
pip install -r requirements.txt
```
### 3. 配置系统
编辑 `config.env.toml` 文件,设置以下信息:
- AI API密钥和配置
- 班级信息和教师名单
- 文件路径配置
### 4. 运行程序
#### 图形界面(推荐)
```bash
python UI.py
```
或直接运行:
```bash
start_app.bat
```
#### 命令行界面
```bash
python main.py
```
## 📖 使用指南
### 功能模块
1. **📁 生成图片路径**: 为每个学生创建图片文件夹结构
2. **🤖 生成评语**: 使用AI生成个性化评语
3. **📊 生成报告**: 批量生成PPT成长报告
4. **📑 格式转换**: 将PPT转换为PDF
5. **🐂 生肖转化**: 根据生日计算生肖
6. **📦 导出数据模板**: 生成标准化模板
7. **📤 初始化系统**: 配置系统环境
### Excel数据格式
Excel文件应包含以下列顺序必须与配置文件中一致
| 列名 | 说明 | 示例 |
|------|------|------|
| 姓名 | 学生姓名 | 张小明 |
| 英文名 | 英文昵称 | Tom |
| 性别 | 性别 | 男 |
| 生日 | 出生日期 | 2019-03-15 |
| 属相 | 生肖(自动计算) | 猪 |
| 我的好朋友 | 好朋友姓名 | 李小红 |
| 我的爱好 | 个人爱好 | 画画、唱歌 |
| 喜欢的游戏 | 喜欢的游戏 | 积木、捉迷藏 |
| 喜欢吃的食物 | 喜欢的食物 | 苹果、饼干 |
| 评价 | AI生成的评语 | 自动填充 |
| 表现特征 | 表现关键词(可选) | 活泼、聪明 |
### 图片文件结构
```
data/images/
├── K4D.jpg # 班级集体照片
└── 张小明/
├── me_image.jpg # 学生个人照片
├── 1.jpg # 活动照片1
└── 2.jpg # 活动照片2
```
支持多种图片格式:.jpg, .jpeg, .png
## 📁 项目结构
```
growth_report/
├── main.py # 主程序入口(命令行界面)
├── UI.py # 图形用户界面入口
├── config.env.toml # 项目配置文件
├── pyproject.toml # 项目依赖配置
├── start_app.bat # 启动脚本
├── 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/ # 旧版本文件备份
```
## 🤖 AI评语生成
系统使用langchain框架与AI模型集成根据以下信息生成评语
- 幼儿姓名
- 所在班级(年龄段)
- 性别
- 表现特征
评语风格为"治愈系",采用三段式结构:
1. **开头**: 亲切问候 + 总体印象
2. **正文**: 具体描述孩子的进步和优点
3. **结尾**: 委婉期望 + 新学期祝福
支持分龄侧重评价:
- **小班 (3-4岁)**: 适应集体生活、情绪稳定性、基本生活自理能力
- **中班 (4-5岁)**: 社交互动、分享与合作、动手能力、好奇心
- **大班 (5-6岁)**: 学习习惯、逻辑思维、领导力、幼小衔接准备
## 🔧 高级配置
### AI配置
`config.env.toml` 中配置AI模型
```toml
[ai]
api_key = "your-api-key"
api_url = "https://api.openai.com/v1"
model = "gpt-3.5-turbo"
prompt = """
你的评语风格是"治愈系"的,能让家长读完后感到欣慰...
"""
```
### 自定义PPT模板
1.`templates/` 目录放置PPT模板
2. 使用占位符格式:`{{变量名}}`
3. 支持的占位符:
- `{{name}}`: 学生姓名
- `{{class_name}}`: 班级名称
- `{{comments}}`: 评语内容
- 等等...
## 🐛 常见问题
### Q: PDF转换失败怎么办
A: 请确保已安装Microsoft PowerPoint并且没有其他程序占用PPT文件。
### Q: AI评语生成失败
A: 检查API密钥配置是否正确网络连接是否正常。
### Q: 字体显示异常?
A: 系统会自动安装所需字体,如仍有问题请手动安装 `fonts/` 目录下的字体文件。
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 🤝 贡献
欢迎提交 Issue 和 Pull Request
## 📞 联系方式
如有问题或建议,请通过以下方式联系:
- 项目地址: https://gitee.com/hanhanshibaobei/growthreport.git
- 邮箱: your-email@example.com
---
⭐ 如果这个项目对你有帮助,请给个星标支持一下!