# 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: 自动分类的目录 --- 正文内容... ## 相关图片 ![图片1](./image_20250302_134500_1.png) ![图片2](./image_20250302_134500_2.png) ``` ### 目录结构 ``` save_location/ ├── 技术/ # 技术相关文档 ├── 学习/ # 学习笔记 ├── 工作/ # 工作文档 ├── 想法/ # 想法和灵感 ├── 资源/ # 资源文档 ├── 图片/ # 图片文件 └── 未分类/ # 未分类文档 ``` ## 🔧 核心功能说明 ### 标题提取算法 - 智能识别文档主题和重点 - 处理多种标题格式(Markdown、HTML等) - 标点符号智能处理 - 长度自动优化 - **新增**: 大模型辅助标题提取,更加智能准确 ### 文本和图片处理 - 保持原文格式和换行 - 智能去除冗余内容 - 优化空白行和段落间距 - 特殊字符处理 - **新增**: 图片提取和保存 - **新增**: 图文混合内容处理 ### 自动分类系统 - 基于内容的智能分类 - 关键词匹配 - **新增**: 可视化分类规则编辑 - **新增**: 大模型辅助分类 - 默认分类支持 ### 性能优化 - **新增**: 多线程处理,避免UI卡顿 - **新增**: 异步图片下载和处理 - **新增**: 内存使用优化 ## 📦 打包说明 ### 生成可执行文件 1. 确保已安装所有依赖 ```bash .venv\Scripts\python.exe -m pip install pyinstaller ``` 2. 使用 PyInstaller 打包 ```bash cd project\llmclipboard ; pyinstaller --clean llmclipboard.spec .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卡顿 - 异步图片下载和处理 - 内存使用优化 ## v0.1.6 (2025-03-02) - 修复ConfigParser导入问题 - 修复系统托盘功能 - 添加darkdetect模块支持深色/浅色模式自动检测 - 改进通知系统样式和错误处理 - 优化UI响应性能 - 添加uv环境打包支持 ## v0.1.7 (2025-03-02) - 改进托盘图标状态管理 - 添加活动状态图标,提供更明显的视觉反馈 - 优化图标切换逻辑,确保状态变化时图标正确更新 - 增强图标刷新机制,解决某些环境下图标不更新的问题 - 添加更全面的错误处理,提高系统托盘功能稳定性 - 完善分类配置的持久化和管理机制 - 支持开发和打包环境下的配置文件路径 - 确保配置文件正确保存和加载 - 添加更详细的日志记录 ## 🤝 贡献指南 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]