rryam/VecturaKit

Swift-based vector database for on-device RAG using MLTensor and MLX Embedders

它解決了什麼問題

VecturaKit 是一個基於 Swift 的向量資料庫,專為裝置端應用設計。它讓開發者能在 Apple 平台上本地儲存、索引與檢索向量嵌入,免除為基本語意搜尋與檢索任務使用外部雲端向量資料庫的需求。

工作原理

此框架提供核心向量資料庫引擎,採用可插拔架構。它支援多種嵌入提供者,包括 Apple 原生的 NaturalLanguage 框架、相容 OpenAI 的 API(可用於本機伺服器如 Ollama 或託管服務),以及透過 MLX 加速的 GPU 嵌入。它將向量相似度與 BM25 文字搜尋結合,提供混合搜尋功能。系統高度可客製化,開發者可依照特定協議實作自訂儲存後端(例如 SQLite、Core Data)或搜尋演算法。

目標對象

適合在 iOS、macOS、tvOS、visionOS 與 watchOS 上開發本地語意搜尋、RAG(檢索增強生成)功能或裝置端文件管理的 Swift 開發者,且不想依賴外部基礎建設。

重點特色

  • 可插拔嵌入:支援多種提供者,包括 Apple 的 NaturalLanguage、MLX 與相容 OpenAI 的端點。
  • 混合搜尋:結合向量相似度與 BM25 文字搜尋,提供更相關的結果。
  • 裝置端儲存:在應用程式會話間本地持久化嵌入與文件。
  • 彈性記憶體管理:提供自動、完整記憶體或索引模式,能處理從數千到數百萬文件的資料集。
  • 可客製化架構:允許自訂儲存提供者與搜尋引擎實作。