一个小小的toy,主要用于快速提取文件上下文供LLM交互
现在各家大模型大都支持文件上传,但是很多操作又不支持,比如拖拽上传。因此写了这个小小的toy,来快速拖拽获取文本内容到剪贴板上,方便与LLM的交互。当然,本Readme文件大部分内容也是这么来的()
- 拖放操作支持
- 直接拖拽文件/文件夹到悬浮窗口
- 支持递归读取目录下的所有文件
- 智能内容处理
- 自动统计字符数量
- 异常文件类型检测(二进制文件等)
- 错误日志记录(日志存储在~/context_extractor_logs文件夹中)
- 便捷交互
- 系统托盘图标支持
- 右键菜单快速访问
- Python 3.6+
- PyQt5
# 安装依赖
pip install pyqt5
运行方式
# 开发模式
python main.py
# 打包可执行文件
pyinstaller --onefile --windowed --ico=icon.ico main.py
使用说明
-
拖放文件: 将任意文件/文件夹拖拽到悬浮窗口,自动开始处理
-
文件选择
- 双击窗口打开文件对话框
- 支持多选文件和文件夹
- 结果获取:处理完成后,格式化的内容会自动复制到剪贴板
4. 系统托盘
- 右键菜单退出程序
- 双击图标显示窗口
ContextExtractor/
├── utils.py # 日志配置 & 文件处理核心逻辑
├── tray_icon.py # 系统托盘图标组件
├── drop_window.py # 拖放主窗口实现
├── main.py # 程序入口
└── hooks/
└── hook-pyqt5.py # 打包配置文件
- 日志文件存储路径:~/context_extractor_logs
- 支持文件编码:UTF-8
- 最大处理文件数:无限制(受系统内存限制)
本项目采用 MIT License,由 Kong Deyu 维护。欢迎提交Issue和PR。
提示:使用前请确保已安装PyQt5,如需自定义样式可修改drop_window.py
中的CSS样式代码段。