Files
cutThenThink/docs/design.md
congsh c4a77f8aa4 feat: 实现CutThenThink P0阶段核心功能
项目初始化
- 创建完整项目结构(src/, data/, docs/, examples/, tests/)
- 配置requirements.txt依赖
- 创建.gitignore

P0基础框架
- 数据库模型:Record模型,6种分类类型
- 配置管理:YAML配置,支持AI/OCR/云存储/UI配置
- OCR模块:PaddleOCR本地识别,支持云端扩展
- AI模块:支持OpenAI/Claude/通义/Ollama,6种分类
- 存储模块:完整CRUD,搜索,统计,导入导出
- 主窗口框架:侧边栏导航,米白配色方案
- 图片处理:截图/剪贴板/文件选择/图片预览
- 处理流程整合:OCR→AI→存储串联,Markdown展示,剪贴板复制
- 分类浏览:卡片网格展示,分类筛选,搜索,详情查看

技术栈
- PyQt6 + SQLAlchemy + PaddleOCR + OpenAI/Claude SDK
- 共47个Python文件,4000+行代码

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 18:21:31 +08:00

172 lines
8.1 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.
# CutThenThink 设计文档
## 项目概述
一个多用户的截图管理工具,核心流程:**截图 → OCR解析 → AI理解分类 → 生成备注和执行计划**
## 技术架构
```
┌────────────────────────────────────────────────────────────────┐
│ PyQt6 桌面应用(纯客户端) │
├────────────────────────────────────────────────────────────────┤
│ • 截图/上传 • 分类浏览 • Markdown预览+复制 • 设置面板 │
│ • 内置轻量OCR本地
│ • SQLite 本地存储 │
└────────────────────────────────────────────────────────────────┘
↓ API 调用
┌────────────────────────────────────────────────────────────────┐
│ 外部服务(云端/自建,可配置) │
├────────────────────────────────────────────────────────────────┤
│ • OCR服务百度/腾讯/自定义API │
│ • AI服务OpenAI/Claude/通义/本地模型 │
│ • 云存储OSS/S3/WebDAV可选
└────────────────────────────────────────────────────────────────┘
```
## 核心功能模块
### 1. 截图与输入模块
| 功能 | 说明 |
|------|------|
| 全局快捷键截图 | 用户自定义快捷键,触发系统区域截图 |
| 剪贴板监听 | 自动检测剪贴板中的图片,提示用户是否处理 |
| 图片上传 | 支持拖拽或浏览选择本地图片文件PNG、JPG、JPEG、WEBP |
| 批量上传 | 一次选择多张图片,排队处理 |
### 2. OCR 处理模块
| 方案 | 说明 |
|------|------|
| 内置轻量OCR | PaddleOCR轻量版本地运行无需联网 |
| 云端OCR API | 支持配置百度OCR、腾讯OCR、或自建OCR服务 |
| 自动降级 | 优先使用云端OCR失败时自动降级到本地OCR |
### 3. AI 分析与分类模块
**分类类型**
- 待办事项
- 信息/笔记
- 灵感/想法
- 参考资料
- 搞笑文案
- 纯文本
**支持的AI提供商**
- 国际OpenAI (GPT-4)、Anthropic (Claude)
- 国内通义千问、文心一言、智谱、DeepSeek
- 本地Ollama、LM Studio兼容OpenAI API
**输出格式**Markdown支持复制粘贴到其他工具
### 4. 数据存储模块
- **本地存储**SQLite 单文件数据库
- **可选云同步**WebDAV / 阿里云OSS / AWS S3
- **数据导出**:导出全部/按分类导出为Markdown
## UI 设计
### 配色方案
```
背景色: #faf8f5 (米白)
卡片色: #ffffff (纯白)
强调色: #ff6b6b (珊瑚红)
边框色: #e9ecef (浅灰)
```
### 分类颜色
| 分类 | 颜色 |
|------|------|
| 待办事项 | #ff6b6b (红) |
| 笔记 | #4dabf7 (蓝) |
| 灵感 | #ffd43b (黄) |
| 参考资料 | #51cf66 (绿) |
| 搞笑文案 | #ff922b (橙) |
| 纯文本 | #adb5bd (灰) |
### 主界面布局
```
┌──────────┬─────────────────────────────────────────┐
│ 侧边栏 │ 主内容区 │
│ │ ┌─────────────────────────────────┐ │
│ Logo │ │ 卡片网格展示 │ │
│ ─────── │ │ (图片预览+分类标签+内容摘要) │ │
│ 全部 │ └─────────────────────────────────┘ │
│ 待办 │ │
│ 笔记 │ [📷 截图] [ 新建] │
│ 灵感 │ │
│ 参考资料 │ │
│ 搞笑文案 │ │
│ ─────── │ │
│ 批量上传 │ │
│ 设置 │ │
└──────────┴─────────────────────────────────────────┘
```
### 批量上传页面
```
┌─────────────────────────────────────────────────────────┐
│ 批量上传 [清空] [开始处理] │
├────────────────┬────────────────────────────────────┤
│ │ 📷 拖放区 │
│ 图片列表 │ 点击选择或拖放图片到这里 │
│ │ 支持 PNG, JPG, WEBP │
│ □ [缩略图] │ │
│ 文件名 │ │
│ 2.3 MB │ │
│ [移除] │ │
└────────────────┴────────────────────────────────────┘
```
### 详情弹窗
```
┌────────────────────────────────────────┐
│ 详情 [✕] │
├────────────────────────────────────────┤
│ ┌──────────────────────────────┐ │
│ │ 原图预览 │ │
│ └──────────────────────────────┘ │
│ ┌──────────────────────────────┐ │
│ │ Markdown 结果 │ │
│ │ ## 待办事项 │ │
│ │ - [ ] 完成界面设计 │ │
│ │ - [ ] 编写 API 文档 │ │
│ └──────────────────────────────┘ │
│ │
│ [关闭] [📋 复制 Markdown] │
└────────────────────────────────────────┘
```
## 数据模型
### records 表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | INTEGER | 主键 |
| image_path | TEXT | 图片存储路径 |
| ocr_text | TEXT | OCR识别结果 |
| category | TEXT | 分类类型 |
| ai_result | TEXT | AI生成的Markdown |
| tags | TEXT | 标签JSON数组 |
| notes | TEXT | 用户备注 |
| created_at | TIMESTAMP | 创建时间 |
| updated_at | TIMESTAMP | 更新时间 |
## 技术栈
- **GUI框架**: PyQt6
- **OCR**: PaddleOCR本地+ API接口云端
- **数据库**: SQLite (sqlalchemy)
- **AI调用**: OpenAI SDK / requests
- **配置管理**: YAML/JSON
- **打包**: PyInstaller
## 开发优先级
1. **P0**: 基础框架 + 本地OCR + 简单AI分类
2. **P1**: 批量上传 + 完整分类 + 云端OCR支持
3. **P2**: 云存储同步 + 高级配置
4. **P3**: 多用户隔离 + 导入导出