sqlite-vss with Node.js
Node.js developers can use sqlite-vss with the sqlite-vss NPM package. It can be installed with:
bash
npm install sqlite-vssOnce installed, the sqlite-vss package can be used with SQLite clients like better-sqlite3 and node-sqlite3.
js
import Database from "better-sqlite3";
import * as sqlite_vss from "sqlite-vss";
const db = new Database(":memory:");
sqlite_vss.load(db);
const version = db.prepare("select vss_version()").pluck().get();
console.log(version);Checkout the API Reference for all available SQL functions.
Also see Making SQLite extensions npm install-able (March 2023) for more information on how npm install'able SQLite extensions work.
Working with Vectors in Node.js
Vectors as JSON
If your vectors in Node.js are represented as an array of floats, you can insert them into a vss0 table as a JSON string with JSON.stringify().
js
const embedding = [0.1, 0.2, 0.3];
const stmt = db.prepare("INSERT INTO vss_demo VALUES (?)");
stmt.run(JSON.stringify(embedding));Vectors as Bytes
Alternatively, if your vectors in Node.js are represented as a Float32Array, use the .buffer accessor to insert the underlying ArrayBuffer.
js
const embedding = new Float32Array([0.1, 0.2, 0.3]);
const stmt = db.prepare("INSERT INTO vss_demo VALUES (?)");
stmt.run(embedding.buffer);