Files

808 lines
9.2 KiB
Markdown
Raw Permalink 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.
````markdown
# AI 阅卷助手(AI Grading Assistant
> **技术开发文档 V1.0**
>
> 技术栈:**Electron + Vue3 + TypeScript + Node.js**
>
> 更新时间:2026-07-15
---
# 1. 项目简介
## 1.1 项目背景
目前高校、中小学普遍已使用网上阅卷系统,但教师仍需要逐题阅读学生答案并手动评分,存在以下痛点:
- 重复性劳动强
- 主观评分容易受疲劳影响
- 阅卷效率低
- 长时间阅卷容易漏判、误判
AI 阅卷助手定位为**桌面端 AI Copilot**,通过悬浮工具栏辅助教师完成阅卷,而不是替换现有阅卷系统。
整体工作流程如下:
```text
学校阅卷系统
教师查看学生答案
快捷键截图
AI 自动评分
展示建议分数及扣分原因
教师确认或修改
```
整个过程无需修改学校现有系统,实现"零侵入式"接入。
---
# 2. 项目目标
构建一款跨平台桌面应用,实现以下能力:
- 全局悬浮工具栏
- 全局快捷键截图
- AI 图片识别
- AI 智能阅卷
- 评分标准管理
- 历史记录管理
- 多模型切换
- 本地模型支持(后续)
---
# 3. 技术架构
## 3.1 技术栈
| 模块 | 技术 |
|------|------|
| 桌面框架 | Electron |
| 前端框架 | Vue3 |
| 开发语言 | TypeScript |
| UI组件 | Element Plus |
| 状态管理 | Pinia |
| 路由 | Vue Router |
| 网络请求 | Axios |
| AI接口 | OpenAI Compatible API |
| 数据库 | SQLite |
| ORM | Prisma(可选) |
| 配置管理 | electron-store |
| 日志 | electron-log |
| 图片处理 | Sharp |
| OCR(可选) | PaddleOCR |
---
## 3.2 系统架构
```text
Electron
┌──────────────────────┐
│ Main Process │
└──────────┬────────────┘
│ IPC
┌────────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
Renderer Screenshot AI Service
(Vue3) Module (Node)
│ │ │
│ ▼ │
│ Image Processing │
│ │
└───────────────► SQLite ◄────────────────┘
```
---
# 4. 项目目录结构
```text
ai-grading-assistant
├── electron
│ ├── main
│ │ ├── main.ts
│ │ ├── window.ts
│ │ ├── shortcut.ts
│ │ ├── screenshot.ts
│ │ ├── ipc.ts
│ │ └── tray.ts
│ │
│ └── preload
│ └── preload.ts
├── src
│ ├── api
│ ├── assets
│ ├── components
│ ├── composables
│ ├── layouts
│ ├── pages
│ ├── router
│ ├── stores
│ ├── services
│ ├── styles
│ ├── types
│ ├── utils
│ ├── App.vue
│ └── main.ts
├── database
│ ├── sqlite.ts
│ ├── schema.sql
│ └── migration
├── prompts
├── config
├── logs
└── package.json
```
---
# 5. 功能模块设计
## 5.1 悬浮工具栏
### 功能
始终悬浮于所有窗口顶部。
功能按钮:
```text
┌────────────────────────────────────┐
│ 📷截图 │ ⚡阅卷 │ 📚模板 │ 📜历史 │ ⚙设置 │
└────────────────────────────────────┘
```
特点:
- 无边框
- 半透明
- 可拖拽
- 自动吸附屏幕边缘
- 支持隐藏
Electron 配置:
```typescript
new BrowserWindow({
width: 420,
height: 60,
frame: false,
transparent: true,
alwaysOnTop: true,
skipTaskbar: true,
resizable: false
})
```
---
## 5.2 全局快捷键
默认:
```text
Alt + Q
```
支持:
- 修改快捷键
- 多快捷键配置
例如:
```text
Alt+Q
开始截图
```
---
## 5.3 截图模块
流程:
```text
快捷键
显示遮罩层
鼠标拖动
生成截图
发送AI
```
功能:
- 全屏截图
- 区域截图
- Esc取消
- Enter确认
输出:
```text
PNG
```
---
## 5.4 AI阅卷模块
支持模型:
- GPT
- Claude
- Gemini
- Qwen-VL
- GLM
- DeepSeek
支持:
图片直接发送。
无需OCR。
输入:
```
图片
评分标准
Prompt
```
输出:
```json
{
"score":9,
"confidence":0.96,
"deductions":[
"未说明ACK作用"
],
"comment":"回答完整"
}
```
---
## 5.5 评分标准模块
每场考试:
```
课程
试卷
题目
评分标准
```
例如:
```text
Java
期末考试
第5题
```
评分标准:
```text
满分
10
评分点
① 多态
② 继承
③ 封装
```
数据库保存。
---
## 5.6 AI评分展示
右侧弹窗:
```text
────────────────────
AI建议:
9分
可信度:
96%
扣分:
① 未说明第三次握手意义
评价:
回答基本完整。
────────────────────
```
按钮:
```
确认
修改
重新评分
```
---
## 5.7 历史记录
保存:
- 截图
- AI评分
- 教师评分
- 时间
- AI耗时
支持:
- 查询
- 删除
- 导出Excel
---
# 6. 系统流程
## AI阅卷流程
```text
开始阅卷
快捷键
截图
AI识别图片
评分标准匹配
AI评分
返回JSON
前端展示
教师确认
```
---
# 7. Vue 前端架构
```text
App
├── FloatingToolbar
├── ScreenshotOverlay
├── ResultDrawer
├── SettingDialog
├── HistoryPage
├── TemplatePage
└── AboutPage
```
---
# 8. Electron IPC 通信
```text
Vue
ipcRenderer.invoke()
Main Process
执行任务
返回数据
```
事件:
| 名称 | 描述 |
|------|------|
| screenshot:start | 开始截图 |
| screenshot:end | 截图完成 |
| ai:grade | AI阅卷 |
| ai:result | AI返回 |
| history:list | 获取历史 |
| settings:get | 获取配置 |
---
# 9. 数据库设计
## exam
```sql
id INTEGER PRIMARY KEY
name TEXT
course TEXT
created_at DATETIME
```
---
## question
```sql
id INTEGER PRIMARY KEY
exam_id INTEGER
title TEXT
max_score INTEGER
rubric TEXT
```
---
## history
```sql
id INTEGER PRIMARY KEY
question_id INTEGER
image_path TEXT
student_answer TEXT
ai_score REAL
teacher_score REAL
confidence REAL
created_at DATETIME
```
---
# 10. AI接口封装
统一接口:
```typescript
interface AIProvider {
grade(
image:string,
rubric:string
):Promise<GradeResult>
}
```
实现:
```text
OpenAIProvider
GeminiProvider
ClaudeProvider
QwenProvider
```
方便切换。
---
# 11. Prompt设计
系统Prompt
```text
你是一名经验丰富的高校教师。
请依据评分标准严格评分。
要求:
1、识别学生答案
2、分析答案
3、依据评分标准逐项评分
4、输出JSON
禁止输出Markdown。
```
输出:
```json
{
"score":0,
"confidence":0,
"deductions":[],
"comment":""
}
```
---
# 12. 配置管理
支持:
```text
API Key
Base URL
模型
快捷键
主题
字体
代理
超时时间
```
保存:
```
electron-store
```
---
# 13. 日志系统
记录:
```text
程序启动
截图
AI请求
AI耗时
异常
退出
```
使用:
```
electron-log
```
---
# 14. 异常处理
截图失败:
```
重新截图
```
AI失败:
```
重新评分
```
JSON解析失败:
```
重新生成
```
网络异常:
```
请检查网络连接
```
---
# 15. 开发计划
## 第一阶段(MVP
预计:2 周
完成:
- Electron 初始化
- Vue3 页面
- 悬浮工具栏
- 快捷键截图
- AI 调用
- AI 评分展示
---
## 第二阶段
预计:2 周
完成:
- 评分模板
- 历史记录
- 设置页面
- 多模型支持
---
## 第三阶段
预计:3 周
完成:
- OCR 支持
- 本地模型
- 自动识别题号
- 自动填分
- 自动切换下一题
---
# 16. 后续优化方向
## AI能力
- 本地部署 Qwen-VL
- DeepSeek-R1 推理
- 自定义 Prompt
- AI 连续阅卷
## 产品能力
- 自动识别当前题号
- 自动关联评分模板
- 一键批量阅卷
- 自动填写分数(RPA
- 教师评分统计
- AI 与教师评分一致率分析
- 导出阅卷报告
## 企业级能力
- 用户登录
- 云端同步评分模板
- 多教师共享评分标准
- AI 模型统一配置
- 学校私有化部署
---
# 17. MVP 核心功能
✅ Electron 桌面应用
✅ Vue3 + TypeScript 前端
✅ 悬浮工具栏
✅ 全局快捷键截图
✅ AI 图片阅卷
✅ 建议分数展示
✅ 扣分原因分析
✅ 教师人工确认
该版本可作为最小可行产品(MVP),能够在不改造现有阅卷系统的前提下,为教师提供高效、可靠的 AI 辅助阅卷体验。
````