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


目录结构
save_location/
├── 技术/ # 技术相关文档
├── 学习/ # 学习笔记
├── 工作/ # 工作文档
├── 想法/ # 想法和灵感
├── 资源/ # 资源文档
├── 图片/ # 图片文件
└── 未分类/ # 未分类文档
🔧 核心功能说明
标题提取算法
- 智能识别文档主题和重点
- 处理多种标题格式(Markdown、HTML等)
- 标点符号智能处理
- 长度自动优化
- 新增: 大模型辅助标题提取,更加智能准确
文本和图片处理
- 保持原文格式和换行
- 智能去除冗余内容
- 优化空白行和段落间距
- 特殊字符处理
- 新增: 图片提取和保存
- 新增: 图文混合内容处理
自动分类系统
- 基于内容的智能分类
- 关键词匹配
- 新增: 可视化分类规则编辑
- 新增: 大模型辅助分类
- 默认分类支持
性能优化
- 新增: 多线程处理,避免UI卡顿
- 新增: 异步图片下载和处理
- 新增: 内存使用优化
📦 打包说明
生成可执行文件
- 确保已安装所有依赖
.venv\Scripts\python.exe -m pip install pyinstaller
- 使用 PyInstaller 打包
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)
- 改进托盘图标状态管理
- 添加活动状态图标,提供更明显的视觉反馈
- 优化图标切换逻辑,确保状态变化时图标正确更新
- 增强图标刷新机制,解决某些环境下图标不更新的问题
- 添加更全面的错误处理,提高系统托盘功能稳定性
- 完善分类配置的持久化和管理机制
- 支持开发和打包环境下的配置文件路径
- 确保配置文件正确保存和加载
- 添加更详细的日志记录
🤝 贡献指南
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'feat: 添加一些特性') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
编码规范
- 遵循 PEP 8 规范
- 使用类型注解
- 编写单元测试
- 添加详细注释
📄 许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
🙋♂️ 问题反馈
如果您遇到问题或有建议:
- 提交 Issue
- 加入讨论组:Discussions
- 发送邮件至:[your-email@example.com]