一个基于AI的PPT评分系统,支持PPT、PPTX、PDF格式文件的自动评分和分析。
- 📁 多格式支持: 支持PPT、PPTX、PDF文件上传
- 🤖 智能评分: 基于LLM或规则的评分算法
- 📊 详细分析: 提供创新性、可行性、社会效益、演示质量等维度评分
- 🔄 批量处理: 支持批量上传和处理
- 📈 对比分析: 支持多个PPT文件的对比分析
- 🎨 现代界面: 美观的AI科技风格界面
- 🐳 容器化部署: 支持Docker部署
| 评分维度 | 满分 | 评分说明 |
|---|---|---|
| 产品创新性 | 10 分 | 技术/场景的新颖程度、差异化价值 |
| 产品可行性 | 10 分 | 技术实现与资源可达性、风险控制 |
| 社会效益 | 10 分 | 对社会、行业或用户的正面影响 |
| 演示文稿质量 | 10 分 | 逻辑结构、视觉设计、信息表达 |
| 现场答辩表现 | 10 分 | 演讲技巧、时间控制、问答互动 |
| 总分 | 50 分 | 五项得分之和 |
- 克隆项目
git clone <repository-url>
cd PPT_Score- 安装依赖
pip install -r requirements.txt- 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入你的API密钥- 运行应用
python main.py- 访问应用
打开浏览器访问
http://localhost:8000
- 使用Docker Compose(推荐)
# 设置环境变量
export OPENROUTER_API_KEY=your_api_key_here
# 启动服务
docker-compose up -d- 使用Docker
# 构建镜像
docker build -t ppt-scorer .
# 运行容器
docker run -d \
-p 8000:8000 \
-v ./uploads:/app/uploads \
-v ./ppt_scores.db:/app/ppt_scores.db \
-e OPENROUTER_API_KEY=your_api_key_here \
ppt-scorer如果您使用 M1 Mac 并需要部署到 Linux 服务器,请使用以下方法:
# 方法1: 使用构建脚本 (推荐)
./build.sh
# 方法2: 手动构建
docker buildx build --platform linux/amd64 --tag ppt-scorer:latest --load .更多跨平台构建信息请参考:CROSS_PLATFORM_BUILD.md
SCORING_METHOD: 评分方法 (rule_based或llm_based)OPENROUTER_API_KEY: OpenRouter API密钥OPENROUTER_MODEL: 使用的模型 (默认:anthropic/claude-3-haiku-20240307)DATABASE_URL: 数据库连接URLMAX_FILE_SIZE_MB: 最大文件大小限制(MB)DEBUG: 调试模式
anthropic/claude-3-haiku-20240307anthropic/claude-3-sonnet-20240229openai/gpt-4o- 其他OpenRouter支持的模型
POST /upload- 上传PPT文件
GET /presentations- 获取所有PPT列表GET /presentation/{id}- 获取PPT详情GET /compare?ids=1,2,3- 对比多个PPT
POST /presentation/{id}/rescore- 重新评分DELETE /presentation/{id}- 删除PPTGET /download/{id}- 下载原文件
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 前端界面 │ │ FastAPI后端 │ │ AI评分引擎 │
│ (HTML/JS) │───▶│ (Python) │───▶│ (LLM/Rules) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ SQLite数据库 │
│ (PPT信息/评分) │
└─────────────────┘
│
▼
┌─────────────────┐
│ 文件存储 │
│ (uploads/) │
└─────────────────┘
- 后端: FastAPI, SQLAlchemy, LiteLLM
- 前端: HTML5, CSS3, JavaScript (Vanilla)
- AI: OpenRouter (Claude 3, GPT-4)
- 文件处理: python-pptx, PyPDF2, pdf2image
- 数据库: SQLite
- 部署: Docker, Docker Compose
- 在
scorer.py中添加新的评分方法 - 更新
_score_with_rules或_score_with_llm方法 - 测试新算法的准确性
- 在
extractor.py中添加新的提取器 - 更新
extract_content方法 - 在前端更新支持的文件类型
- 修改
static/index.html中的样式和布局 - 所有样式都在HTML文件的
<style>标签中 - JavaScript功能在文件底部的
<script>标签中
-
上传失败
- 检查文件大小是否超过限制
- 确认文件格式是否支持
- 查看服务器日志
-
评分失败
- 检查API密钥是否正确
- 确认网络连接正常
- 查看模型是否可用
-
Docker部署问题
- 确认端口没有被占用
- 检查环境变量设置
- 查看容器日志
# Docker Compose日志
docker-compose logs -f
# Docker容器日志
docker logs <container-id>
# 本地开发日志
python main.py # 直接在终端查看- Fork项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
MIT License - 详见 LICENSE 文件
如有问题或建议,请创建Issue或联系开发团队。