small demo fixes

This commit is contained in:
Alex Garcia 2024-05-12 00:15:50 -07:00
parent f532692f7b
commit c446cc3963
3 changed files with 8 additions and 14 deletions

View file

@ -22,7 +22,7 @@ const items = [
]; ];
const query = [0.3, 0.3, 0.3, 0.3]; const query = [0.3, 0.3, 0.3, 0.3];
db.exec("CREATE VIRTUAL TABLE vec_items USING vec0(embedding float[8])"); db.exec("CREATE VIRTUAL TABLE vec_items USING vec0(embedding float[4])");
const insertStmt = db.prepare( const insertStmt = db.prepare(
"INSERT INTO vec_items(rowid, embedding) VALUES (?, vec_f32(?))" "INSERT INTO vec_items(rowid, embedding) VALUES (?, vec_f32(?))"
@ -48,6 +48,6 @@ const rows = db
LIMIT 3 LIMIT 3
` `
) )
.all(query); .all(new Float32Array(query));
console.log(rows); console.log(rows);

View file

@ -1,5 +1,5 @@
import { Database } from "jsr:@db/sqlite@0.11"; import { Database } from "jsr:@db/sqlite@0.11";
import * as sqliteVec from "npm:sqlite-vec@0.0.1-alpha.3"; import * as sqliteVec from "npm:sqlite-vec@0.0.1-alpha.9";
const db = new Database(":memory:"); const db = new Database(":memory:");
db.enableLoadExtension = true; db.enableLoadExtension = true;
@ -8,7 +8,7 @@ db.enableLoadExtension = false;
const [sqlite_version, vec_version] = db const [sqlite_version, vec_version] = db
.prepare("select sqlite_version(), vec_version()") .prepare("select sqlite_version(), vec_version()")
.value<[string]>()!; .value<[string, string]>()!;
console.log(`sqlite_version=${sqlite_version}, vec_version=${vec_version}`); console.log(`sqlite_version=${sqlite_version}, vec_version=${vec_version}`);
const items = [ const items = [

View file

@ -10,25 +10,16 @@ def serialize_f32(vector: List[float]) -> bytes:
return struct.pack("%sf" % len(vector), *vector) return struct.pack("%sf" % len(vector), *vector)
def serialize_int8(vector: List[int]) -> bytes:
"""serializes a list of int8 into a compact "raw bytes" format"""
return struct.pack("%sb" % len(vector), *vector)
db = sqlite3.connect(":memory:") db = sqlite3.connect(":memory:")
db.enable_load_extension(True) db.enable_load_extension(True)
sqlite_vec.load(db) sqlite_vec.load(db)
db.enable_load_extension(False) db.enable_load_extension(False)
sqlite_version, vec_version = db.execute( sqlite_version, vec_version = db.execute(
"select sqlite_version(), vec_version()" "select sqlite_version(), vec_version()"
).fetchone() ).fetchone()
print(f"sqlite_version={sqlite_version}, vec_version={vec_version}") print(f"sqlite_version={sqlite_version}, vec_version={vec_version}")
db.execute("CREATE VIRTUAL TABLE vec_items USING vec0(embedding float[4])")
items = [ items = [
(1, [0.1, 0.1, 0.1, 0.1]), (1, [0.1, 0.1, 0.1, 0.1]),
(2, [0.2, 0.2, 0.2, 0.2]), (2, [0.2, 0.2, 0.2, 0.2]),
@ -36,6 +27,10 @@ items = [
(4, [0.4, 0.4, 0.4, 0.4]), (4, [0.4, 0.4, 0.4, 0.4]),
(5, [0.5, 0.5, 0.5, 0.5]), (5, [0.5, 0.5, 0.5, 0.5]),
] ]
query = [0.3, 0.3, 0.3, 0.3]
db.execute("CREATE VIRTUAL TABLE vec_items USING vec0(embedding float[4])")
with db: with db:
for item in items: for item in items:
db.execute( db.execute(
@ -43,7 +38,6 @@ with db:
[item[0], serialize_f32(item[1])], [item[0], serialize_f32(item[1])],
) )
query = [0.3, 0.3, 0.3, 0.3]
rows = db.execute( rows = db.execute(
""" """
SELECT SELECT