@aalis/plugin-vectorstore-lancedb 0.5.3 → 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.
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -39
- package/dist/index.js.map +1 -1
- package/package.json +5 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Context } from '@aalis/core';
|
|
2
|
+
import type { ConfigSchema } from '@aalis/plugin-config-api';
|
|
2
3
|
export declare const name = "@aalis/plugin-vectorstore-lancedb";
|
|
3
4
|
export declare const displayName = "LanceDB \u5411\u91CF\u5E93";
|
|
4
5
|
export declare const subsystem = "embedding";
|
|
@@ -8,6 +9,14 @@ export declare const defaultConfig: {
|
|
|
8
9
|
path: string;
|
|
9
10
|
tableName: string;
|
|
10
11
|
optimizeEvery: number;
|
|
12
|
+
cleanupRetentionMinutes: number;
|
|
11
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* 构造匹配 metadata_json 里某个 JSON 字段的 SQL LIKE 谓词(供 LanceDB 原生 delete 用,不载入 JS)。
|
|
16
|
+
* metadata 以紧凑 JSON.stringify 存于 metadata_json 字符串列,字段形如 `"key":<json值>`,其后必跟 `,` 或 `}`。
|
|
17
|
+
* 故按 `"key":<json值>` + 边界 子串匹配:字符串值自带引号(自定界),数字值靠尾随 `,`/`}` 定界,
|
|
18
|
+
* 杜绝「"timestamp":1751 误配 17510」这类数字前缀误删。转义 LIKE 特殊字符(\ % _)与 SQL 单引号。
|
|
19
|
+
*/
|
|
20
|
+
export declare function metaJsonFieldPredicate(key: string, value: unknown): string;
|
|
12
21
|
export declare function apply(ctx: Context, config: Record<string, unknown>): Promise<void>;
|
|
13
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAY7D,eAAO,MAAM,IAAI,sCAAsC,CAAC;AACxD,eAAO,MAAM,WAAW,+BAAgB,CAAC;AACzC,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,QAAQ,UAAkB,CAAC;AAExC,eAAO,MAAM,YAAY,EAAE,YAwB1B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC;AAeF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAK1E;AAqMD,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCxF"}
|
package/dist/index.js
CHANGED
|
@@ -21,15 +21,35 @@ export const configSchema = {
|
|
|
21
21
|
type: 'number',
|
|
22
22
|
label: '压实间隔',
|
|
23
23
|
default: 500,
|
|
24
|
-
description: '每写入多少条向量后后台压实一次(合并碎片 +
|
|
24
|
+
description: '每写入多少条向量后后台压实一次(合并碎片 + 回收作废数据文件)。LanceDB 每次 add 产生一个新碎片与版本,' +
|
|
25
25
|
'不压实会让 data/ 与 _versions/ 无界膨胀、写入越来越慢;设 0 关闭',
|
|
26
26
|
},
|
|
27
|
+
cleanupRetentionMinutes: {
|
|
28
|
+
type: 'number',
|
|
29
|
+
label: '数据文件保留窗(分钟)',
|
|
30
|
+
default: 60,
|
|
31
|
+
description: '压实时回收「此分钟数以前」的作废数据文件。比它更新的文件(含可能在途的写入)一律保留,故对单进程写入安全。' +
|
|
32
|
+
'默认 LanceDB 保留 7 天,高频压实下会让 data/ 累到数百 GB —— 收紧到分钟级即可把库压回真实大小。调大更保守、更占盘。',
|
|
33
|
+
},
|
|
27
34
|
};
|
|
28
35
|
export const defaultConfig = {
|
|
29
36
|
path: 'data:/lancedb',
|
|
30
37
|
tableName: 'vectors',
|
|
31
38
|
optimizeEvery: 500,
|
|
39
|
+
cleanupRetentionMinutes: 60,
|
|
32
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* 构造匹配 metadata_json 里某个 JSON 字段的 SQL LIKE 谓词(供 LanceDB 原生 delete 用,不载入 JS)。
|
|
43
|
+
* metadata 以紧凑 JSON.stringify 存于 metadata_json 字符串列,字段形如 `"key":<json值>`,其后必跟 `,` 或 `}`。
|
|
44
|
+
* 故按 `"key":<json值>` + 边界 子串匹配:字符串值自带引号(自定界),数字值靠尾随 `,`/`}` 定界,
|
|
45
|
+
* 杜绝「"timestamp":1751 误配 17510」这类数字前缀误删。转义 LIKE 特殊字符(\ % _)与 SQL 单引号。
|
|
46
|
+
*/
|
|
47
|
+
export function metaJsonFieldPredicate(key, value) {
|
|
48
|
+
const kv = `"${key}":${JSON.stringify(value)}`;
|
|
49
|
+
const esc = (s) => s.replace(/([\\%_])/g, '\\$1').replace(/'/g, "''");
|
|
50
|
+
const e = esc(kv);
|
|
51
|
+
return `(metadata_json LIKE '%${e},%' ESCAPE '\\' OR metadata_json LIKE '%${e}}%' ESCAPE '\\')`;
|
|
52
|
+
}
|
|
33
53
|
// ===== LanceDB 向量存储实现 =====
|
|
34
54
|
class LanceDBVectorStore {
|
|
35
55
|
db;
|
|
@@ -40,17 +60,32 @@ class LanceDBVectorStore {
|
|
|
40
60
|
tableName;
|
|
41
61
|
/** 每写入多少条后台压实一次;<=0 关闭 */
|
|
42
62
|
optimizeEvery;
|
|
63
|
+
/** 压实时回收多久以前的旧数据文件(分钟)。带时间缓冲,保护可能在途的写入/读取;见 maybeOptimize。 */
|
|
64
|
+
cleanupRetentionMs;
|
|
43
65
|
/** 自上次压实以来的写入计数 */
|
|
44
66
|
addsSinceOptimize = 0;
|
|
45
67
|
/** 压实 single-flight:在途压实期间跳过新一轮,避免叠加(LanceDB 压实与并发写本身安全) */
|
|
46
68
|
optimizing = null;
|
|
69
|
+
/**
|
|
70
|
+
* 结构性表操作串行锁。optimize / deleteByFilter / clear 都会重建或压实整张表文件,
|
|
71
|
+
* 彼此并发会踩踏同一表目录 —— 典型即「后台压实与 /clear 的 dropTable+createTable 重叠」,
|
|
72
|
+
* 导致向量删除不生效(旧向量残留被继续召回)甚至表损坏。三者一律排到本链上串行执行。
|
|
73
|
+
*/
|
|
74
|
+
structuralOps = Promise.resolve();
|
|
47
75
|
logger;
|
|
48
|
-
constructor(dbPath, tableName, optimizeEvery, logger) {
|
|
76
|
+
constructor(dbPath, tableName, optimizeEvery, cleanupRetentionMinutes, logger) {
|
|
49
77
|
this.dbPath = dbPath;
|
|
50
78
|
this.tableName = tableName;
|
|
51
79
|
this.optimizeEvery = optimizeEvery;
|
|
80
|
+
this.cleanupRetentionMs = Math.max(1, cleanupRetentionMinutes) * 60_000;
|
|
52
81
|
this.logger = logger;
|
|
53
82
|
}
|
|
83
|
+
/** 把结构性表操作排到同一条串行链上执行,杜绝压实与重建互相踩踏。 */
|
|
84
|
+
serialize(fn) {
|
|
85
|
+
const run = this.structuralOps.then(fn, fn);
|
|
86
|
+
this.structuralOps = run.then(() => undefined, () => undefined);
|
|
87
|
+
return run;
|
|
88
|
+
}
|
|
54
89
|
/** 初始化连接(必须在使用前调用) */
|
|
55
90
|
async init() {
|
|
56
91
|
this.db = await connect(this.dbPath);
|
|
@@ -81,9 +116,10 @@ class LanceDBVectorStore {
|
|
|
81
116
|
this.maybeOptimize();
|
|
82
117
|
}
|
|
83
118
|
/**
|
|
84
|
-
* 达到间隔阈值后后台压实:合并每条 add
|
|
85
|
-
*
|
|
86
|
-
*
|
|
119
|
+
* 达到间隔阈值后后台压实:合并每条 add 产生的碎片,并回收 cleanupRetentionMinutes 以前的作废数据文件
|
|
120
|
+
* (见 optimize 调用处注释——不显式传窗口会吃默认 7 天保留、data/ 膨胀到数百 GB)。
|
|
121
|
+
* 不 await(不阻塞写入延迟)、single-flight(在途压实期间跳过)、经 serialize 与 delete/clear 互斥、
|
|
122
|
+
* 吞错(压实失败不影响写入,下轮重试)。
|
|
87
123
|
*/
|
|
88
124
|
maybeOptimize() {
|
|
89
125
|
if (this.optimizeEvery <= 0 || this.optimizing)
|
|
@@ -91,12 +127,23 @@ class LanceDBVectorStore {
|
|
|
91
127
|
if (++this.addsSinceOptimize < this.optimizeEvery)
|
|
92
128
|
return;
|
|
93
129
|
this.addsSinceOptimize = 0;
|
|
94
|
-
|
|
95
|
-
if (!table)
|
|
130
|
+
if (!this.table)
|
|
96
131
|
return;
|
|
97
|
-
this.
|
|
98
|
-
|
|
132
|
+
// 经串行锁执行:与 deleteByFilter/clear 互斥。锁内读 this.table(而非捕获旧引用),
|
|
133
|
+
// 确保压实的是当前表——若排队期间 /clear 重建了表,则压实新表;若表已被清空则跳过。
|
|
134
|
+
this.optimizing = this.serialize(async () => {
|
|
135
|
+
const t = this.table;
|
|
136
|
+
if (!t)
|
|
137
|
+
return null;
|
|
138
|
+
// 关键:显式传 cleanupOlderThan(否则吃默认 7 天保留窗 → 压实作废的数据文件要留 7 天,
|
|
139
|
+
// 高频压实下 data/ 累到数百 GB)。cleanupOlderThan = 现在 - 保留窗,deleteUnverified 才能真正
|
|
140
|
+
// 回收 <7 天的作废文件。保留窗留足时间缓冲:比它更新的文件(含可能在途写入)一律不动,故对
|
|
141
|
+
// Aalis 单进程写入安全。回收现在-保留窗之前的全部作废数据文件。
|
|
142
|
+
return t.optimize({ cleanupOlderThan: new Date(Date.now() - this.cleanupRetentionMs), deleteUnverified: true });
|
|
143
|
+
})
|
|
99
144
|
.then(stats => {
|
|
145
|
+
if (!stats)
|
|
146
|
+
return;
|
|
100
147
|
const removed = stats.compaction.fragmentsRemoved;
|
|
101
148
|
const freedMB = Math.round(stats.prune.bytesRemoved / 1024 / 1024);
|
|
102
149
|
if (removed > 0 || freedMB > 0) {
|
|
@@ -130,7 +177,8 @@ class LanceDBVectorStore {
|
|
|
130
177
|
return 0;
|
|
131
178
|
return this.table.countRows();
|
|
132
179
|
}
|
|
133
|
-
|
|
180
|
+
/** 内部清空(不加串行锁):供已持锁的 deleteByFilter 复用,避免自锁死。 */
|
|
181
|
+
async clearInternal() {
|
|
134
182
|
if (this.table) {
|
|
135
183
|
this.table.close();
|
|
136
184
|
this.table = null;
|
|
@@ -142,36 +190,26 @@ class LanceDBVectorStore {
|
|
|
142
190
|
await this.db.dropTable(this.tableName);
|
|
143
191
|
}
|
|
144
192
|
}
|
|
193
|
+
async clear() {
|
|
194
|
+
await this.serialize(() => this.clearInternal());
|
|
195
|
+
}
|
|
145
196
|
async deleteByFilter(filter) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
197
|
+
// 走串行锁:与后台压实/clear 互斥。用 LanceDB 原生 delete(SQL 谓词) 原地删除 ——
|
|
198
|
+
// 绝不把整表读进 JS。旧实现 query().toArray() 全表载入 + 复制重建,在大库(十万+条向量)上
|
|
199
|
+
// 直接 OOM 硬崩(进程被杀、不留日志、终端未复原),且逐轮回滚会 N 次触发。改原生删除后无此风险。
|
|
200
|
+
return this.serialize(async () => {
|
|
201
|
+
if (!this.table)
|
|
202
|
+
return 0;
|
|
203
|
+
const clauses = Object.entries(filter).map(([key, value]) => metaJsonFieldPredicate(key, value));
|
|
204
|
+
if (clauses.length === 0)
|
|
205
|
+
return 0; // 空过滤器不删(防误清全库)
|
|
206
|
+
const before = await this.table.countRows();
|
|
207
|
+
if (before === 0)
|
|
208
|
+
return 0;
|
|
209
|
+
await this.table.delete(clauses.join(' AND '));
|
|
210
|
+
const after = await this.table.countRows();
|
|
211
|
+
return before - after;
|
|
158
212
|
});
|
|
159
|
-
const deleted = before - keep.length;
|
|
160
|
-
if (deleted > 0 && keep.length > 0) {
|
|
161
|
-
// 将 Arrow 格式行转换为纯 JS 对象,避免 schema 推断失败
|
|
162
|
-
const plainRows = keep.map(row => ({
|
|
163
|
-
vector: Array.from(row.vector),
|
|
164
|
-
metadata_json: row.metadata_json,
|
|
165
|
-
}));
|
|
166
|
-
// 重建表
|
|
167
|
-
this.table.close();
|
|
168
|
-
await this.db.dropTable(this.tableName);
|
|
169
|
-
this.table = await this.db.createTable(this.tableName, plainRows);
|
|
170
|
-
}
|
|
171
|
-
else if (deleted > 0 && keep.length === 0) {
|
|
172
|
-
await this.clear();
|
|
173
|
-
}
|
|
174
|
-
return deleted;
|
|
175
213
|
}
|
|
176
214
|
async save() {
|
|
177
215
|
// LanceDB 自动持久化,无需手动 save
|
|
@@ -190,6 +228,7 @@ export async function apply(ctx, config) {
|
|
|
190
228
|
path: config.path ?? 'data:/lancedb',
|
|
191
229
|
tableName: config.tableName ?? 'vectors',
|
|
192
230
|
optimizeEvery: config.optimizeEvery ?? 500,
|
|
231
|
+
cleanupRetentionMinutes: config.cleanupRetentionMinutes ?? 60,
|
|
193
232
|
};
|
|
194
233
|
const storage = createStorageGateway(ctx);
|
|
195
234
|
const dbUri = toUri(cfg.path);
|
|
@@ -198,7 +237,7 @@ export async function apply(ctx, config) {
|
|
|
198
237
|
return;
|
|
199
238
|
}
|
|
200
239
|
const dbPath = await storage.resolveLocalPath(dbUri, 'write');
|
|
201
|
-
const store = new LanceDBVectorStore(dbPath, cfg.tableName, cfg.optimizeEvery, ctx.logger);
|
|
240
|
+
const store = new LanceDBVectorStore(dbPath, cfg.tableName, cfg.optimizeEvery, cfg.cleanupRetentionMinutes, ctx.logger);
|
|
202
241
|
await store.init();
|
|
203
242
|
const count = await store.size();
|
|
204
243
|
ctx.logger.info(`LanceDB 向量数据库已加载: ${count} 条记录, URI=${dbUri}, 表=${cfg.tableName}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAmB,OAAO,EAA4B,MAAM,kBAAkB,CAAC;AAEtF,SAAS,KAAK,CAAC,KAAa;IAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;AAC/C,CAAC;AAED,oBAAoB;AAEpB,MAAM,CAAC,MAAM,IAAI,GAAG,mCAAmC,CAAC;AACxD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,aAAa,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,sCAAsC;KACpD;IACD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE;IACpF,aAAa,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,GAAG;QACZ,WAAW,EACT,6DAA6D;YAC7D,6CAA6C;KAChD;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,EAAE;QACX,WAAW,EACT,uDAAuD;YACvD,wEAAwE;KAC3E;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,eAAe;IACrB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,GAAG;IAClB,uBAAuB,EAAE,EAAE;CAC5B,CAAC;AAeF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW,EAAE,KAAc;IAChE,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtF,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,yBAAyB,CAAC,2CAA2C,CAAC,kBAAkB,CAAC;AAClG,CAAC;AAED,6BAA6B;AAE7B,MAAM,kBAAkB;IACd,EAAE,CAAc;IAChB,KAAK,GAAsB,IAAI,CAAC;IACxC,yEAAyE;IACjE,SAAS,GAA+B,IAAI,CAAC;IACpC,MAAM,CAAS;IACf,SAAS,CAAS;IACnC,0BAA0B;IACT,aAAa,CAAS;IACvC,8DAA8D;IAC7C,kBAAkB,CAAS;IAC5C,mBAAmB;IACX,iBAAiB,GAAG,CAAC,CAAC;IAC9B,4DAA4D;IACpD,UAAU,GAAyB,IAAI,CAAC;IAChD;;;;OAIG;IACK,aAAa,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IACpD,MAAM,CAAkG;IAEhH,YACE,MAAc,EACd,SAAiB,EACjB,aAAqB,EACrB,uBAA+B,EAC/B,MAAqC;QAErC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC,GAAG,MAAM,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,sCAAsC;IAC9B,SAAS,CAAI,EAAoB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,IAAI,CAC3B,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErC,UAAU;QACV,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAgB,EAAE,QAAiC;QAC3D,MAAM,MAAM,GAAG;YACb,MAAM;YACN,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SACxC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,wEAAwE;YACxE,wEAAwE;YACxE,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,OAAO,CAAC,CAAC;gBACvD,OAAO,CAAC,sBAAsB;YAChC,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,uBAAuB;QAC/C,CAAC;QACD,MAAM,IAAI,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACK,aAAa;QACnB,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QACvD,IAAI,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa;YAAE,OAAO;QAC1D,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,4DAA4D;QAC5D,gDAAgD;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACpB,0DAA0D;YAC1D,yEAAyE;YACzE,iDAAiD;YACjD,qCAAqC;YACrC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;QAClH,CAAC,CAAC;aACC,IAAI,CAAC,KAAK,CAAC,EAAE;YACZ,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;YACnE,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,mBAAmB,OAAO,UAAU,KAAK,CAAC,KAAK,CAAC,kBAAkB,WAAW,OAAO,KAAK,CAC1F,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;QACJ,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAqB,EAAE,IAAY;QAC9C,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3C,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE3B,sDAAsD;QACtD,gEAAgE;QAChE,mEAAmE;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAE7G,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAuB,CAA4B;SAC7E,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,iDAAiD;IACzC,KAAK,CAAC,aAAa;QACzB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,uDAAuD;QAC9E,UAAU;QACV,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAA+B;QAClD,0DAA0D;QAC1D,4DAA4D;QAC5D,sDAAsD;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACjG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB;YACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC3C,OAAO,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,0BAA0B;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;CACF;AAED,mBAAmB;AAEnB,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAY,EAAE,MAA+B;IACvE,MAAM,GAAG,GAAkB;QACzB,IAAI,EAAG,MAAM,CAAC,IAAe,IAAI,eAAe;QAChD,SAAS,EAAG,MAAM,CAAC,SAAoB,IAAI,SAAS;QACpD,aAAa,EAAG,MAAM,CAAC,aAAwB,IAAI,GAAG;QACtD,uBAAuB,EAAG,MAAM,CAAC,uBAAkC,IAAI,EAAE;KAC1E,CAAC;IAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAClC,MAAM,EACN,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,aAAa,EACjB,GAAG,CAAC,uBAAuB,EAC3B,GAAG,CAAC,MAAM,CACX,CAAC;IAEF,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IAEnB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,KAAK,aAAa,KAAK,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAEpF,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAEpD,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACvB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-vectorstore-lancedb",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,15 +24,16 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
+
"@aalis/plugin-config-api": ">=0.9.0 <1.0.0",
|
|
27
28
|
"@lancedb/lancedb": "^0.27.1",
|
|
28
29
|
"apache-arrow": "^18.0.0",
|
|
29
|
-
"@aalis/plugin-storage-api": "^0.5.
|
|
30
|
+
"@aalis/plugin-storage-api": "^0.5.5"
|
|
30
31
|
},
|
|
31
32
|
"devDependencies": {
|
|
32
33
|
"@types/node": "^22.0.0",
|
|
33
34
|
"typescript": "^5.7.0",
|
|
34
|
-
"@aalis/
|
|
35
|
-
"@aalis/
|
|
35
|
+
"@aalis/plugin-vectorstore-api": "0.5.0",
|
|
36
|
+
"@aalis/core": "0.9.0"
|
|
36
37
|
},
|
|
37
38
|
"peerDependencies": {
|
|
38
39
|
"@aalis/core": ">=0.2.0 <1.0.0"
|