# 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` | | 启动速度 | 较慢 | 极快 | | 可选性 | 难以做成可选 | 易于做成可选插件 | **使用示例**: ```python 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 # 用户配置 ``` --- ## 简化配置 ```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 - 核心功能 - [x] 全局快捷键截图 - [ ] 区域选择截图 - [ ] 图片上传到服务器 - [ ] 简单的历史记录 - [ ] 复制链接到剪贴板 ### 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 - 简化版*