@lancedb/lancedb 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/arrow.d.ts +2 -3
  2. package/dist/arrow.js +2 -27
  3. package/dist/connection.d.ts +9 -0
  4. package/dist/connection.js +16 -2
  5. package/dist/embedding/embedding_function.d.ts +11 -0
  6. package/dist/embedding/embedding_function.js +28 -7
  7. package/dist/embedding/index.d.ts +2 -1
  8. package/dist/embedding/index.js +7 -6
  9. package/dist/embedding/openai.d.ts +1 -1
  10. package/dist/embedding/registry.d.ts +9 -7
  11. package/dist/embedding/registry.js +24 -6
  12. package/dist/embedding/transformers.d.ts +37 -0
  13. package/dist/embedding/transformers.js +147 -0
  14. package/dist/index.d.ts +1 -1
  15. package/dist/query.js +15 -9
  16. package/dist/remote/client.d.ts +1 -1
  17. package/dist/remote/client.js +6 -8
  18. package/dist/remote/connection.d.ts +2 -3
  19. package/dist/remote/connection.js +2 -2
  20. package/dist/sanitize.js +4 -2
  21. package/dist/table.d.ts +3 -0
  22. package/dist/table.js +1 -1
  23. package/package.json +17 -13
  24. package/Cargo.toml +0 -28
  25. package/biome.json +0 -158
  26. package/build.rs +0 -5
  27. package/dist/native.d.ts +0 -208
  28. package/examples/ann_indexes.ts +0 -49
  29. package/examples/basic.ts +0 -149
  30. package/examples/embedding.ts +0 -83
  31. package/examples/filtering.ts +0 -34
  32. package/examples/jsconfig.json +0 -27
  33. package/examples/package-lock.json +0 -79
  34. package/examples/package.json +0 -18
  35. package/examples/search.ts +0 -37
  36. package/jest.config.js +0 -7
  37. package/lancedb/arrow.ts +0 -947
  38. package/lancedb/connection.ts +0 -333
  39. package/lancedb/embedding/embedding_function.ts +0 -194
  40. package/lancedb/embedding/index.ts +0 -113
  41. package/lancedb/embedding/openai.ts +0 -113
  42. package/lancedb/embedding/registry.ts +0 -188
  43. package/lancedb/index.ts +0 -142
  44. package/lancedb/indices.ts +0 -203
  45. package/lancedb/merge.ts +0 -70
  46. package/lancedb/query.ts +0 -507
  47. package/lancedb/remote/client.ts +0 -221
  48. package/lancedb/remote/connection.ts +0 -201
  49. package/lancedb/remote/index.ts +0 -3
  50. package/lancedb/remote/table.ts +0 -226
  51. package/lancedb/sanitize.ts +0 -588
  52. package/lancedb/table.ts +0 -669
  53. package/lancedb/util.ts +0 -69
  54. package/native.d.ts +0 -208
  55. package/nodejs-artifacts/arrow.d.ts +0 -250
  56. package/nodejs-artifacts/arrow.js +0 -768
  57. package/nodejs-artifacts/connection.d.ts +0 -171
  58. package/nodejs-artifacts/connection.js +0 -135
  59. package/nodejs-artifacts/embedding/embedding_function.d.ts +0 -79
  60. package/nodejs-artifacts/embedding/embedding_function.js +0 -112
  61. package/nodejs-artifacts/embedding/index.d.ts +0 -28
  62. package/nodejs-artifacts/embedding/index.js +0 -114
  63. package/nodejs-artifacts/embedding/openai.d.ts +0 -18
  64. package/nodejs-artifacts/embedding/openai.js +0 -105
  65. package/nodejs-artifacts/embedding/registry.d.ts +0 -53
  66. package/nodejs-artifacts/embedding/registry.js +0 -127
  67. package/nodejs-artifacts/index.d.ts +0 -55
  68. package/nodejs-artifacts/index.js +0 -57
  69. package/nodejs-artifacts/indices.d.ts +0 -165
  70. package/nodejs-artifacts/indices.js +0 -71
  71. package/nodejs-artifacts/merge.d.ts +0 -54
  72. package/nodejs-artifacts/merge.js +0 -64
  73. package/nodejs-artifacts/native.d.ts +0 -208
  74. package/nodejs-artifacts/native.js +0 -330
  75. package/nodejs-artifacts/query.d.ts +0 -283
  76. package/nodejs-artifacts/query.js +0 -448
  77. package/nodejs-artifacts/remote/client.d.ts +0 -28
  78. package/nodejs-artifacts/remote/client.js +0 -172
  79. package/nodejs-artifacts/remote/connection.d.ts +0 -25
  80. package/nodejs-artifacts/remote/connection.js +0 -110
  81. package/nodejs-artifacts/remote/index.d.ts +0 -3
  82. package/nodejs-artifacts/remote/index.js +0 -9
  83. package/nodejs-artifacts/remote/table.d.ts +0 -42
  84. package/nodejs-artifacts/remote/table.js +0 -179
  85. package/nodejs-artifacts/sanitize.d.ts +0 -31
  86. package/nodejs-artifacts/sanitize.js +0 -436
  87. package/nodejs-artifacts/table.d.ts +0 -395
  88. package/nodejs-artifacts/table.js +0 -230
  89. package/nodejs-artifacts/util.d.ts +0 -14
  90. package/nodejs-artifacts/util.js +0 -65
  91. package/tsconfig.json +0 -25
  92. package/typedoc.json +0 -10
