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 文本搜索,提供更相关的结果。
- 设备端存储:在应用会话之间本地持久化嵌入和文档。
- 灵活的内存管理:提供自动、完整内存或索引模式,能够处理从数千到数百万文档的数据集。
- 可定制架构:允许自定义存储提供者和搜索引擎实现。