sammcj/ingest

Parse files (e.g. code repos) and websites to clipboard or a file for ingestions by AI / LLMs

它解决了什么问题

Ingest 简化了向大型语言模型(LLM)提供大量上下文(如整个代码库或网页)的过程。它通过将多个文件或 URL 聚合为一个结构清晰的、AI 友好的 Markdown 文件,解决了手动复制粘贴多个文件或 URL 的问题。

它如何工作

该工具解析纯文本文件、源代码目录或网页 URL,并将其转换为格式化的 Markdown 文档。它包含多个功能,以优化上下文窗口:

  • 聚合:将多个文件和目录合并为一个输出。
  • 代码压缩:使用 Tree-sitter 仅提取代码的结构化元素(如函数签名、导入语句、声明),移除实现细节以节省 token 数量。
  • 网页爬取:将网页和 PDF 转换为 Markdown 以供摄入。
  • token 计数:提供离线 token 估算(包含不同模型的校正因子)或通过 Anthropic API 获取精确计数。
  • LLM 集成:可将最终提示直接发送到任何 OpenAI 兼容 API。

适用于谁

需要将整个项目、文档站点或复杂文件结构输入 LLM 进行分析、重构或解释的开发者和 AI 高级用户。

特色亮点

  • Tree-sitter 压缩:通过移除代码体而保留架构,显著减少 token 使用量。
  • 灵活过滤:使用 glob 模式选择性包含或排除特定文件。
  • 内置分词器:集成离线分词器(o200k_base, cl100k_base),实现快速本地 token 计数。
  • 网页转 Markdown:内置爬取和 PDF 转换功能,用于外部文档处理。
  • Git 集成:可在提示中包含 git diff 和日志信息。

相关

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