````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 辅助阅卷体验。
````
