sammcj/ingest

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

它解決的問題

Ingest 簡化了向大型語言模型(LLM)提供大量上下文(例如整個程式碼庫或網頁)的流程。它解決了手動複製和貼上多個檔案或網址的問題,透過將它們整合成一個具有清晰目錄結構的、AI 可用的 Markdown 檔案來實現。

如何運作

該工具會解析純文字檔案、原始碼或網頁網址的目錄,並將其轉換為格式化的 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 差異和日誌包含在提示中。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案