MaximeRivest/attachments

Easiest way to give context to LLMs; Attachments has the ambition to be the general funnel for any files to be transformed into images+text for large language models context by only adding 2 lines to your python code.

解决的问题

attachments 是一个设计用于将各种文件格式(PDF、Excel、Word、PowerPoint、HTML、图片、音频,甚至整个 GitHub 仓库)转换为标准化、可供 LLM 使用的格式的库。它消除了为每种文件类型使用单独解析库的需求,提供单一函数(att())和一致的输出结构,可直接插入多模态 LLM(如 Claude 或 OpenAI)的提示中。

运作方式

此库使用处理器系统来处理不同的文件类型。用户可以为特定格式安装可选依赖项(例如,pip install "attachments[pdf]"),或使用基于服务的备用模式。

主要功能包括:

  • 通用输出:每个输入都会转换为「工件」(Artifacts)列表(包含文本、图片和元数据的字典)。
  • DSL 语法:可以使用领域特定语言内联指定选项(例如,att("report.pdf[pages: 1-4]"))。
  • 多模态交错:默认情况下,它会逐页交错文本和图片,确保模型能将视觉内容与对应文本关联起来。
  • Token 估算:它根据 Claude 的 tokenization 逻辑提供文本和图片的粗略预算数字。
  • 文件夹/仓库处理:它可以处理整个目录或 GitHub 仓库,根据 .gitignore 规则自动过滤掉机密和依赖项文件夹。

适用对象

正在构建 LLM 应用、RAG 管道或 AI 代理的开发者,这些应用需要处理各种非结构化数据源,而无需为每种文件格式编写自定义解析逻辑。

重点特色

  • 单一入口点:一个函数(att())处理从单个文件到 URL 和 GitHub 仓库的所有内容。
  • 标准化接口:所有处理器都提供一致的输出结构(工件)。
  • 可扩展格式支持:支持 PDF、XLSX、DOCX、PPTX、HTML、屏幕截图、OCR 和音频转录。
  • LLM 专用辅助工具:内置方法,专门用于格式化输出以符合 Claude 和 OpenAI 消息。
  • 智能过滤:处理文件夹时自动排除机密和生成的文件。

相关

  • 项目
  • 项目
  • 项目
  • 项目