Files
cutThenThink/docs/implementation-plan.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

5.1 KiB
Raw Permalink Blame History

CutThenThink 实施计划

项目初始化

1. 创建项目结构

CutThenThink/
├── src/
│   ├── __init__.py
│   ├── main.py              # 应用入口
│   ├── gui/                 # GUI模块
│   │   ├── __init__.py
│   │   ├── main_window.py   # 主窗口
│   │   ├── widgets/         # 自定义组件
│   │   └── styles/         # 样式表
│   ├── core/                # 核心业务逻辑
│   │   ├── __init__.py
│   │   ├── ocr.py          # OCR处理
│   │   ├── ai.py           # AI分类
│   │   └── storage.py      # 数据存储
│   ├── models/              # 数据模型
│   │   ├── __init__.py
│   │   └── database.py     # SQLAlchemy模型
│   ├── config/              # 配置管理
│   │   ├── __init__.py
│   │   └── settings.py
│   └── utils/              # 工具函数
│       ├── __init__.py
│       └── helpers.py
├── data/                   # 数据目录
│   ├── images/             # 图片存储
│   └── cut_think.db       # SQLite数据库
├── design/                 # 设计文件
├── docs/                   # 文档
├── requirements.txt         # Python依赖
├── .gitignore
└── README.md

2. 创建 requirements.txt

PyQt6==6.6.1
PyQt6-WebEngine==6.6.0
SQLAlchemy==2.0.25
paddleocr==2.7.0.3
paddlepaddle==2.6.0
openai>=1.0.0
anthropic>=0.18.0
requests>=2.31.0
pyyaml>=6.0.1
pillow>=10.0.0
pyperclip>=1.8.2

3. 创建 .gitignore

__pycache__/
*.pyc
*.pyo
*.pyd
.Python
env/
venv/
.venv/
data/
*.db
*.log
dist/
build/
*.spec

P0: 基础框架 + 核心功能

步骤 1: 数据库模型

  • 创建 models/database.py
  • 定义 Record 模型id, image_path, ocr_text, category, ai_result, tags, notes, created_at, updated_at
  • 创建数据库初始化函数
  • 定义 RecordCategoryTODO, NOTE, IDEA, REF, FUNNY, TEXT 6种分类

步骤 2: 配置管理

  • 创建 config/settings.py
  • 定义配置结构AI配置、OCR配置、云存储配置、UI配置、高级配置
  • 实现配置加载/保存YAML格式
  • 实现配置验证功能
  • 实现配置管理器(单例模式)
  • 支持嵌套配置访问(点分隔路径)

步骤 3: OCR 模块

  • 创建 core/ocr.py
  • 实现 PaddleOCR 本地识别
  • 定义 OCR 接口基类便于扩展云端OCR

步骤 4: AI 模块

  • 创建 core/ai.py
  • 实现 OpenAI API 调用
  • 实现分类提示词模板
  • 定义分类结果数据结构
  • 支持多个 AI 提供商OpenAI, Claude, 通义千问, Ollama
  • 实现错误处理和重试机制
  • 支持 6 种分类类型TODO, NOTE, IDEA, REF, FUNNY, TEXT

步骤 5: 存储模块

  • 创建 core/storage.py
  • 实现 CRUD 操作(创建记录、查询记录、更新记录、删除记录)
  • 实现按分类查询

步骤 6: 主窗口框架

  • 创建 gui/main_window.py
  • 实现侧边栏导航
  • 实现主内容区域布局
  • 实现样式表(米白配色方案)

步骤 7: 图片处理功能

  • 实现截图功能(全局快捷键)
  • 实现剪贴板监听
  • 实现图片文件选择
  • 实现图片预览

步骤 8: 处理流程整合

  • OCR → AI → 存储 流程串联
  • 实现 Markdown 结果展示
  • 实现复制到剪贴板功能

步骤 9: 分类浏览

  • 实现全部记录列表
  • 实现按分类筛选
  • 实现卡片样式展示

P1: 批量上传 + 完整分类

步骤 10: 批量上传界面

  • 创建批量上传窗口
  • 实现拖放上传
  • 实现多图片预览列表
  • 实现批量选择/删除

步骤 11: 队列处理

  • 实现任务队列
  • 实现进度显示
  • 实现并发控制

步骤 12: 完整分类支持

  • 支持 6 种分类类型
  • 实现分类颜色标签
  • 实现分类统计

步骤 13: 云端 OCR

  • 实现百度 OCR 接口
  • 实现腾讯 OCR 接口
  • 实现自动降级机制

步骤 14: 更多 AI 提供商

  • 支持 Claude API
  • 支持通义千问
  • 支持本地 Ollama

P2: 云存储同步 + 高级配置

步骤 15: 设置界面

  • 创建设置窗口
  • AI 配置面板
  • OCR 配置面板
  • 快捷键配置
  • 提示词模板编辑

步骤 16: 云存储集成

  • WebDAV 支持
  • 阿里云 OSS 支持
  • AWS S3 支持
  • 同步状态显示

步骤 17: 详情弹窗

  • 原图查看
  • Markdown 渲染
  • 编辑功能
  • 删除确认

P3: 多用户隔离 + 导入导出

步骤 18: 数据导出

  • 导出全部为 Markdown
  • 按分类导出
  • 数据库备份/恢复

步骤 19: 打包配置

  • PyInstaller 配置
  • 图标设置
  • 单文件打包

验证标准

每个步骤完成后需验证:

  • 代码运行无错误
  • 功能按预期工作
  • 代码符合项目规范

总计: 19 个主要步骤,约 50+ 个子任务