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

8.1 KiB
Raw Permalink Blame History

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: 多用户隔离 + 导入导出