fix:实现基础功能
This commit is contained in:
149
IFLOW.md
Normal file
149
IFLOW.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# 幼儿园成长报告生成系统
|
||||
|
||||
## 项目概述
|
||||
|
||||
这是一个基于Python的自动化幼儿园成长报告生成系统。该系统可以从Excel数据文件中读取幼儿信息,结合AI生成个性化评语,并将所有信息批量填充到PPT模板中,最终生成每个学生的个性化成长报告。系统还支持字体安装、图片替换、批量PDF转换等功能。
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **Python 3.x**: 主要编程语言
|
||||
- **python-pptx**: PPT文件处理
|
||||
- **pandas**: Excel数据读取与处理
|
||||
- **langchain**: AI模型集成
|
||||
- **comtypes**: PowerPoint转PDF功能
|
||||
- **rich**: 美化命令行界面
|
||||
- **loguru**: 日志记录
|
||||
- **toml**: 配置文件解析
|
||||
|
||||
## 核心功能
|
||||
|
||||
### 1. 生成模板 (📁 生成模板)
|
||||
|
||||
- 从Excel文件中读取学生姓名
|
||||
- 为每个学生创建图片文件夹结构
|
||||
|
||||
### 2. 生成评语 (🤖 生成评语)
|
||||
|
||||
- 使用AI模型根据学生姓名、年龄组和表现特征生成个性化评语
|
||||
- 评语会自动写入Excel文件的对应列
|
||||
- 支持跳过已有评语的记录以节省API调用
|
||||
|
||||
### 3. 生成报告 (📊 生成报告)
|
||||
|
||||
- 读取Excel数据和图片资源
|
||||
- 将信息批量填充到PPT模板中
|
||||
- 保持原有的文字格式和样式
|
||||
- 替换文本占位符和图片占位符
|
||||
|
||||
### 4. 格式转换 (📑 格式转换)
|
||||
|
||||
- 批量将生成的PPT文件转换为PDF格式
|
||||
- 使用COM接口与PowerPoint进行交互
|
||||
|
||||
## 主要文件结构
|
||||
|
||||
```
|
||||
growth_report/
|
||||
├── main.py # 主程序入口,包含所有核心功能
|
||||
├── config.toml # 项目配置文件
|
||||
├── config/
|
||||
│ └── config.py # 配置加载工具
|
||||
├── utils/
|
||||
│ ├── agent_utils.py # AI评语生成工具
|
||||
│ ├── font_utils.py # 字体安装和检测工具
|
||||
│ ├── pptx_utils.py # PPT文本和图片替换工具
|
||||
│ ├── pef_utils.py # PPT转PDF工具
|
||||
└── data/
|
||||
├── names.xlsx # 学生数据Excel文件
|
||||
└── images/ # 学生图片资源文件夹
|
||||
```
|
||||
|
||||
## 配置说明
|
||||
|
||||
### config.toml
|
||||
|
||||
- `paths`: 定义文件路径(模板、输出、Excel、图片、字体)
|
||||
- `class_info`: 班级信息(名称、教师名单)
|
||||
- `defaults`: 默认设置(默认评语、年龄组)
|
||||
- `excel`: Excel表配置(工作表名、列名顺序)
|
||||
- `ai`: AI配置(API密钥、URL、模型、提示词)
|
||||
|
||||
### Excel数据格式
|
||||
|
||||
Excel文件应包含以下列(顺序必须与配置文件中一致):
|
||||
|
||||
- 姓名
|
||||
- 英文名
|
||||
- 性别
|
||||
- 生日
|
||||
- 属相
|
||||
- 我的好朋友
|
||||
- 我的爱好
|
||||
- 喜欢的游戏
|
||||
- 喜欢吃的食物
|
||||
- 评价
|
||||
|
||||
### 图片文件结构
|
||||
|
||||
```
|
||||
data/images/
|
||||
├── 班级名称.jpg # 班级集体照片
|
||||
└── 学生姓名/
|
||||
├── me_image.jpg # 学生个人照片
|
||||
├── 1.jpg # 活动照片1
|
||||
├── 2.jpg # 活动照片2
|
||||
```
|
||||
|
||||
## AI评语生成
|
||||
|
||||
系统使用langchain框架与AI模型集成,根据以下信息生成评语:
|
||||
|
||||
- 幼儿姓名
|
||||
- 所在班级(年龄段)
|
||||
- 表现特征
|
||||
|
||||
评语风格为"治愈系",采用三段式结构:亲切问候、具体描述优点、委婉期望与祝福。
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 运行程序
|
||||
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
|
||||
### 依赖安装
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
或使用uv:
|
||||
|
||||
```bash
|
||||
uv sync
|
||||
```
|
||||
|
||||
### 初始化设置
|
||||
|
||||
1. 编辑`config.toml`配置文件
|
||||
2. 准备Excel数据文件
|
||||
3. 准备图片资源文件夹
|
||||
4. 准备PPT模板文件
|
||||
|
||||
## 系统特点
|
||||
|
||||
- **自动化流程**: 从数据到成品报告的全流程自动化
|
||||
- **AI集成**: 智能生成个性化评语
|
||||
- **格式保持**: 替换文本时保持原有格式
|
||||
- **用户友好**: 丰富的命令行界面和进度提示
|
||||
- **批量处理**: 支持批量生成和转换
|
||||
- **错误处理**: 完善的异常处理和日志记录
|
||||
|
||||
## 开发约定
|
||||
|
||||
- 使用`loguru`进行日志记录
|
||||
- 使用`rich`美化命令行输出
|
||||
- 配置文件使用TOML格式
|
||||
- 图片和文本替换使用占位符机制
|
||||
- 遵循Python代码规范
|
||||
Reference in New Issue
Block a user