Files
cutThenThink/docs/需求分析报告_v2.md
congsh e853161975 refactor: 重构为极简截图上传工具
- 简化项目定位:从智能工具转为极简截图上传工具
- 移除重型依赖:torch、transformers、paddleocr、SQLAlchemy
- 新增轻量级核心模块:
  - config.py: 简化 YAML 配置管理
  - database.py: 原生 SQLite 存储
  - screenshot.py: 截图功能(全屏/区域)
  - uploader.py: 云端上传(支持 custom/telegraph/imgur)
  - plugins/ocr.py: 可选 RapidOCR 插件
- 重写主窗口:专注核心功能,移除复杂 UI
- 更新依赖:核心 ~50MB,OCR 可选
- 更新文档:新的 README 和需求分析 v2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:50:51 +08:00

5.0 KiB
Raw Blame History

CutThenThink 需求分析报告 v2.0

项目重新定位

CutThenThink 是一个极简轻量级截图上传工具

核心功能(最小化)

功能 说明
截图 全屏、区域、窗口截图
上传 上传到配置的云端服务
批量上传 选择多张图片批量上传
分类查看 按分类浏览历史记录

明确移除的功能

  • 移除 PaddleOCR 本地模型(太重)
  • 移除 torch/torchvision 依赖
  • 移除 transformers 依赖
  • 移除复杂的 AI 分类系统
  • 移除多用户系统设计

可选功能

  • 🔄 OCR:可选插件,使用 RapidOCR轻量级 ONNX
  • 🔄 AI 分类:可选云端 API不作为核心依赖

参考项目调研

RapidOCR - 轻量级 OCR 方案

为什么选择 RapidOCR

对比项 PaddleOCR RapidOCR
安装大小 ~200MB+ ~10MB
依赖复杂度 paddlepaddle onnxruntime
安装命令 pip install paddleocr paddlepaddle pip install rapidocr onnxruntime
启动速度 较慢 极快
可选性 难以做成可选 易于做成可选插件

使用示例

from rapidocr import RapidOCR

engine = RapidOCR()
result = engine("screenshot.png")
print(result[1])  # 识别的文本

ShareX - 成功的上传工具参考

核心特点

  • 截图 + 编辑 + 上传 一体化
  • 支持多种上传目标(自建服务器、云存储)
  • 可自定义工作流
  • 快捷键优先

可借鉴的设计

  1. 简洁的配置界面
  2. 上传历史记录
  3. 自定义上传目标

简化后的技术栈

核心依赖(必须)

PyQt6          # GUI
requests        # 上传请求
Pillow          # 图片处理
pyperclip       # 剪贴板

可选依赖(插件化)

rapidocr        # OCR可选安装
onnxruntime    # OCR 运行时(可选)

完全移除

paddleocr       # 移除
paddlepaddle   # 移除
torch           # 移除
transformers    # 移除
openai          # 移除(可用扩展支持)
anthropic       # 移除(可用扩展支持)
SQLAlchemy      # 移除(用原生 sqlite3

简化的项目结构

CutThenThink/
├── src/
│   ├── main.py              # 入口
│   ├── core/
│   │   ├── screenshot.py     # 截图功能
│   │   ├── uploader.py      # 上传功能
│   │   └── database.py      # 简单 SQLite
│   ├── gui/
│   │   ├── main_window.py   # 主窗口
│   │   ├── screenshot_widget.py  # 截图组件
│   │   └── upload_widget.py     # 上传组件
│   ├── plugins/             # 可选插件
│   │   └── ocr.py         # OCR 插件(可选)
│   └── config.py           # 简化配置
├── data/
│   └── screenshots/        # 截图存储
├── requirements.txt        # 核心依赖
├── requirements-ocr.txt    # 可选 OCR
└── config.yaml           # 用户配置

简化配置

# config.yaml - 最小配置
app:
  theme: dark

upload:
  # 支持imgur、自建、telegraph、s3等
  provider: custom
  endpoint: https://your-server.com/upload
  api_key: your-key

screenshot:
  format: png
  save_path: ~/Pictures/Screenshots

hotkeys:
  capture: Ctrl+Shift+A
  upload: Ctrl+Shift+U

# 可选,如果未安装 rapidocr 则忽略
ocr:
  enabled: false
  auto_copy: false

MVP 功能清单

P0 - 核心功能

  • 全局快捷键截图
  • 区域选择截图
  • 图片上传到服务器
  • 简单的历史记录
  • 复制链接到剪贴板

P1 - 增强功能

  • 批量上传
  • 自定义上传目标
  • 截图编辑(简单标注)
  • 分类管理

P2 - 可选插件

  • RapidOCR 集成
  • 云端 AI 分类
  • 更多上传服务

实现计划

第一阶段核心功能1-2周

  1. 简化项目结构,移除不必要依赖
  2. 实现基础截图功能
  3. 实现简单上传功能
  4. 实现 SQLite 存储
  5. 简洁的主窗口

第二阶段增强功能1周

  1. 批量上传
  2. 上传历史管理
  3. 分类浏览

第三阶段:可选插件(按需)

  1. RapidOCR 插件
  2. 云端服务集成

依赖对比

当前项目依赖

PyQt6>=6.7.0
SQLAlchemy>=2.0.36
openai>=1.0.0
anthropic>=0.18.0
requests>=2.31.0
pyyaml>=6.0.1
pillow>=10.0.0
pyperclip>=1.8.2

简化后核心依赖

PyQt6>=6.7.0
requests>=2.31.0
pillow>=10.0.0
pyperclip>=1.8.2

可选 OCR 依赖

rapidocr>=1.3.0
onnxruntime>=1.16.0

总结

核心变化

  1. 定位变化:从"智能截图工具"变为"截图上传工具"
  2. 功能简化OCR 和 AI 变为可选插件
  3. 依赖精简:移除所有重型 ML 库
  4. 架构简化:去除 ORM 和复杂配置

目标

一个开箱即用的轻量级截图上传工具:

  • 安装简单(pip install
  • 启动快速
  • 配置简洁
  • 功能专注

更新时间2025年 版本v2.0 - 简化版