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 功能,可自動將本地資料夾同步到文件索引。

相關

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