Skip to content

Polly2014/PPT_Scorer

Repository files navigation

PPT智能评分系统

一个基于AI的PPT评分系统,支持PPT、PPTX、PDF格式文件的自动评分和分析。

功能特点

  • 📁 多格式支持: 支持PPT、PPTX、PDF文件上传
  • 🤖 智能评分: 基于LLM或规则的评分算法
  • 📊 详细分析: 提供创新性、可行性、社会效益、演示质量等维度评分
  • 🔄 批量处理: 支持批量上传和处理
  • 📈 对比分析: 支持多个PPT文件的对比分析
  • 🎨 现代界面: 美观的AI科技风格界面
  • 🐳 容器化部署: 支持Docker部署

评分标准

评分维度 满分 评分说明
产品创新性 10 分 技术/场景的新颖程度、差异化价值
产品可行性 10 分 技术实现与资源可达性、风险控制
社会效益 10 分 对社会、行业或用户的正面影响
演示文稿质量 10 分 逻辑结构、视觉设计、信息表达
现场答辩表现 10 分 演讲技巧、时间控制、问答互动
总分 50 分 五项得分之和

快速开始

本地开发

  1. 克隆项目
git clone <repository-url>
cd PPT_Score
  1. 安装依赖
pip install -r requirements.txt
  1. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入你的API密钥
  1. 运行应用
python main.py
  1. 访问应用 打开浏览器访问 http://localhost:8000

Docker部署

  1. 使用Docker Compose(推荐)
# 设置环境变量
export OPENROUTER_API_KEY=your_api_key_here

# 启动服务
docker-compose up -d
  1. 使用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 跨平台构建

如果您使用 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_basedllm_based)
  • OPENROUTER_API_KEY: OpenRouter API密钥
  • OPENROUTER_MODEL: 使用的模型 (默认: anthropic/claude-3-haiku-20240307)
  • DATABASE_URL: 数据库连接URL
  • MAX_FILE_SIZE_MB: 最大文件大小限制(MB)
  • DEBUG: 调试模式

支持的模型

  • anthropic/claude-3-haiku-20240307
  • anthropic/claude-3-sonnet-20240229
  • openai/gpt-4o
  • 其他OpenRouter支持的模型

API接口

文件上传

  • POST /upload - 上传PPT文件

数据查询

  • GET /presentations - 获取所有PPT列表
  • GET /presentation/{id} - 获取PPT详情
  • GET /compare?ids=1,2,3 - 对比多个PPT

操作接口

  • POST /presentation/{id}/rescore - 重新评分
  • DELETE /presentation/{id} - 删除PPT
  • GET /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

开发指南

添加新的评分算法

  1. scorer.py 中添加新的评分方法
  2. 更新 _score_with_rules_score_with_llm 方法
  3. 测试新算法的准确性

扩展文件格式支持

  1. extractor.py 中添加新的提取器
  2. 更新 extract_content 方法
  3. 在前端更新支持的文件类型

自定义前端界面

  • 修改 static/index.html 中的样式和布局
  • 所有样式都在HTML文件的 <style> 标签中
  • JavaScript功能在文件底部的 <script> 标签中

故障排除

常见问题

  1. 上传失败

    • 检查文件大小是否超过限制
    • 确认文件格式是否支持
    • 查看服务器日志
  2. 评分失败

    • 检查API密钥是否正确
    • 确认网络连接正常
    • 查看模型是否可用
  3. Docker部署问题

    • 确认端口没有被占用
    • 检查环境变量设置
    • 查看容器日志

日志查看

# Docker Compose日志
docker-compose logs -f

# Docker容器日志
docker logs <container-id>

# 本地开发日志
python main.py  # 直接在终端查看

贡献指南

  1. Fork项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启Pull Request

许可证

MIT License - 详见 LICENSE 文件

联系方式

如有问题或建议,请创建Issue或联系开发团队。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published