一站式数据整合利器,让大语言模型(LLM)数据准备效率翻倍。
OneFileLLM 是一款轻巧而功能全面的数据聚合工具,其核心价值在于能将来自不同渠道的内容合并为一个统一格式的文本文件,方便你直接复制粘贴到 LLM(大语言模型)中使用。无论是本地文档、GitHub 仓库、学术论文,还是在线网页,OneFileLLM 都能自动识别并处理,极大减少手动整理数据的时间成本。
核心功能一览
OneFileLLM 支持的数据源类型极为丰富,几乎覆盖日常工作和学习中的大多数场景:
- 本地文件/目录:包括 .txt、.pdf、.ipynb 等多种格式
- GitHub 仓库:自动拉取仓库中的代码和文档内容
- GitHub PR:精准提取 Pull Request 的变更详情
- GitHub Issues:高效抓取 Issues 中的讨论内容
- ArXiv 学术论文:通过 ArXiv ID 直接获取论文全文
- YouTube 视频字幕:提取视频字幕文本用于分析
- 网页文档:爬取指定 URL 的内容,并支持控制爬取深度
- Sci-Hub 论文:通过 DOI 或 PMID 标识自动下载论文
无论你提供何种类型的数据源,OneFileLLM 最终都会将其编译成一个单一的文本文件,方便你直接复制到 LLM 中使用。这个工具堪称数据整合领域的 瑞士军刀,简洁而高效。
主要特性
- 自动源类型检测:基于提供的路径、URL 或标识符自动判断数据类型,无需手动指定,即开即用。
- 多源支持:全面支持上述所有数据类型,灵活混用,满足多样化需求。
- 多格式处理:能够处理 Jupyter Notebook(.ipynb)、PDF 等多种常见文件格式。
- 网页爬取:可设定爬取深度,智能提取链接页面中的内容。
- Sci-Hub 集成:使用 DOI 或 PMID 自动下载研究论文,简化文献获取流程。
- 文本预处理:包括 压缩/未压缩输出、停用词删除、小写转换等选项,灵活适配 LLM 输入需求。
- 自动复制功能:自动将未压缩文本复制到剪贴板,方便直接粘贴到 LLM 中使用。
- 令牌计数报告:同时报告压缩和未压缩输出的令牌数,帮助你精准控制上下文长度。
- XML 封装:输出使用 XML 标签进行结构化封装,显著提升 LLM 的理解能力。

典型应用场景
科研工作:研究论文分析
直接通过 ArXiv ID 或 DOI 快速获取并处理学术论文,无需手动下载和整理,让文献调研更高效。
程序员:代码库理解
输入 GitHub 仓库 URL,即可快速获取代码库概览,帮助你快速理解项目结构与逻辑。
视频内容处理
直接从 YouTube 视频中提取字幕,并转换为文本供 LLM 学习与分析,拓展视频内容的价值。
线上文档爬取
爬取长网页或在线文档内容,复制到 LLM 中进行分析、摘要或知识提取。
小提示: 当你需要向 LLM 输入大量结构化信息时,OneFileLLM 能帮你将多个数据源整合成一个干净的文件,避免手动复制粘贴的繁琐。建议先使用未压缩输出进行预览,再根据令牌计数决定是否启用压缩,以优化 LLM 的处理效果。
安装 OneFileLLM
安装过程非常简洁,推荐使用 UV 包管理器 进行快速部署。以下是详细步骤:
# 克隆仓库 git clone https://github.com/jimmc414/onefilellm.git cd onefilellm # 使用UV安装依赖 uv pip install -U -r requirements.txt # 或者创建虚拟环境 uv venv # 激活虚拟环境(Windows) .venv\Scripts\activate # 激活虚拟环境(Linux/Mac) source .venv/bin/activate # 安装依赖 uv pip install -U -r requirements.txt
常见问题:
Q: 安装时提示“uv 命令未找到”怎么办?
A: 请先安装 UV 包管理器(pip install uv),或者直接使用标准 pip 安装:pip install -r requirements.txt。为了更好的环境隔离,强烈建议使用虚拟环境。
Q: 在 Windows 上激活虚拟环境失败?
A: 确保使用 PowerShell 或 CMD,命令为 .venv\Scripts\activate(注意使用反斜杠)。如果遇到执行策略错误,可先执行 Set-ExecutionPolicy Unrestricted -Scope Process 解决。
使用方法
基本使用方法非常简单,入门毫无门槛:
# 基本使用(不带参数会进入交互模式) python onefilellm.py # 直接传入 URL 或路径 python onefilellm.py https://github.com/jimmc414/onefilellm
你还可以同时传入多个来源,例如:
python onefilellm.py arxiv:2103.03883 https://arxiv.org/abs/2103.03883
小提示: 使用交互模式时,工具会提示你输入来源地址。你也可以在命令行中直接指定多个参数,用空格分隔。对于 GitHub 仓库,工具会自动拉取主分支(main 或 master)的内容,无需额外配置。
工作流程
OneFileLLM 的工作流程清晰直观,易于理解:
- 用户提供输入 URL 或路径
- 工具自动检测源类型(本地文件、GitHub、ArXiv 等)
- 调用相应的处理模块提取内容
- 对数据进行预处理(清理、压缩、XML 封装等)
- 生成输出文件(默认在当前目录下的
onefilellm-output文件夹) - 自动将未压缩文本复制到剪贴板(可选)
- 报告压缩和未压缩输出的令牌数
所有输出结果都使用 XML 标签进行结构化封装,这种格式能显著提升 LLM 对输入内容的解析效率与处理能力。
常见问题:
Q: 输出文件在哪里?
A: 默认保存在运行命令的目录下的 onefilellm-output 文件夹中,文件名为 output.txt(可通过命令行参数自定义修改)。
Q: 如何启用压缩?
A: 运行命令时添加 --compress 参数,例如:python onefilellm.py --compress https://example.com。压缩功能会删除停用词、转换小写、移除多余空白等,优化文本体积。
Q: 如果我想禁用自动复制到剪贴板怎么办?
A: 使用 --no-clipboard 参数即可关闭自动复制功能。
OneFileLLM 是一款非常实用的数据整合工具,它极大地简化了将多源数据输入 LLM 的流程。无论是科研工作、软件开发还是日常学习,当你需要向大语言模型提供大量结构化信息时,不妨试试这个工具,它可能会为你节省大量宝贵的时间与精力。
