Skip to content

Commit 65c56b5

Browse files
committed
upgrade libsql-js: 0.4.1 -> 0.4.4
+ add vector sync example
1 parent 017afb7 commit 65c56b5

3 files changed

Lines changed: 86 additions & 149 deletions

File tree

package-lock.json

Lines changed: 34 additions & 148 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { createClient } from "@libsql/client";
2+
import reader from "readline-sync";
3+
4+
async function example() {
5+
const config = {
6+
url: process.env.URL ?? "file:local.db",
7+
syncUrl: process.env.SYNC_URL,
8+
authToken: process.env.AUTH_TOKEN,
9+
};
10+
const db = createClient(config);
11+
await db.sync();
12+
await db.execute(
13+
"CREATE TABLE IF NOT EXISTS movies (title TEXT, embedding FLOAT32(4))",
14+
);
15+
await db.execute(
16+
"CREATE INDEX IF NOT EXISTS movies_idx ON movies (libsql_vector_idx(embedding))",
17+
);
18+
await db.sync();
19+
20+
const title = reader.question("Add movie (title): ");
21+
const embedding = reader.question(
22+
"Add movie (embedding, e.g. [1,2,3,4]): ",
23+
);
24+
25+
await db.execute({
26+
sql: "INSERT INTO movies (title, embedding) VALUES (?, vector32(?))",
27+
args: [title, embedding],
28+
});
29+
30+
await db.sync();
31+
32+
const all = await db.execute(
33+
"SELECT title, vector_extract(embedding) as embedding FROM movies",
34+
);
35+
console.info("all movies:");
36+
for (const row of all.rows) {
37+
console.log(" - " + row.title + ": " + row.embedding);
38+
}
39+
40+
const query = reader.question("KNN query (e.g. [1,2,3,4]): ");
41+
const nn = await db.execute({
42+
sql: "SELECT title, vector_extract(embedding) as embedding FROM vector_top_k('movies_idx', vector32(?), 2) as knn JOIN movies ON knn.id = movies.rowid",
43+
args: [query],
44+
});
45+
console.info("nearest neighbors:");
46+
for (const row of nn.rows) {
47+
console.log(" - " + row.title + ": " + row.embedding);
48+
}
49+
}
50+
51+
example();

packages/libsql-client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
"@libsql/core": "^0.10.0",
106106
"@libsql/hrana-client": "^0.6.2",
107107
"js-base64": "^3.7.5",
108-
"libsql": "^0.4.1",
108+
"libsql": "^0.4.4",
109109
"promise-limit": "^2.7.0"
110110
},
111111
"devDependencies": {

0 commit comments

Comments
 (0)