pgvector/pgvector-node

pgvector support for Node.js, Deno, and Bun (and TypeScript)

解決的問題

pgvector-node 為 JavaScript 與 TypeScript 環境提供了一種標準化的方式,使用 pgvector PostgreSQL 擴展進行向量相似性搜尋。它彌補了資料庫的向量類型與各種流行的 Node.js、Deno 和 Bun 執行環境之間的差距,讓開發者無需為每次操作撰寫原始 SQL,即可儲存與查詢嵌入向量。

工作原理

該程式庫作為廣泛資料庫用戶端與 ORMs 的相容層。它提供實用函式(如 toSql)將 JavaScript 陣列格式化為資料庫可理解的格式,並直接整合至支援庫的結構定義與查詢建構器中。它也支援特殊向量類型,包括稀疏向量,並提供計算距離的輔助方法(如 L2、餘弦與內積)。

適用對象

使用 PostgreSQL 作為 AI 應用(如 RAG 或推薦系統)的向量資料庫,且在使用 Node.js、Deno 或 Bun 並使用任何支援的 ORMs 或查詢建構器的後端開發者。

主要亮點

  • 廣泛的生態系支援:相容大量套件,包括 Prisma、Sequelize、TypeORM、Drizzle ORM、Knex.js 與 Kysely。
  • 執行環境彈性:可在 Node.js、Deno 與 Bun 上運作。
  • 距離度量支援:內建支援 L2 距離、餘弦距離、內積、漢明距離與傑卡德距離。
  • 稀疏向量支援:包含 SparseVector 類別,用於處理包含大量零值的高維向量。
  • 索引輔助工具:簡化 HNSW 與 IVFFlat 索引的建立,用於近似最近鄰搜尋。

相關

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