Runs everywhere
On laptops, servers, mobile devices, browsers with WASM, Raspberry Pis, and more!
-- store 768-dimensional vectors in a vec0 virtual table
create virtual table vec_movies using vec0(
synopsis_embedding float[768]
);
-- insert vectors into the table, as JSON or compact BLOBs
insert into vec_movies(rowid, synopsis_embedding)
select
rowid,
embed(synopsis) as synopsis_embedding
from movies;
-- KNN search!
select
rowid,
distance
from vec_movies
where synopsis_embedding match embed('scary futuristic movies')
order by distance
limit 20;