345 lines
10 KiB
Markdown
345 lines
10 KiB
Markdown
# LLMClipboard
|
||
|
||
智能剪贴板增强工具,专注于提供高质量的文本和图片捕获与处理体验。支持智能标题提取、自动分类、关键词标签、大模型集成等功能,让您的笔记管理更轻松高效。
|
||
|
||
## ✨ 核心特性
|
||
|
||
### 📋 智能文本处理
|
||
- 智能标题提取,自动从内容中识别最合适的标题
|
||
- 多格式支持:HTML、Markdown、纯文本等
|
||
- 保持原文格式,包括段落、换行、列表等
|
||
- 智能清理,去除冗余内容和空白行
|
||
- **新增**: 大模型集成,支持OpenAI和Ollama,提供更智能的内容理解
|
||
|
||
### 🖼️ 图片处理
|
||
- **新增**: 支持剪贴板图片保存
|
||
- **新增**: 自动提取HTML内容中的图片
|
||
- **新增**: 支持网络图片和base64编码图片
|
||
- **新增**: 自动关联图片与文本内容
|
||
|
||
### 🏷️ 自动分类和标签
|
||
- 基于内容智能分类,自动归档到合适目录
|
||
- 使用NLP技术提取关键词作为标签
|
||
- **新增**: 可视化分类管理器,轻松编辑分类规则
|
||
- **新增**: 大模型辅助分类和标签生成
|
||
- YAML front matter 元数据支持
|
||
|
||
### 🎨 现代化界面
|
||
- 全新扁平化设计风格
|
||
- 支持深色/浅色主题
|
||
- **新增**: 增强的系统托盘功能,状态指示和快捷操作
|
||
- **新增**: 最近保存列表,快速访问历史内容
|
||
- **新增**: 桌面通知系统,保存反馈更直观
|
||
- **新增**: 开机自启动支持
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 系统要求
|
||
- Python 3.10+
|
||
- Windows 10/11
|
||
|
||
### 安装步骤
|
||
1. 克隆仓库
|
||
```bash
|
||
git clone https://github.com/yourusername/llmclipboard.git
|
||
cd llmclipboard
|
||
```
|
||
|
||
2. 创建虚拟环境
|
||
```bash
|
||
python -m venv .venv
|
||
.venv\Scripts\activate
|
||
```
|
||
|
||
3. 安装依赖
|
||
```bash
|
||
uv sync
|
||
```
|
||
|
||
4. 运行程序
|
||
```bash
|
||
python -m llmclipboard.app
|
||
```
|
||
|
||
### 使用大模型功能(可选)
|
||
- 对于OpenAI API:
|
||
- 在设置中选择"OpenAI兼容API"
|
||
- 输入您的API密钥和模型名称
|
||
- 支持自定义API地址,兼容各种OpenAI兼容服务
|
||
|
||
- 对于Ollama:
|
||
- 安装Ollama (https://ollama.com/)
|
||
- 在设置中选择"Ollama本地模型"
|
||
- 选择您已下载的模型(如llama2、mistral等)
|
||
|
||
## 📁 项目结构
|
||
|
||
```
|
||
llmclipboard/
|
||
├── llmclipboard/ # 主程序包
|
||
│ ├── __init__.py # 包初始化文件
|
||
│ ├── app.py # 主程序入口
|
||
│ ├── document_processor.py # 文档处理核心逻辑
|
||
│ ├── gui.py # 图形界面实现
|
||
│ ├── ai_processor.py # AI模型集成
|
||
│ ├── category_manager.py # 分类管理器
|
||
│ ├── categories.json # 分类配置文件
|
||
│ └── tests/ # 测试目录
|
||
│ ├── __init__.py
|
||
│ ├── test_clipboard.py # 剪贴板功能测试
|
||
│ ├── test_data.py # 数据处理测试
|
||
│ └── test_document_processor.py # 文档处理测试
|
||
├── docs/ # 文档目录
|
||
├── .python-version # Python 版本配置
|
||
├── config.ini # 程序配置文件
|
||
├── pyproject.toml # 项目依赖配置
|
||
├── README.md # 项目说明文档
|
||
└── logs/ # 日志目录
|
||
└── llmclipboard.log # 日志文件
|
||
```
|
||
|
||
### 核心模块说明
|
||
|
||
- **app.py**: 程序入口,包含主要的应用逻辑和事件循环
|
||
- **document_processor.py**: 文档处理核心,实现了标题提取、内容清理、标签生成等功能
|
||
- **gui.py**: 图形界面实现,包含主窗口和托盘图标的设计
|
||
- **ai_processor.py**: AI模型集成,支持OpenAI和Ollama,提供智能内容处理
|
||
- **category_manager.py**: 分类管理器,提供可视化编辑分类规则的界面
|
||
- **categories.json**: 预设的文档分类规则配置
|
||
- **tests/**: 单元测试集合,确保核心功能的正确性
|
||
|
||
## 📝 使用说明
|
||
|
||
### 基本操作
|
||
1. 双击右键:快速保存剪贴板内容(文本或图片)
|
||
2. 系统托盘图标:
|
||
- 左键双击:打开主界面
|
||
- 右键单击:显示菜单选项(启动/停止监听、设置、退出等)
|
||
- 图标状态:绿色表示正在监听,灰色表示已停止
|
||
|
||
### 高级功能
|
||
1. 分类管理:
|
||
- 点击"分类管理"按钮打开分类管理器
|
||
- 添加、删除、编辑分类和关键词
|
||
- 实时预览分类效果
|
||
|
||
2. AI模型设置:
|
||
- 点击"AI模型设置"按钮配置大模型
|
||
- 选择OpenAI或Ollama
|
||
- 测试连接确保可用性
|
||
|
||
3. 最近保存列表:
|
||
- 在主界面查看最近保存的文件
|
||
- 双击打开对应文件
|
||
|
||
### 配置说明
|
||
配置文件位于 `config.ini`:
|
||
```ini
|
||
[Settings]
|
||
save_location = 文档保存位置
|
||
double_click_threshold = 0.3
|
||
|
||
[AI]
|
||
model_type = none/openai/ollama
|
||
api_key = 您的API密钥(仅OpenAI)
|
||
base_url = API地址
|
||
model = 模型名称
|
||
```
|
||
|
||
### 文档保存格式
|
||
```markdown
|
||
---
|
||
title: 自动提取或手动设置的标题
|
||
date: 2025-03-02 13:45:00
|
||
tags: [自动提取的标签]
|
||
category: 自动分类的目录
|
||
---
|
||
|
||
正文内容...
|
||
|
||
## 相关图片
|
||
|
||

|
||
|
||

|
||
```
|
||
|
||
### 目录结构
|
||
```
|
||
save_location/
|
||
├── 技术/ # 技术相关文档
|
||
├── 学习/ # 学习笔记
|
||
├── 工作/ # 工作文档
|
||
├── 想法/ # 想法和灵感
|
||
├── 资源/ # 资源文档
|
||
├── 图片/ # 图片文件
|
||
└── 未分类/ # 未分类文档
|
||
```
|
||
|
||
## 🔧 核心功能说明
|
||
|
||
### 标题提取算法
|
||
- 智能识别文档主题和重点
|
||
- 处理多种标题格式(Markdown、HTML等)
|
||
- 标点符号智能处理
|
||
- 长度自动优化
|
||
- **新增**: 大模型辅助标题提取,更加智能准确
|
||
|
||
### 文本和图片处理
|
||
- 保持原文格式和换行
|
||
- 智能去除冗余内容
|
||
- 优化空白行和段落间距
|
||
- 特殊字符处理
|
||
- **新增**: 图片提取和保存
|
||
- **新增**: 图文混合内容处理
|
||
|
||
### 自动分类系统
|
||
- 基于内容的智能分类
|
||
- 关键词匹配
|
||
- **新增**: 可视化分类规则编辑
|
||
- **新增**: 大模型辅助分类
|
||
- 默认分类支持
|
||
|
||
### 性能优化
|
||
- **新增**: 多线程处理,避免UI卡顿
|
||
- **新增**: 异步图片下载和处理
|
||
- **新增**: 内存使用优化
|
||
|
||
## 📦 打包说明
|
||
|
||
### 生成可执行文件
|
||
1. 确保已安装所有依赖
|
||
```bash
|
||
.venv\Scripts\python.exe -m pip install pyinstaller
|
||
```
|
||
|
||
2. 使用 PyInstaller 打包
|
||
```bash
|
||
.venv\Scripts\python.exe -m pyinstaller --clean llmclipboard.spec
|
||
```
|
||
|
||
生成的可执行文件位于 `dist` 目录下:
|
||
- `LLMClipboard.exe`: 独立的可执行文件,包含所有依赖
|
||
|
||
### 打包配置说明
|
||
打包配置文件 `llmclipboard.spec` 包含以下设置:
|
||
- 无控制台窗口模式
|
||
- 自动包含所有必要的依赖
|
||
- 包含配置文件和分类规则文件
|
||
- 支持的 Python 版本:3.10+
|
||
- 支持系统托盘功能,关闭窗口时程序继续在后台运行
|
||
|
||
### 系统托盘功能
|
||
- 关闭主窗口时,应用程序不会退出,而是最小化到系统托盘
|
||
- 双击系统托盘图标可以重新打开主窗口
|
||
- 右键点击系统托盘图标可以显示菜单:
|
||
- 显示主窗口
|
||
- 启动/停止监听
|
||
- 设置选项
|
||
- 退出应用程序
|
||
|
||
## 📝 日志说明
|
||
|
||
应用程序运行时的所有日志都保存在 `logs` 目录下:
|
||
- 日志文件:`llmclipboard.log`
|
||
- 日志级别:INFO 及以上
|
||
- 日志轮转:单个文件最大 5MB,保留 3 个备份文件
|
||
- 日志内容:包含所有控制台输出和错误信息
|
||
|
||
### 日志文件位置
|
||
- 开发环境:项目根目录下的 `logs` 文件夹
|
||
- 打包环境:可执行文件所在目录的 `logs` 文件夹
|
||
|
||
### 日志内容说明
|
||
- 应用程序启动和关闭信息
|
||
- 剪贴板操作记录
|
||
- 文件保存操作记录
|
||
- 错误和异常信息
|
||
- 调试信息(DEBUG 级别,默认不记录)
|
||
- **新增**: AI模型调用日志
|
||
- **新增**: 图片处理日志
|
||
|
||
## 🔄 最近更新
|
||
|
||
### 2025-01-15
|
||
- 🔍 改进标题提取算法
|
||
- 优化对 Markdown 格式的处理
|
||
- 改进代码块标题处理
|
||
- 智能处理标点符号
|
||
- 保持标题简洁明了
|
||
- 📝 优化文本格式处理
|
||
- 保持原文换行格式
|
||
- 智能清理空白行
|
||
- 改进中文标点处理
|
||
- 🔧 改进日志输出
|
||
- 添加详细的调试信息
|
||
- 确保 UTF-8 编码支持
|
||
- 优化日志格式和可读性
|
||
|
||
### 2025-01-16 (v0.1.4)
|
||
- 添加应用程序打包支持
|
||
- 使用 PyInstaller 打包为独立可执行文件
|
||
- 添加打包配置文件 `llmclipboard.spec`
|
||
- 优化打包后的文件结构和依赖管理
|
||
|
||
- 改进日志系统
|
||
- 添加日志文件轮转功能,单个文件最大 5MB
|
||
- 优化日志文件路径处理,支持开发和打包环境
|
||
- 重定向控制台输出到日志文件
|
||
- 添加错误处理和临时日志备份机制
|
||
|
||
- 文档更新
|
||
- 添加打包说明和配置文档
|
||
- 补充日志系统使用说明
|
||
- 更新项目结构说明
|
||
|
||
### 2025-03-02 (v0.1.5)
|
||
- 🤖 添加AI模型集成
|
||
- 支持OpenAI兼容API
|
||
- 支持Ollama本地模型
|
||
- AI辅助标题提取、分类和标签生成
|
||
|
||
- 🖼️ 增强图片处理功能
|
||
- 支持剪贴板图片保存
|
||
- 自动提取HTML内容中的图片
|
||
- 支持网络图片和base64编码图片
|
||
- 图文混合内容处理
|
||
|
||
- 🎨 界面改进
|
||
- 全新扁平化设计风格
|
||
- 增强的系统托盘功能
|
||
- 添加最近保存列表
|
||
- 桌面通知系统
|
||
- 开机自启动支持
|
||
|
||
- 🔧 功能增强
|
||
- 添加可视化分类管理器
|
||
- 多线程处理,避免UI卡顿
|
||
- 异步图片下载和处理
|
||
- 内存使用优化
|
||
|
||
## 🤝 贡献指南
|
||
|
||
1. Fork 项目
|
||
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
||
3. 提交更改 (`git commit -m 'feat: 添加一些特性'`)
|
||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||
5. 提交 Pull Request
|
||
|
||
### 编码规范
|
||
- 遵循 PEP 8 规范
|
||
- 使用类型注解
|
||
- 编写单元测试
|
||
- 添加详细注释
|
||
|
||
## 📄 许可证
|
||
|
||
本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。
|
||
|
||
## 🙋♂️ 问题反馈
|
||
|
||
如果您遇到问题或有建议:
|
||
1. 提交 [Issue](../../issues)
|
||
2. 加入讨论组:[Discussions](../../discussions)
|
||
3. 发送邮件至:[your-email@example.com]
|