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>
This commit is contained in:
congsh
2026-02-12 15:50:51 +08:00
parent a5e50876a0
commit e853161975
37 changed files with 2109 additions and 9266 deletions

166
README.md
View File

@@ -1,125 +1,113 @@
# CutThenThink
智能截图OCR与AI分析工具
**极简截图上传工具**
## 项目简介
CutThenThink 是一款基于 PyQt6 的桌面应用程序集成了OCR文字识别和AI智能分析功能。用户可以通过截图、选择区域然后使用OCR提取文字并利用多种AI模型进行智能分析和处理。
CutThenThink 是一个轻量级的桌面截图工具,专注于:
- 📷 快速截图(全屏/区域)
- ☁️ 云端上传(支持多种服务)
- 📁 历史记录管理
- 🔍 可选 OCR 文字识别
## 主要功能
## 特点
- **智能截图**: 支持多种方式截图(矩形选择、窗口选择、全屏等)
- **OCR识别**: 基于PaddleOCR的高精度文字识别
- **AI分析**: 支持多种AI模型OpenAI GPT、Anthropic Claude等
- **内容编辑**: 内置编辑器,支持图片标注和文字编辑
- **历史记录**: 本地数据库保存所有截图和分析记录
- **快捷操作**: 全局快捷键支持,快速截图和分析
## 技术栈
- **GUI框架**: PyQt6 6.6.1
- **数据库**: SQLAlchemy 2.0.25
- **OCR引擎**: PaddleOCR 2.7.0.3
- **AI模型**: OpenAI API、Anthropic API
- **图像处理**: Pillow 10.0.0
- **轻量级**:核心依赖仅 ~50MB
- **可选 OCR**RapidOCR 插件,按需安装
- **无重型依赖**:移除了 torch、transformers、paddleocr
- **简单配置**YAML 单文件配置
- **跨平台**:支持 Windows、macOS、Linux
## 安装
### 环境要求
### 基础安装
- Python 3.8+
- 操作系统: Windows / macOS / Linux
### 安装步骤
1. 克隆项目
```bash
git clone <repository_url>
cd CutThenThink
```
2. 创建虚拟环境
```bash
python -m venv venv
source venv/bin/activate # Linux/macOS
# 或
venv\Scripts\activate # Windows
```
3. 安装依赖
```bash
pip install -r requirements.txt
python src/main.py
```
4. 配置AI服务
### 可选:安装 OCR 支持
创建配置文件 `config.yaml`:
```yaml
ai:
provider: "openai" # 或 "anthropic"
openai:
api_key: "your-openai-api-key"
model: "gpt-4"
anthropic:
api_key: "your-anthropic-api-key"
model: "claude-3-sonnet-20240229"
```bash
pip install -r requirements-ocr.txt
```
## 使用方法
启动应用:
```bash
python src/main.py
```
### 快捷键
默认快捷键
- `Ctrl+Shift+A`: 截图并分析
- `Ctrl+Shift+S`: 仅截图
- `Ctrl+Shift+H`: 打开历史记录
- `Esc`: 取消截图
| 快捷键 | 功能 |
|--------|------|
| `Ctrl+Shift+A` | 全屏截图 |
| `Ctrl+Shift+R` | 区域截图 |
| `Ctrl+Shift+U` | 上传最后截图 |
| `Esc` | 退出 |
### 配置
配置文件位于 `~/.cutthenthink/config.yaml`
```yaml
upload:
provider: custom # custom, telegraph, imgur
endpoint: https://...
api_key: your-key
auto_copy: true
screenshot:
format: png # png, jpg, webp
save_path: ~/Pictures/Screenshots
hotkeys:
capture: Ctrl+Shift+A
region: Ctrl+Shift+R
upload: Ctrl+Shift+U
ocr:
enabled: false # 是否启用 OCR
auto_copy: false # 识别后自动复制
```
## 项目结构
```
CutThenThink/
├── src/
│ ├── gui/ # GUI组件
│ ├── widgets/ # 自定义控件
│ └── styles/ # 样式文件
│ ├── core/ # 核心功能
│ ├── models/ # 数据模型
├── config/ # 配置管理
── utils/ # 工具函数
├── data/ # 数据目录
│ ├── images/ # 截图存储
│ └── database/ # 数据库文
├── requirements.txt # 项目依赖
├── .gitignore # Git忽略文件
── README.md # 项目说明
│ ├── main.py # 入口
│ ├── config.py # 简化配置
├── core/
│ ├── database.py # SQLite 存储
│ ├── screenshot.py # 截图功能
│ └── uploader.py # 上传功能
── gui/
└── main_window.py # 主窗口
│ ├── plugins/ # 可选插件
│ └── ocr.py # RapidOCR 插
│ └── utils/ # 工具函数
├── requirements.txt # 核心依赖
── requirements-ocr.txt # 可选 OCR
└── config.yaml # 配置文件
```
## 开发计划
## 开发
- [x] 项目初始化
- [ ] 基础GUI框架搭建
- [ ] 截图功能实现
- [ ] OCR识别集成
- [ ] AI分析功能
- [ ] 数据库存储
- [ ] 历史记录管理
- [ ] 配置系统
- [ ] 快捷键支持
- [ ] 打包发布
```bash
# 安装开发依赖
pip install -r requirements.txt
## 贡献指南
# 运行
python src/main.py
```
欢迎提交Issue和Pull Request
## 构建
使用 PyInstaller 打包:
```bash
pyinstaller CutThenThink.spec
```
## 许可证
MIT License
## 联系方式
- 项目地址: [GitHub Repository]
- 问题反馈: [Issues]