package/examples/basic.ts DELETED
@@ -1,149 +0,0 @@
1
- // --8<-- [start:imports]
2
- import * as lancedb from "@lancedb/lancedb";
3
- import * as arrow from "apache-arrow";
4
- import { Field, FixedSizeList, Float16, Int32, Schema } from "apache-arrow";
5
-
6
- // --8<-- [end:imports]
7
-
8
- // --8<-- [start:connect]
9
- const uri = "/tmp/lancedb/";
10
- const db = await lancedb.connect(uri);
11
- // --8<-- [end:connect]
12
- {
13
- // --8<-- [start:create_table]
14
- const data = [
15
- { vector: [3.1, 4.1], item: "foo", price: 10.0 },
16
- { vector: [5.9, 26.5], item: "bar", price: 20.0 },
17
- ];
18
- const _tbl = await db.createTable("myTable", data);
19
- // --8<-- [end:create_table]
20
- {
21
- // --8<-- [start:create_table_exists_ok]
22
- const _tbl = await db.createTable("myTable", data, {
23
- existsOk: true,
24
- });
25
- // --8<-- [end:create_table_exists_ok]
26
- }
27
- {
28
- // --8<-- [start:create_table_overwrite]
29
- const _tbl = await db.createTable("myTable", data, {
30
- mode: "overwrite",
31
- });
32
- // --8<-- [end:create_table_overwrite]
33
- }
34
- }
35
-
36
- {
37
- // --8<-- [start:create_table_with_schema]
38
- const schema = new arrow.Schema([
39
- new arrow.Field(
40
- "vector",
41
- new arrow.FixedSizeList(
42
- 2,
43
- new arrow.Field("item", new arrow.Float32(), true),
44
- ),
45
- ),
46
- new arrow.Field("item", new arrow.Utf8(), true),
47
- new arrow.Field("price", new arrow.Float32(), true),
48
- ]);
49
- const data = [
50
- { vector: [3.1, 4.1], item: "foo", price: 10.0 },
51
- { vector: [5.9, 26.5], item: "bar", price: 20.0 },
52
- ];
53
- const _tbl = await db.createTable("myTable", data, {
54
- schema,
55
- });
56
- // --8<-- [end:create_table_with_schema]
57
- }
58
-
59
- {
60
- // --8<-- [start:create_empty_table]
61
- const schema = new arrow.Schema([
62
- new arrow.Field(
63
- "vector",
64
- new arrow.FixedSizeList(
65
- 2,
66
- new arrow.Field("item", new arrow.Float32(), true),
67
- ),
68
- ),
69
- ]);
70
- const _tbl = await db.createEmptyTable("empty_table", schema);
71
- // --8<-- [end:create_empty_table]
72
- }
73
- {
74
- // --8<-- [start:open_table]
75
- const _tbl = await db.openTable("myTable");
76
- // --8<-- [end:open_table]
77
- }
78
-
79
- {
80
- // --8<-- [start:table_names]
81
- const tableNames = await db.tableNames();
82
- console.log(tableNames);
83
- // --8<-- [end:table_names]
84
- }
85
-
86
- const tbl = await db.openTable("myTable");
87
- {
88
- // --8<-- [start:add_data]
89
- const data = [
90
- { vector: [1.3, 1.4], item: "fizz", price: 100.0 },
91
- { vector: [9.5, 56.2], item: "buzz", price: 200.0 },
92
- ];
93
- await tbl.add(data);
94
- // --8<-- [end:add_data]
95
- }
96
- {
97
- // --8<-- [start:vector_search]
98
- const _res = tbl.search([100, 100]).limit(2).toArray();
99
- // --8<-- [end:vector_search]
100
- }
101
- {
102
- const data = Array.from({ length: 1000 })
103
- .fill(null)
104
- .map(() => ({
105
- vector: [Math.random(), Math.random()],
106
- item: "autogen",
107
- price: Math.round(Math.random() * 100),
108
- }));
109
-
110
- await tbl.add(data);
111
- }
112
-
113
- // --8<-- [start:create_index]
114
- await tbl.createIndex("vector");
115
- // --8<-- [end:create_index]
116
-
117
- // --8<-- [start:delete_rows]
118
- await tbl.delete('item = "fizz"');
119
- // --8<-- [end:delete_rows]
120
-
121
- // --8<-- [start:drop_table]
122
- await db.dropTable("myTable");
123
- // --8<-- [end:drop_table]
124
- await db.dropTable("empty_table");
125
-
126
- {
127
- // --8<-- [start:create_f16_table]
128
- const db = await lancedb.connect("/tmp/lancedb");
129
- const dim = 16;
130
- const total = 10;
131
- const f16Schema = new Schema([
132
- new Field("id", new Int32()),
133
- new Field(
134
- "vector",
135
- new FixedSizeList(dim, new Field("item", new Float16(), true)),
136
- false,
137
- ),
138
- ]);
139
- const data = lancedb.makeArrowTable(
140
- Array.from(Array(total), (_, i) => ({
141
- id: i,
142
- vector: Array.from(Array(dim), Math.random),
143
- })),
144
- { schema: f16Schema },
145
- );
146
- const _table = await db.createTable("f16_tbl", data);
147
- // --8<-- [end:create_f16_table]
148
- await db.dropTable("f16_tbl");
149
- }
@@ -1,83 +0,0 @@
1
- // --8<-- [start:imports]
2
- import * as lancedb from "@lancedb/lancedb";
3
- import { LanceSchema, getRegistry, register } from "@lancedb/lancedb/embedding";
4
- import { EmbeddingFunction } from "@lancedb/lancedb/embedding";
5
- import { type Float, Float32, Utf8 } from "apache-arrow";
6
- // --8<-- [end:imports]
7
-
8
- {
9
- // --8<-- [start:openai_embeddings]
10
-
11
- const db = await lancedb.connect("/tmp/db");
12
- const func = getRegistry()
13
- .get("openai")
14
- ?.create({ model: "text-embedding-ada-002" }) as EmbeddingFunction;
15
-
16
- const wordsSchema = LanceSchema({
17
- text: func.sourceField(new Utf8()),
18
- vector: func.vectorField(),
19
- });
20
- const tbl = await db.createEmptyTable("words", wordsSchema, {
21
- mode: "overwrite",
22
- });
23
- await tbl.add([{ text: "hello world" }, { text: "goodbye world" }]);
24
-
25
- const query = "greetings";
26
- const actual = (await (await tbl.search(query)).limit(1).toArray())[0];
27
-
28
- // --8<-- [end:openai_embeddings]
29
- console.log("result = ", actual.text);
30
- }
31
-
32
- {
33
- // --8<-- [start:embedding_function]
34
- const db = await lancedb.connect("/tmp/db");
35
-
36
- @register("my_embedding")
37
- class MyEmbeddingFunction extends EmbeddingFunction<string> {
38
- toJSON(): object {
39
- return {};
40
- }
41
- ndims() {
42
- return 3;
43
- }
44
- embeddingDataType(): Float {
45
- return new Float32();
46
- }
47
- async computeQueryEmbeddings(_data: string) {
48
- // This is a placeholder for a real embedding function
49
- return [1, 2, 3];
50
- }
51
- async computeSourceEmbeddings(data: string[]) {
52
- // This is a placeholder for a real embedding function
53
- return Array.from({ length: data.length }).fill([1, 2, 3]) as number[][];
54
- }
55
- }
56
-
57
- const func = new MyEmbeddingFunction();
58
-
59
- const data = [{ text: "pepperoni" }, { text: "pineapple" }];
60
-
61
- // Option 1: manually specify the embedding function
62
- const table = await db.createTable("vectors", data, {
63
- embeddingFunction: {
64
- function: func,
65
- sourceColumn: "text",
66
- vectorColumn: "vector",
67
- },
68
- mode: "overwrite",
69
- });
70
-
71
- // Option 2: provide the embedding function through a schema
72
-
73
- const schema = LanceSchema({
74
- text: func.sourceField(new Utf8()),
75
- vector: func.vectorField(),
76
- });
77
-
78
- const table2 = await db.createTable("vectors2", data, {
79
- schema,
80
- mode: "overwrite",
81
- });
82
- // --8<-- [end:embedding_function]
83
- }
@@ -1,34 +0,0 @@
1
- import * as lancedb from "@lancedb/lancedb";
2
-
3
- const db = await lancedb.connect("data/sample-lancedb");
4
-
5
- const data = Array.from({ length: 10_000 }, (_, i) => ({
6
- vector: Array(1536).fill(i),
7
- id: i,
8
- item: `item ${i}`,
9
- strId: `${i}`,
10
- }));
11
-
12
- const tbl = await db.createTable("myVectors", data, { mode: "overwrite" });
13
-
14
- // --8<-- [start:search]
15
- const _result = await tbl
16
- .search(Array(1536).fill(0.5))
17
- .limit(1)
18
- .where("id = 10")
19
- .toArray();
20
- // --8<-- [end:search]
21
-
22
- // --8<-- [start:vec_search]
23
- await tbl
24
- .search(Array(1536).fill(0))
25
- .where("(item IN ('item 0', 'item 2')) AND (id > 10)")
26
- .postfilter()
27
- .toArray();
28
- // --8<-- [end:vec_search]
29
-
30
- // --8<-- [start:sql_search]
31
- await tbl.query().where("id = 10").limit(10).toArray();
32
- // --8<-- [end:sql_search]
33
-
34
- console.log("SQL search: done");
@@ -1,27 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- // Enable latest features
4
- "lib": ["ESNext", "DOM"],
5
- "target": "ESNext",
6
- "module": "ESNext",
7
- "moduleDetection": "force",
8
- "jsx": "react-jsx",
9
- "allowJs": true,
10
-
11
- // Bundler mode
12
- "moduleResolution": "bundler",
13
- "allowImportingTsExtensions": true,
14
- "verbatimModuleSyntax": true,
15
- "noEmit": true,
16
-
17
- // Best practices
18
- "strict": true,
19
- "skipLibCheck": true,
20
- "noFallthroughCasesInSwitch": true,
21
-
22
- // Some stricter flags (disabled by default)
23
- "noUnusedLocals": false,
24
- "noUnusedParameters": false,
25
- "noPropertyAccessFromIndexSignature": false
26
- }
27
- }
@@ -1,79 +0,0 @@
1
- {
2
- "name": "examples",
3
- "version": "1.0.0",
4
- "lockfileVersion": 3,
5
- "requires": true,
6
- "packages": {
7
- "": {
8
- "name": "examples",
9
- "version": "1.0.0",
10
- "license": "Apache-2.0",
11
- "dependencies": {
12
- "@lancedb/lancedb": "file:../"
13
- },
14
- "peerDependencies": {
15
- "typescript": "^5.0.0"
16
- }
17
- },
18
- "..": {
19
- "name": "@lancedb/lancedb",
20
- "version": "0.6.0",
21
- "cpu": [
22
- "x64",
23
- "arm64"
24
- ],
25
- "license": "Apache 2.0",
26
- "os": [
27
- "darwin",
28
- "linux",
29
- "win32"
30
- ],
31
- "dependencies": {
32
- "apache-arrow": "^15.0.0",
33
- "axios": "^1.7.2",
34
- "openai": "^4.29.2",
35
- "reflect-metadata": "^0.2.2"
36
- },
37
- "devDependencies": {
38
- "@aws-sdk/client-kms": "^3.33.0",
39
- "@aws-sdk/client-s3": "^3.33.0",
40
- "@biomejs/biome": "^1.7.3",
41
- "@jest/globals": "^29.7.0",
42
- "@napi-rs/cli": "^2.18.0",
43
- "@types/axios": "^0.14.0",
44
- "@types/jest": "^29.1.2",
45
- "@types/tmp": "^0.2.6",
46
- "apache-arrow-old": "npm:apache-arrow@13.0.0",
47
- "eslint": "^8.57.0",
48
- "jest": "^29.7.0",
49
- "shx": "^0.3.4",
50
- "tmp": "^0.2.3",
51
- "ts-jest": "^29.1.2",
52
- "typedoc": "^0.25.7",
53
- "typedoc-plugin-markdown": "^3.17.1",
54
- "typescript": "^5.3.3",
55
- "typescript-eslint": "^7.1.0"
56
- },
57
- "engines": {
58
- "node": ">= 18"
59
- }
60
- },
61
- "node_modules/@lancedb/lancedb": {
62
- "resolved": "..",
63
- "link": true
64
- },
65
- "node_modules/typescript": {
66
- "version": "5.5.2",
67
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz",
68
- "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==",
69
- "peer": true,
70
- "bin": {
71
- "tsc": "bin/tsc",
72
- "tsserver": "bin/tsserver"
73
- },
74
- "engines": {
75
- "node": ">=14.17"
76
- }
77
- }
78
- }
79
- }
@@ -1,18 +0,0 @@
1
- {
2
- "name": "examples",
3
- "version": "1.0.0",
4
- "description": "Examples for LanceDB",
5
- "main": "index.js",
6
- "type": "module",
7
- "scripts": {
8
- "test": "echo \"Error: no test specified\" && exit 1"
9
- },
10
- "author": "Lance Devs",
11
- "license": "Apache-2.0",
12
- "dependencies": {
13
- "@lancedb/lancedb": "file:../"
14
- },
15
- "peerDependencies": {
16
- "typescript": "^5.0.0"
17
- }
18
- }
@@ -1,37 +0,0 @@
1
- // --8<-- [end:import]
2
- import * as fs from "node:fs";
3
- // --8<-- [start:import]
4
- import * as lancedb from "@lancedb/lancedb";
5
-
6
- async function setup() {
7
- fs.rmSync("data/sample-lancedb", { recursive: true, force: true });
8
- const db = await lancedb.connect("data/sample-lancedb");
9
-
10
- const data = Array.from({ length: 10_000 }, (_, i) => ({
11
- vector: Array(1536).fill(i),
12
- id: `${i}`,
13
- content: "",
14
- longId: `${i}`,
15
- }));
16
-
17
- await db.createTable("my_vectors", data);
18
- }
19
-
20
- await setup();
21
-
22
- // --8<-- [start:search1]
23
- const db = await lancedb.connect("data/sample-lancedb");
24
- const tbl = await db.openTable("my_vectors");
25
-
26
- const _results1 = await tbl.search(Array(1536).fill(1.2)).limit(10).toArray();
27
- // --8<-- [end:search1]
28
-
29
- // --8<-- [start:search2]
30
- const _results2 = await tbl
31
- .search(Array(1536).fill(1.2))
32
- .distanceType("cosine")
33
- .limit(10)
34
- .toArray();
35
- // --8<-- [end:search2]
36
-
37
- console.log("search: done");
package/jest.config.js DELETED
@@ -1,7 +0,0 @@
1
- /** @type {import('ts-jest').JestConfigWithTsJest} */
2
- module.exports = {
3
- preset: "ts-jest",
4
- testEnvironment: "node",
5
- moduleDirectories: ["node_modules", "./dist"],
6
- moduleFileExtensions: ["js", "ts"],
7
- };