Stevenic/vectra

Vectra is a local vector database for Node.js with features similar to pinecone but built using local files.

解决的问题

Vectra 提供了一种轻量级的本地方式,用于存储和搜索高维向量(嵌入),而无需依赖重型外部数据库服务器。它允许开发者在磁盘上维护基于文件的索引,同时通过内存内操作保持查询速度,非常适合本地优先的应用程序或中小规模数据集。

工作原理

它作为一个本地向量数据库运行,每个索引都以磁盘上的文件夹形式存储。它支持搜索时的余弦相似度排序,并支持 MongoDB 风格的元数据过滤来缩小结果范围。对于嵌入处理,它可以连接到外部 API(如 OpenAI)或使用 HuggingFace 通过 LocalEmbeddingsTransformersEmbeddings 在本地运行模型。为了支持多语言,它包含一个可选的 gRPC 服务器,暴露 19 个 RPC,允许其他语言与索引交互。

适用人群

需要简单、基于文件的向量存储解决方案的开发者,用于构建本地 AI 应用、RAG(检索增强生成)管道,或通过 IndexedDB 支持的浏览器工具。

主要亮点

  • 本地优先设计:基于文件的存储与内存内性能结合,小索引可实现亚毫秒级延迟。
  • 灵活的嵌入支持:支持云 API 和本地 HuggingFace 模型,兼顾隐私和离线使用。
  • 跨平台兼容:可在 Node.js、浏览器和 Electron 应用中运行。
  • 可扩展的访问:包含 gRPC 服务器和为 6 种不同语言生成的语言绑定。
  • 自动同步:具备 FolderWatcher 功能,可自动将本地目录同步到文档索引。

相关

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