n8n-nodes-minimemory 0.1.0 → 0.3.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/README.md +117 -5
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/nodes/Minimemory/BM25Index.d.ts +108 -0
- package/dist/nodes/Minimemory/BM25Index.d.ts.map +1 -0
- package/dist/nodes/Minimemory/BM25Index.js +259 -0
- package/dist/nodes/Minimemory/BM25Index.js.map +1 -0
- package/dist/nodes/Minimemory/HybridSearch.d.ts +59 -0
- package/dist/nodes/Minimemory/HybridSearch.d.ts.map +1 -0
- package/dist/nodes/Minimemory/HybridSearch.js +158 -0
- package/dist/nodes/Minimemory/HybridSearch.js.map +1 -0
- package/dist/nodes/Minimemory/Minimemory.node.d.ts.map +1 -1
- package/dist/nodes/Minimemory/Minimemory.node.js +230 -13
- package/dist/nodes/Minimemory/Minimemory.node.js.map +1 -1
- package/dist/nodes/Minimemory/TextUtils.d.ts +22 -0
- package/dist/nodes/Minimemory/TextUtils.d.ts.map +1 -0
- package/dist/nodes/Minimemory/TextUtils.js +92 -0
- package/dist/nodes/Minimemory/TextUtils.js.map +1 -0
- package/dist/nodes/Minimemory/VectorDB.d.ts +118 -1
- package/dist/nodes/Minimemory/VectorDB.d.ts.map +1 -1
- package/dist/nodes/Minimemory/VectorDB.js +351 -4
- package/dist/nodes/Minimemory/VectorDB.js.map +1 -1
- package/package.json +3 -6
- package/dist/credentials/MinimemoryConfig.credentials.d.ts +0 -8
- package/dist/credentials/MinimemoryConfig.credentials.d.ts.map +0 -1
- package/dist/credentials/MinimemoryConfig.credentials.js +0 -40
- package/dist/credentials/MinimemoryConfig.credentials.js.map +0 -1
|
@@ -49,6 +49,8 @@ exports.deleteDB = deleteDB;
|
|
|
49
49
|
exports.clearCache = clearCache;
|
|
50
50
|
const fs = __importStar(require("fs"));
|
|
51
51
|
const path = __importStar(require("path"));
|
|
52
|
+
const BM25Index_1 = require("./BM25Index");
|
|
53
|
+
const HybridSearch_1 = require("./HybridSearch");
|
|
52
54
|
/**
|
|
53
55
|
* Calculates cosine distance between two vectors.
|
|
54
56
|
* Returns a value between 0 (identical) and 2 (opposite).
|
|
@@ -98,12 +100,185 @@ function dotProductDistance(a, b) {
|
|
|
98
100
|
}
|
|
99
101
|
return -dot; // Negative so lower = more similar
|
|
100
102
|
}
|
|
103
|
+
// ============================================================================
|
|
104
|
+
// Metadata Filter Evaluation
|
|
105
|
+
// ============================================================================
|
|
106
|
+
/**
|
|
107
|
+
* Gets a nested value from an object using dot notation
|
|
108
|
+
* Example: getNestedValue({ a: { b: 1 } }, 'a.b') => 1
|
|
109
|
+
*/
|
|
110
|
+
function getNestedValue(obj, path) {
|
|
111
|
+
if (!obj)
|
|
112
|
+
return undefined;
|
|
113
|
+
const parts = path.split('.');
|
|
114
|
+
let current = obj;
|
|
115
|
+
for (const part of parts) {
|
|
116
|
+
if (current === null || current === undefined)
|
|
117
|
+
return undefined;
|
|
118
|
+
if (typeof current !== 'object')
|
|
119
|
+
return undefined;
|
|
120
|
+
current = current[part];
|
|
121
|
+
}
|
|
122
|
+
return current;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Compares two values for ordering operations
|
|
126
|
+
*/
|
|
127
|
+
function compareValues(a, b) {
|
|
128
|
+
// Handle dates
|
|
129
|
+
if (a instanceof Date && b instanceof Date) {
|
|
130
|
+
return a.getTime() - b.getTime();
|
|
131
|
+
}
|
|
132
|
+
// Handle date strings
|
|
133
|
+
if (typeof a === 'string' && typeof b === 'string') {
|
|
134
|
+
const dateA = Date.parse(a);
|
|
135
|
+
const dateB = Date.parse(b);
|
|
136
|
+
if (!isNaN(dateA) && !isNaN(dateB)) {
|
|
137
|
+
return dateA - dateB;
|
|
138
|
+
}
|
|
139
|
+
return a.localeCompare(b);
|
|
140
|
+
}
|
|
141
|
+
// Handle numbers
|
|
142
|
+
if (typeof a === 'number' && typeof b === 'number') {
|
|
143
|
+
return a - b;
|
|
144
|
+
}
|
|
145
|
+
// Fallback to string comparison
|
|
146
|
+
return String(a).localeCompare(String(b));
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Checks if a condition object is a filter condition (has operator keys)
|
|
150
|
+
*/
|
|
151
|
+
function isFilterCondition(value) {
|
|
152
|
+
if (!value || typeof value !== 'object')
|
|
153
|
+
return false;
|
|
154
|
+
const keys = Object.keys(value);
|
|
155
|
+
return keys.length > 0 && keys.every(k => k.startsWith('$'));
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Evaluates a single filter condition against a field value
|
|
159
|
+
*/
|
|
160
|
+
function evaluateCondition(fieldValue, condition) {
|
|
161
|
+
const entries = Object.entries(condition);
|
|
162
|
+
for (const [operator, operand] of entries) {
|
|
163
|
+
switch (operator) {
|
|
164
|
+
case '$eq':
|
|
165
|
+
if (fieldValue !== operand)
|
|
166
|
+
return false;
|
|
167
|
+
break;
|
|
168
|
+
case '$ne':
|
|
169
|
+
if (fieldValue === operand)
|
|
170
|
+
return false;
|
|
171
|
+
break;
|
|
172
|
+
case '$gt':
|
|
173
|
+
if (fieldValue === undefined || compareValues(fieldValue, operand) <= 0)
|
|
174
|
+
return false;
|
|
175
|
+
break;
|
|
176
|
+
case '$gte':
|
|
177
|
+
if (fieldValue === undefined || compareValues(fieldValue, operand) < 0)
|
|
178
|
+
return false;
|
|
179
|
+
break;
|
|
180
|
+
case '$lt':
|
|
181
|
+
if (fieldValue === undefined || compareValues(fieldValue, operand) >= 0)
|
|
182
|
+
return false;
|
|
183
|
+
break;
|
|
184
|
+
case '$lte':
|
|
185
|
+
if (fieldValue === undefined || compareValues(fieldValue, operand) > 0)
|
|
186
|
+
return false;
|
|
187
|
+
break;
|
|
188
|
+
case '$in':
|
|
189
|
+
if (!Array.isArray(operand) || !operand.includes(fieldValue))
|
|
190
|
+
return false;
|
|
191
|
+
break;
|
|
192
|
+
case '$nin':
|
|
193
|
+
if (!Array.isArray(operand) || operand.includes(fieldValue))
|
|
194
|
+
return false;
|
|
195
|
+
break;
|
|
196
|
+
case '$exists':
|
|
197
|
+
if (operand === true && fieldValue === undefined)
|
|
198
|
+
return false;
|
|
199
|
+
if (operand === false && fieldValue !== undefined)
|
|
200
|
+
return false;
|
|
201
|
+
break;
|
|
202
|
+
case '$contains':
|
|
203
|
+
if (typeof fieldValue !== 'string' || typeof operand !== 'string')
|
|
204
|
+
return false;
|
|
205
|
+
if (!fieldValue.toLowerCase().includes(operand.toLowerCase()))
|
|
206
|
+
return false;
|
|
207
|
+
break;
|
|
208
|
+
case '$startsWith':
|
|
209
|
+
if (typeof fieldValue !== 'string' || typeof operand !== 'string')
|
|
210
|
+
return false;
|
|
211
|
+
if (!fieldValue.toLowerCase().startsWith(operand.toLowerCase()))
|
|
212
|
+
return false;
|
|
213
|
+
break;
|
|
214
|
+
case '$endsWith':
|
|
215
|
+
if (typeof fieldValue !== 'string' || typeof operand !== 'string')
|
|
216
|
+
return false;
|
|
217
|
+
if (!fieldValue.toLowerCase().endsWith(operand.toLowerCase()))
|
|
218
|
+
return false;
|
|
219
|
+
break;
|
|
220
|
+
default:
|
|
221
|
+
// Unknown operator, ignore
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Evaluates a complete metadata filter against a metadata object
|
|
229
|
+
*/
|
|
230
|
+
function evaluateFilter(metadata, filter) {
|
|
231
|
+
// Handle $and operator
|
|
232
|
+
if (filter.$and) {
|
|
233
|
+
for (const subFilter of filter.$and) {
|
|
234
|
+
if (!evaluateFilter(metadata, subFilter)) {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// Handle $or operator
|
|
240
|
+
if (filter.$or) {
|
|
241
|
+
let anyMatch = false;
|
|
242
|
+
for (const subFilter of filter.$or) {
|
|
243
|
+
if (evaluateFilter(metadata, subFilter)) {
|
|
244
|
+
anyMatch = true;
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (!anyMatch && filter.$or.length > 0) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// Handle field conditions
|
|
253
|
+
for (const [field, condition] of Object.entries(filter)) {
|
|
254
|
+
// Skip logical operators
|
|
255
|
+
if (field === '$and' || field === '$or')
|
|
256
|
+
continue;
|
|
257
|
+
const fieldValue = getNestedValue(metadata, field);
|
|
258
|
+
if (isFilterCondition(condition)) {
|
|
259
|
+
// It's a condition object like { $gt: 5 }
|
|
260
|
+
if (!evaluateCondition(fieldValue, condition)) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
// It's a simple value, treat as $eq
|
|
266
|
+
if (fieldValue !== condition) {
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return true;
|
|
272
|
+
}
|
|
101
273
|
/**
|
|
102
274
|
* In-memory vector database
|
|
103
275
|
*/
|
|
104
276
|
class VectorDB {
|
|
105
277
|
constructor(options) {
|
|
106
278
|
this.vectors = new Map();
|
|
279
|
+
// BM25 index for keyword search (lazy-initialized)
|
|
280
|
+
this.bm25Index = null;
|
|
281
|
+
this.bm25TextFields = [];
|
|
107
282
|
this._dimensions = options.dimensions;
|
|
108
283
|
this._distance = options.distance || 'cosine';
|
|
109
284
|
this._indexType = options.indexType || 'flat';
|
|
@@ -174,6 +349,10 @@ class VectorDB {
|
|
|
174
349
|
metadata: metadata || null,
|
|
175
350
|
norm,
|
|
176
351
|
});
|
|
352
|
+
// Update BM25 index if configured
|
|
353
|
+
if (this.bm25Index) {
|
|
354
|
+
this.bm25Index.addDocument(id, metadata || null);
|
|
355
|
+
}
|
|
177
356
|
}
|
|
178
357
|
/**
|
|
179
358
|
* Updates an existing vector or inserts a new one
|
|
@@ -189,21 +368,35 @@ class VectorDB {
|
|
|
189
368
|
metadata: metadata || null,
|
|
190
369
|
norm,
|
|
191
370
|
});
|
|
371
|
+
// Update BM25 index if configured
|
|
372
|
+
if (this.bm25Index) {
|
|
373
|
+
this.bm25Index.updateDocument(id, metadata || null);
|
|
374
|
+
}
|
|
192
375
|
}
|
|
193
376
|
/**
|
|
194
377
|
* Searches for the k nearest neighbors to the query vector
|
|
378
|
+
* @param query - The query vector
|
|
379
|
+
* @param k - Number of results to return
|
|
380
|
+
* @param options - Optional search options including filter
|
|
195
381
|
*/
|
|
196
|
-
search(query, k) {
|
|
382
|
+
search(query, k, options) {
|
|
383
|
+
var _a;
|
|
197
384
|
if (query.length !== this._dimensions) {
|
|
198
385
|
throw new Error(`Query dimension mismatch: expected ${this._dimensions}, got ${query.length}`);
|
|
199
386
|
}
|
|
200
387
|
if (this.vectors.size === 0) {
|
|
201
388
|
return [];
|
|
202
389
|
}
|
|
390
|
+
const filter = options === null || options === void 0 ? void 0 : options.filter;
|
|
391
|
+
const minSimilarity = (_a = options === null || options === void 0 ? void 0 : options.minSimilarity) !== null && _a !== void 0 ? _a : 0;
|
|
203
392
|
const queryNorm = this._distance === 'cosine' ? this.computeNorm(query) : undefined;
|
|
204
393
|
// Calculate distances to all vectors
|
|
205
394
|
const results = [];
|
|
206
395
|
for (const stored of this.vectors.values()) {
|
|
396
|
+
// Apply metadata filter if provided
|
|
397
|
+
if (filter && !evaluateFilter(stored.metadata, filter)) {
|
|
398
|
+
continue;
|
|
399
|
+
}
|
|
207
400
|
const distance = this.calculateDistance(query, stored.vector, queryNorm, stored.norm);
|
|
208
401
|
// Calculate similarity (1 - distance for cosine, inverse for others)
|
|
209
402
|
let similarity;
|
|
@@ -216,6 +409,10 @@ class VectorDB {
|
|
|
216
409
|
else {
|
|
217
410
|
similarity = 1 / (1 + distance); // Normalize euclidean
|
|
218
411
|
}
|
|
412
|
+
// Apply minimum similarity filter
|
|
413
|
+
if (similarity < minSimilarity) {
|
|
414
|
+
continue;
|
|
415
|
+
}
|
|
219
416
|
results.push({
|
|
220
417
|
id: stored.id,
|
|
221
418
|
distance,
|
|
@@ -228,6 +425,14 @@ class VectorDB {
|
|
|
228
425
|
// Return the k nearest neighbors
|
|
229
426
|
return results.slice(0, Math.min(k, results.length));
|
|
230
427
|
}
|
|
428
|
+
/**
|
|
429
|
+
* Searches with a filter object for more complex queries
|
|
430
|
+
* @param query - The query vector
|
|
431
|
+
* @param options - Search options including k, filter, minSimilarity
|
|
432
|
+
*/
|
|
433
|
+
searchWithOptions(query, options) {
|
|
434
|
+
return this.search(query, options.k, options);
|
|
435
|
+
}
|
|
231
436
|
/**
|
|
232
437
|
* Gets a vector by its ID
|
|
233
438
|
*/
|
|
@@ -245,7 +450,12 @@ class VectorDB {
|
|
|
245
450
|
* Deletes a vector by its ID
|
|
246
451
|
*/
|
|
247
452
|
delete(id) {
|
|
248
|
-
|
|
453
|
+
const deleted = this.vectors.delete(id);
|
|
454
|
+
// Update BM25 index if configured
|
|
455
|
+
if (deleted && this.bm25Index) {
|
|
456
|
+
this.bm25Index.removeDocument(id);
|
|
457
|
+
}
|
|
458
|
+
return deleted;
|
|
249
459
|
}
|
|
250
460
|
/**
|
|
251
461
|
* Checks if a vector with the given ID exists
|
|
@@ -258,6 +468,10 @@ class VectorDB {
|
|
|
258
468
|
*/
|
|
259
469
|
clear() {
|
|
260
470
|
this.vectors.clear();
|
|
471
|
+
// Clear BM25 index if configured
|
|
472
|
+
if (this.bm25Index) {
|
|
473
|
+
this.bm25Index.clear();
|
|
474
|
+
}
|
|
261
475
|
}
|
|
262
476
|
/**
|
|
263
477
|
* Gets all vector IDs
|
|
@@ -265,17 +479,140 @@ class VectorDB {
|
|
|
265
479
|
getIds() {
|
|
266
480
|
return Array.from(this.vectors.keys());
|
|
267
481
|
}
|
|
482
|
+
// ============================================================================
|
|
483
|
+
// BM25 Keyword Search Methods
|
|
484
|
+
// ============================================================================
|
|
485
|
+
/**
|
|
486
|
+
* Configures the BM25 index for keyword search
|
|
487
|
+
*/
|
|
488
|
+
configureBM25(options) {
|
|
489
|
+
// If already configured with same fields, just update parameters
|
|
490
|
+
if (this.bm25Index &&
|
|
491
|
+
JSON.stringify(this.bm25TextFields) === JSON.stringify(options.textFields)) {
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
// Create new BM25 index
|
|
495
|
+
this.bm25Index = new BM25Index_1.BM25Index({
|
|
496
|
+
textFields: options.textFields,
|
|
497
|
+
k1: options.k1,
|
|
498
|
+
b: options.b,
|
|
499
|
+
});
|
|
500
|
+
this.bm25TextFields = [...options.textFields];
|
|
501
|
+
// Index all existing documents
|
|
502
|
+
for (const stored of this.vectors.values()) {
|
|
503
|
+
this.bm25Index.addDocument(stored.id, stored.metadata);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* Ensures BM25 index is configured (lazy initialization)
|
|
508
|
+
*/
|
|
509
|
+
ensureBM25Index(textFields, k1, b) {
|
|
510
|
+
if (!this.bm25Index || JSON.stringify(this.bm25TextFields) !== JSON.stringify(textFields)) {
|
|
511
|
+
this.configureBM25({ textFields, k1, b });
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Checks if BM25 index is configured
|
|
516
|
+
*/
|
|
517
|
+
hasBM25Index() {
|
|
518
|
+
return this.bm25Index !== null;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Gets BM25 index statistics
|
|
522
|
+
*/
|
|
523
|
+
getBM25Stats() {
|
|
524
|
+
if (!this.bm25Index)
|
|
525
|
+
return null;
|
|
526
|
+
return this.bm25Index.getStats();
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Performs keyword-only search using BM25
|
|
530
|
+
*/
|
|
531
|
+
keywordSearch(query, k, options) {
|
|
532
|
+
const textFields = (options === null || options === void 0 ? void 0 : options.textFields) || this.bm25TextFields;
|
|
533
|
+
if (textFields.length === 0) {
|
|
534
|
+
throw new Error('No text fields specified for keyword search. ' +
|
|
535
|
+
'Provide textFields option or call configureBM25() first.');
|
|
536
|
+
}
|
|
537
|
+
// Ensure BM25 index is ready
|
|
538
|
+
this.ensureBM25Index(textFields, options === null || options === void 0 ? void 0 : options.k1, options === null || options === void 0 ? void 0 : options.b);
|
|
539
|
+
// Perform search
|
|
540
|
+
let results = this.bm25Index.search(query, k * 2); // Fetch more for filtering
|
|
541
|
+
// Apply metadata filter if provided
|
|
542
|
+
if (options === null || options === void 0 ? void 0 : options.filter) {
|
|
543
|
+
results = results.filter(r => {
|
|
544
|
+
const stored = this.vectors.get(r.id);
|
|
545
|
+
return stored && evaluateFilter(stored.metadata, options.filter);
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
// Return top k
|
|
549
|
+
return results.slice(0, k);
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Performs hybrid search combining vector and keyword search
|
|
553
|
+
*/
|
|
554
|
+
hybridSearch(options) {
|
|
555
|
+
const { mode, k, queryVector, keywords, textFields = this.bm25TextFields.length > 0 ? this.bm25TextFields : ['content', 'text', 'title'], filter, minSimilarity, alpha = 0.5, fusionMethod = 'rrf', rrfConstant = 60, bm25K1, bm25B, } = options;
|
|
556
|
+
// Vector-only search
|
|
557
|
+
if (mode === 'vector') {
|
|
558
|
+
if (!queryVector) {
|
|
559
|
+
throw new Error('queryVector is required for vector search mode');
|
|
560
|
+
}
|
|
561
|
+
return this.search(queryVector, k, { filter, minSimilarity }).map(r => ({
|
|
562
|
+
id: r.id,
|
|
563
|
+
score: r.similarity,
|
|
564
|
+
vectorSimilarity: r.similarity,
|
|
565
|
+
metadata: r.metadata,
|
|
566
|
+
}));
|
|
567
|
+
}
|
|
568
|
+
// Keyword-only search
|
|
569
|
+
if (mode === 'keyword') {
|
|
570
|
+
if (!keywords) {
|
|
571
|
+
throw new Error('keywords is required for keyword search mode');
|
|
572
|
+
}
|
|
573
|
+
return this.keywordSearch(keywords, k, { textFields, filter, k1: bm25K1, b: bm25B }).map(r => ({
|
|
574
|
+
id: r.id,
|
|
575
|
+
score: r.score,
|
|
576
|
+
keywordScore: r.score,
|
|
577
|
+
metadata: r.metadata,
|
|
578
|
+
}));
|
|
579
|
+
}
|
|
580
|
+
// Hybrid search
|
|
581
|
+
if (!queryVector) {
|
|
582
|
+
throw new Error('queryVector is required for hybrid search mode');
|
|
583
|
+
}
|
|
584
|
+
if (!keywords) {
|
|
585
|
+
throw new Error('keywords is required for hybrid search mode');
|
|
586
|
+
}
|
|
587
|
+
// Perform both searches (fetch more to allow for filtering and fusion)
|
|
588
|
+
const fetchK = Math.max(k * 3, 50);
|
|
589
|
+
const vectorResults = this.search(queryVector, fetchK, { filter, minSimilarity });
|
|
590
|
+
const keywordResults = this.keywordSearch(keywords, fetchK, { textFields, filter, k1: bm25K1, b: bm25B });
|
|
591
|
+
// Convert to fusion format
|
|
592
|
+
const vectorForFusion = vectorResults.map(r => ({
|
|
593
|
+
id: r.id,
|
|
594
|
+
distance: r.distance,
|
|
595
|
+
similarity: r.similarity,
|
|
596
|
+
metadata: r.metadata,
|
|
597
|
+
}));
|
|
598
|
+
// Perform fusion
|
|
599
|
+
return (0, HybridSearch_1.hybridFusion)(vectorForFusion, keywordResults, k, fusionMethod, { alpha, rrfConstant });
|
|
600
|
+
}
|
|
268
601
|
/**
|
|
269
602
|
* Saves the database to a JSON file
|
|
270
603
|
*/
|
|
271
604
|
save(filePath) {
|
|
272
605
|
const data = {
|
|
273
|
-
version: '
|
|
606
|
+
version: '2.0.0', // Bump version for BM25 support
|
|
274
607
|
dimensions: this._dimensions,
|
|
275
608
|
distance: this._distance,
|
|
276
609
|
indexType: this._indexType,
|
|
277
610
|
vectors: Array.from(this.vectors.values()),
|
|
278
611
|
};
|
|
612
|
+
// Include BM25 index if configured
|
|
613
|
+
if (this.bm25Index) {
|
|
614
|
+
data.bm25Index = this.bm25Index.serialize();
|
|
615
|
+
}
|
|
279
616
|
// Create directory if it doesn't exist
|
|
280
617
|
const dir = path.dirname(filePath);
|
|
281
618
|
if (!fs.existsSync(dir)) {
|
|
@@ -306,19 +643,29 @@ class VectorDB {
|
|
|
306
643
|
norm: stored.norm,
|
|
307
644
|
});
|
|
308
645
|
}
|
|
646
|
+
// Load BM25 index if present (v2 format)
|
|
647
|
+
if (data.bm25Index) {
|
|
648
|
+
db.bm25Index = BM25Index_1.BM25Index.deserialize(data.bm25Index);
|
|
649
|
+
db.bm25TextFields = data.bm25Index.textFields;
|
|
650
|
+
}
|
|
309
651
|
return db;
|
|
310
652
|
}
|
|
311
653
|
/**
|
|
312
654
|
* Exports database statistics
|
|
313
655
|
*/
|
|
314
656
|
stats() {
|
|
315
|
-
|
|
657
|
+
const stats = {
|
|
316
658
|
dimensions: this._dimensions,
|
|
317
659
|
distance: this._distance,
|
|
318
660
|
indexType: this._indexType,
|
|
319
661
|
vectorCount: this.vectors.size,
|
|
320
662
|
memoryEstimateMB: (this.vectors.size * this._dimensions * 4) / (1024 * 1024),
|
|
321
663
|
};
|
|
664
|
+
// Add BM25 stats if configured
|
|
665
|
+
if (this.bm25Index) {
|
|
666
|
+
stats.bm25 = this.bm25Index.getStats();
|
|
667
|
+
}
|
|
668
|
+
return stats;
|
|
322
669
|
}
|
|
323
670
|
}
|
|
324
671
|
exports.VectorDB = VectorDB;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorDB.js","sourceRoot":"","sources":["../../../nodes/Minimemory/VectorDB.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VectorDB.js","sourceRoot":"","sources":["../../../nodes/Minimemory/VectorDB.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-minimemory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "n8n community node for embedded vector database - perform similarity search directly within n8n without external servers",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Mauricio Perera",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "tsc && shx cp nodes/Minimemory/*.svg dist/nodes/Minimemory/",
|
|
30
30
|
"dev": "tsc --watch",
|
|
31
|
-
"lint": "eslint nodes
|
|
32
|
-
"lintfix": "eslint nodes
|
|
31
|
+
"lint": "eslint nodes --ext .ts",
|
|
32
|
+
"lintfix": "eslint nodes --ext .ts --fix",
|
|
33
33
|
"prepublishOnly": "npm run build && npm run lint",
|
|
34
34
|
"release": "npm run build && npm publish --access public"
|
|
35
35
|
},
|
|
@@ -37,9 +37,6 @@
|
|
|
37
37
|
"n8nNodesApiVersion": 1,
|
|
38
38
|
"nodes": [
|
|
39
39
|
"dist/nodes/Minimemory/Minimemory.node.js"
|
|
40
|
-
],
|
|
41
|
-
"credentials": [
|
|
42
|
-
"dist/credentials/MinimemoryConfig.credentials.js"
|
|
43
40
|
]
|
|
44
41
|
},
|
|
45
42
|
"files": [
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
-
export declare class MinimemoryConfig implements ICredentialType {
|
|
3
|
-
name: string;
|
|
4
|
-
displayName: string;
|
|
5
|
-
documentationUrl: string;
|
|
6
|
-
properties: INodeProperties[];
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=MinimemoryConfig.credentials.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MinimemoryConfig.credentials.d.ts","sourceRoot":"","sources":["../../credentials/MinimemoryConfig.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,qBAAa,gBAAiB,YAAW,eAAe;IACvD,IAAI,SAAsB;IAC1B,WAAW,SAA8B;IACzC,gBAAgB,SAA8C;IAE9D,UAAU,EAAE,eAAe,EAAE,CA2B3B;CACF"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MinimemoryConfig = void 0;
|
|
4
|
-
class MinimemoryConfig {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.name = 'minimemoryConfig';
|
|
7
|
-
this.displayName = 'Minimemory Configuration';
|
|
8
|
-
this.documentationUrl = 'https://github.com/minimemory/minimemory';
|
|
9
|
-
this.properties = [
|
|
10
|
-
{
|
|
11
|
-
displayName: 'Default Data Directory',
|
|
12
|
-
name: 'dataDirectory',
|
|
13
|
-
type: 'string',
|
|
14
|
-
default: './data/minimemory',
|
|
15
|
-
description: 'Default directory for storing .mmdb database files',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
displayName: 'Default Dimensions',
|
|
19
|
-
name: 'defaultDimensions',
|
|
20
|
-
type: 'number',
|
|
21
|
-
default: 384,
|
|
22
|
-
description: 'Default number of dimensions for new databases (384 for all-MiniLM-L6-v2, 1536 for OpenAI)',
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
displayName: 'Default Distance Metric',
|
|
26
|
-
name: 'defaultDistance',
|
|
27
|
-
type: 'options',
|
|
28
|
-
options: [
|
|
29
|
-
{ name: 'Cosine', value: 'cosine' },
|
|
30
|
-
{ name: 'Euclidean', value: 'euclidean' },
|
|
31
|
-
{ name: 'Dot Product', value: 'dot' },
|
|
32
|
-
],
|
|
33
|
-
default: 'cosine',
|
|
34
|
-
description: 'Default distance metric for new databases',
|
|
35
|
-
},
|
|
36
|
-
];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.MinimemoryConfig = MinimemoryConfig;
|
|
40
|
-
//# sourceMappingURL=MinimemoryConfig.credentials.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MinimemoryConfig.credentials.js","sourceRoot":"","sources":["../../credentials/MinimemoryConfig.credentials.ts"],"names":[],"mappings":";;;AAKA,MAAa,gBAAgB;IAA7B;QACC,SAAI,GAAG,kBAAkB,CAAC;QAC1B,gBAAW,GAAG,0BAA0B,CAAC;QACzC,qBAAgB,GAAG,0CAA0C,CAAC;QAE9D,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,wBAAwB;gBACrC,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB;gBAC5B,WAAW,EAAE,oDAAoD;aACjE;YACD;gBACC,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,4FAA4F;aACzG;YACD;gBACC,WAAW,EAAE,yBAAyB;gBACtC,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACnC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;oBACzC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;iBACrC;gBACD,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,2CAA2C;aACxD;SACD,CAAC;IACH,CAAC;CAAA;AAjCD,4CAiCC"}
|