@n8n/ai-utilities 0.4.2 → 0.5.1
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/cjs/index.d.ts +6 -0
- package/dist/cjs/index.js +18 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/typecheck.tsbuildinfo +1 -1
- package/dist/cjs/utils/fromai-tool-factory.d.ts +14 -0
- package/dist/cjs/utils/fromai-tool-factory.js +45 -0
- package/dist/cjs/utils/fromai-tool-factory.js.map +1 -0
- package/dist/cjs/utils/shared-fields.d.ts +8 -0
- package/dist/cjs/utils/shared-fields.js +159 -0
- package/dist/cjs/utils/shared-fields.js.map +1 -0
- package/dist/cjs/utils/vector-store/MemoryManager/MemoryCalculator.d.ts +7 -0
- package/dist/cjs/utils/vector-store/MemoryManager/MemoryCalculator.js +60 -0
- package/dist/cjs/utils/vector-store/MemoryManager/MemoryCalculator.js.map +1 -0
- package/dist/cjs/utils/vector-store/MemoryManager/MemoryVectorStoreManager.d.ts +34 -0
- package/dist/cjs/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js +186 -0
- package/dist/cjs/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js.map +1 -0
- package/dist/cjs/utils/vector-store/MemoryManager/StoreCleanupService.d.ts +16 -0
- package/dist/cjs/utils/vector-store/MemoryManager/StoreCleanupService.js +105 -0
- package/dist/cjs/utils/vector-store/MemoryManager/StoreCleanupService.js.map +1 -0
- package/dist/cjs/utils/vector-store/MemoryManager/config.d.ts +4 -0
- package/dist/cjs/utils/vector-store/MemoryManager/config.js +48 -0
- package/dist/cjs/utils/vector-store/MemoryManager/config.js.map +1 -0
- package/dist/cjs/utils/vector-store/MemoryManager/types.d.ts +39 -0
- package/dist/cjs/utils/vector-store/MemoryManager/types.js +13 -0
- package/dist/cjs/utils/vector-store/MemoryManager/types.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/constants.d.ts +4 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/constants.js +55 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/constants.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/createVectorStoreNode.d.ts +18 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js +294 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/index.d.ts +6 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/index.js +33 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/index.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/insertOperation.d.ts +5 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/insertOperation.js +48 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/insertOperation.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/loadOperation.d.ts +5 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/loadOperation.js +55 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/loadOperation.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.d.ts +5 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js +74 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.d.ts +5 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js +70 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.d.ts +5 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js +39 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/updateOperation.d.ts +5 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/updateOperation.js +49 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/updateOperation.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/types.d.ts +39 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/types.js +13 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/types.js.map +1 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/utils.d.ts +6 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/utils.js +30 -0
- package/dist/cjs/utils/vector-store/createVectorStoreNode/utils.js.map +1 -0
- package/dist/cjs/utils/vector-store/processDocuments.d.ts +25 -0
- package/dist/cjs/utils/vector-store/processDocuments.js +52 -0
- package/dist/cjs/utils/vector-store/processDocuments.js.map +1 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +17 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/typecheck.tsbuildinfo +1 -1
- package/dist/esm/utils/fromai-tool-factory.d.ts +14 -0
- package/dist/esm/utils/fromai-tool-factory.js +35 -0
- package/dist/esm/utils/fromai-tool-factory.js.map +1 -0
- package/dist/esm/utils/shared-fields.d.ts +8 -0
- package/dist/esm/utils/shared-fields.js +149 -0
- package/dist/esm/utils/shared-fields.js.map +1 -0
- package/dist/esm/utils/vector-store/MemoryManager/MemoryCalculator.d.ts +7 -0
- package/dist/esm/utils/vector-store/MemoryManager/MemoryCalculator.js +50 -0
- package/dist/esm/utils/vector-store/MemoryManager/MemoryCalculator.js.map +1 -0
- package/dist/esm/utils/vector-store/MemoryManager/MemoryVectorStoreManager.d.ts +34 -0
- package/dist/esm/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js +176 -0
- package/dist/esm/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js.map +1 -0
- package/dist/esm/utils/vector-store/MemoryManager/StoreCleanupService.d.ts +16 -0
- package/dist/esm/utils/vector-store/MemoryManager/StoreCleanupService.js +95 -0
- package/dist/esm/utils/vector-store/MemoryManager/StoreCleanupService.js.map +1 -0
- package/dist/esm/utils/vector-store/MemoryManager/config.d.ts +4 -0
- package/dist/esm/utils/vector-store/MemoryManager/config.js +38 -0
- package/dist/esm/utils/vector-store/MemoryManager/config.js.map +1 -0
- package/dist/esm/utils/vector-store/MemoryManager/types.d.ts +39 -0
- package/dist/esm/utils/vector-store/MemoryManager/types.js +3 -0
- package/dist/esm/utils/vector-store/MemoryManager/types.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/constants.d.ts +4 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/constants.js +45 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/constants.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/createVectorStoreNode.d.ts +18 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js +284 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/index.d.ts +6 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/index.js +23 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/index.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/insertOperation.d.ts +5 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/insertOperation.js +38 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/insertOperation.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/loadOperation.d.ts +5 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/loadOperation.js +45 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/loadOperation.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.d.ts +5 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js +64 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.d.ts +5 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js +60 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.d.ts +5 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js +29 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/updateOperation.d.ts +5 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/updateOperation.js +39 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/operations/updateOperation.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/types.d.ts +39 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/types.js +3 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/types.js.map +1 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/utils.d.ts +6 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/utils.js +20 -0
- package/dist/esm/utils/vector-store/createVectorStoreNode/utils.js.map +1 -0
- package/dist/esm/utils/vector-store/processDocuments.d.ts +25 -0
- package/dist/esm/utils/vector-store/processDocuments.js +42 -0
- package/dist/esm/utils/vector-store/processDocuments.js.map +1 -0
- package/package.json +9 -6
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConfig = getConfig;
|
|
4
|
+
exports.mbToBytes = mbToBytes;
|
|
5
|
+
exports.hoursToMs = hoursToMs;
|
|
6
|
+
const DEFAULT_MAX_MEMORY_MB = -1;
|
|
7
|
+
const DEFAULT_INACTIVE_TTL_HOURS = -1;
|
|
8
|
+
function getConfig() {
|
|
9
|
+
let maxMemoryMB = DEFAULT_MAX_MEMORY_MB;
|
|
10
|
+
if (process.env.N8N_VECTOR_STORE_MAX_MEMORY) {
|
|
11
|
+
const parsed = parseInt(process.env.N8N_VECTOR_STORE_MAX_MEMORY, 10);
|
|
12
|
+
if (!isNaN(parsed)) {
|
|
13
|
+
maxMemoryMB = parsed;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
let ttlHours = DEFAULT_INACTIVE_TTL_HOURS;
|
|
17
|
+
if (process.env.N8N_VECTOR_STORE_TTL_HOURS) {
|
|
18
|
+
const parsed = parseInt(process.env.N8N_VECTOR_STORE_TTL_HOURS, 10);
|
|
19
|
+
if (!isNaN(parsed)) {
|
|
20
|
+
ttlHours = parsed;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
maxMemoryMB,
|
|
25
|
+
ttlHours,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function mbToBytes(mb) {
|
|
29
|
+
if (mb <= 0)
|
|
30
|
+
return -1;
|
|
31
|
+
return mb * 1024 * 1024;
|
|
32
|
+
}
|
|
33
|
+
function hoursToMs(hours) {
|
|
34
|
+
if (hours <= 0)
|
|
35
|
+
return -1;
|
|
36
|
+
return hours * 60 * 60 * 1000;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/utils/vector-store/MemoryManager/config.ts"],"names":[],"mappings":";;AASA,8BAuBC;AAKD,8BAIC;AAKD,8BAIC;AA/CD,MAAM,qBAAqB,GAAG,CAAC,CAAC,CAAC;AACjC,MAAM,0BAA0B,GAAG,CAAC,CAAC,CAAC;AAKtC,SAAgB,SAAS;IAExB,IAAI,WAAW,GAAG,qBAAqB,CAAC;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,WAAW,GAAG,MAAM,CAAC;QACtB,CAAC;IACF,CAAC;IAGD,IAAI,QAAQ,GAAG,0BAA0B,CAAC;IAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,QAAQ,GAAG,MAAM,CAAC;QACnB,CAAC;IACF,CAAC;IAED,OAAO;QACN,WAAW;QACX,QAAQ;KACR,CAAC;AACH,CAAC;AAKD,SAAgB,SAAS,CAAC,EAAU;IAEnC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACzB,CAAC;AAKD,SAAgB,SAAS,CAAC,KAAa;IAEtC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IAC1B,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { MemoryVectorStore } from '@langchain/classic/vectorstores/memory';
|
|
2
|
+
import type { Document } from '@langchain/core/documents';
|
|
3
|
+
export interface MemoryVectorStoreConfig {
|
|
4
|
+
maxMemoryMB: number;
|
|
5
|
+
ttlHours: number;
|
|
6
|
+
}
|
|
7
|
+
export interface VectorStoreMetadata {
|
|
8
|
+
size: number;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
lastAccessed: Date;
|
|
11
|
+
}
|
|
12
|
+
export interface StoreStats {
|
|
13
|
+
sizeBytes: number;
|
|
14
|
+
sizeMB: number;
|
|
15
|
+
percentOfTotal: number;
|
|
16
|
+
vectors: number;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
lastAccessed: string;
|
|
19
|
+
inactive?: boolean;
|
|
20
|
+
inactiveForHours?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface VectorStoreStats {
|
|
23
|
+
totalSizeBytes: number;
|
|
24
|
+
totalSizeMB: number;
|
|
25
|
+
percentOfLimit: number;
|
|
26
|
+
maxMemoryMB: number;
|
|
27
|
+
storeCount: number;
|
|
28
|
+
inactiveStoreCount: number;
|
|
29
|
+
ttlHours: number;
|
|
30
|
+
stores: Record<string, StoreStats>;
|
|
31
|
+
}
|
|
32
|
+
export interface IMemoryCalculator {
|
|
33
|
+
estimateBatchSize(documents: Document[]): number;
|
|
34
|
+
calculateVectorStoreSize(vectorStore: MemoryVectorStore): number;
|
|
35
|
+
}
|
|
36
|
+
export interface IStoreCleanupService {
|
|
37
|
+
cleanupInactiveStores(): void;
|
|
38
|
+
cleanupOldestStores(requiredBytes: number): void;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/utils/vector-store/MemoryManager/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OPERATION_MODE_DESCRIPTIONS = exports.DEFAULT_OPERATION_MODES = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
exports.DEFAULT_OPERATION_MODES = [
|
|
6
|
+
'load',
|
|
7
|
+
'insert',
|
|
8
|
+
'retrieve',
|
|
9
|
+
'retrieve-as-tool',
|
|
10
|
+
];
|
|
11
|
+
exports.OPERATION_MODE_DESCRIPTIONS = [
|
|
12
|
+
{
|
|
13
|
+
name: 'Get Many',
|
|
14
|
+
value: 'load',
|
|
15
|
+
description: 'Get many ranked documents from vector store for query',
|
|
16
|
+
action: 'Get ranked documents from vector store',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Insert Documents',
|
|
20
|
+
value: 'insert',
|
|
21
|
+
description: 'Insert documents into vector store',
|
|
22
|
+
action: 'Add documents to vector store',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'Retrieve Documents (As Vector Store for Chain/Tool)',
|
|
26
|
+
value: 'retrieve',
|
|
27
|
+
description: 'Retrieve documents from vector store to be used as vector store with AI nodes',
|
|
28
|
+
action: 'Retrieve documents for Chain/Tool as Vector Store',
|
|
29
|
+
outputConnectionType: n8n_workflow_1.NodeConnectionTypes.AiVectorStore,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'Retrieve Documents (As Tool for AI Agent)',
|
|
33
|
+
value: 'retrieve-as-tool',
|
|
34
|
+
description: 'Retrieve documents from vector store to be used as tool with AI nodes',
|
|
35
|
+
action: 'Retrieve documents for AI Agent as Tool',
|
|
36
|
+
outputConnectionType: n8n_workflow_1.NodeConnectionTypes.AiTool,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Update Documents',
|
|
40
|
+
value: 'update',
|
|
41
|
+
description: 'Update documents in vector store by ID',
|
|
42
|
+
action: 'Update vector store documents',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/utils/vector-store/createVectorStoreNode/constants.ts"],"names":[],"mappings":";;;AAAA,+CAAmD;AAKtC,QAAA,uBAAuB,GAAwB;IAC3D,MAAM;IACN,QAAQ;IACR,UAAU;IACV,kBAAkB;CAClB,CAAC;AAEW,QAAA,2BAA2B,GAA2B;IAClE;QACC,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,uDAAuD;QACpE,MAAM,EAAE,wCAAwC;KAChD;IACD;QACC,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,oCAAoC;QACjD,MAAM,EAAE,+BAA+B;KACvC;IACD;QACC,IAAI,EAAE,qDAAqD;QAC3D,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,+EAA+E;QAC5F,MAAM,EAAE,mDAAmD;QAC3D,oBAAoB,EAAE,kCAAmB,CAAC,aAAa;KACvD;IACD;QACC,IAAI,EAAE,2CAA2C;QACjD,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,uEAAuE;QACpF,MAAM,EAAE,yCAAyC;QACjD,oBAAoB,EAAE,kCAAmB,CAAC,MAAM;KAChD;IACD;QACC,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,wCAAwC;QACrD,MAAM,EAAE,+BAA+B;KACvC;CACD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { VectorStore } from '@langchain/core/vectorstores';
|
|
2
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeTypeDescription, SupplyData, ISupplyDataFunctions } from 'n8n-workflow';
|
|
3
|
+
import type { VectorStoreNodeConstructorArgs } from './types';
|
|
4
|
+
export declare const createVectorStoreNode: <T extends VectorStore = VectorStore>(args: VectorStoreNodeConstructorArgs<T>) => {
|
|
5
|
+
new (): {
|
|
6
|
+
description: INodeTypeDescription;
|
|
7
|
+
methods: {
|
|
8
|
+
listSearch?: {
|
|
9
|
+
[key: string]: (this: import("n8n-workflow").ILoadOptionsFunctions, filter?: string, paginationToken?: string) => Promise<import("n8n-workflow").INodeListSearchResult>;
|
|
10
|
+
};
|
|
11
|
+
actionHandler?: {
|
|
12
|
+
[functionName: string]: (this: import("n8n-workflow").ILoadOptionsFunctions, payload: import("n8n-workflow").IDataObject | string | undefined) => Promise<import("n8n-workflow").NodeParameterValueType>;
|
|
13
|
+
};
|
|
14
|
+
} | undefined;
|
|
15
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
16
|
+
supplyData(this: ISupplyDataFunctions, itemIndex: number): Promise<SupplyData>;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createVectorStoreNode = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const operations_1 = require("./operations");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const shared_fields_1 = require("../../shared-fields");
|
|
8
|
+
const ragStarterCallout = {
|
|
9
|
+
displayName: 'Tip: Get a feel for vector stores in n8n with our',
|
|
10
|
+
name: 'ragStarterCallout',
|
|
11
|
+
type: 'callout',
|
|
12
|
+
typeOptions: {
|
|
13
|
+
calloutAction: {
|
|
14
|
+
label: 'RAG starter template',
|
|
15
|
+
type: 'openSampleWorkflowTemplate',
|
|
16
|
+
templateId: 'rag-starter-template',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
default: '',
|
|
20
|
+
};
|
|
21
|
+
const createVectorStoreNode = (args) => class VectorStoreNodeType {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.description = {
|
|
24
|
+
displayName: args.meta.displayName,
|
|
25
|
+
name: args.meta.name,
|
|
26
|
+
description: args.meta.description,
|
|
27
|
+
icon: args.meta.icon,
|
|
28
|
+
iconColor: args.meta.iconColor,
|
|
29
|
+
group: ['transform'],
|
|
30
|
+
version: [1, 1.1, 1.2, 1.3],
|
|
31
|
+
defaults: {
|
|
32
|
+
name: args.meta.displayName,
|
|
33
|
+
},
|
|
34
|
+
codex: {
|
|
35
|
+
categories: args.meta.categories ?? ['AI'],
|
|
36
|
+
subcategories: args.meta.subcategories ?? {
|
|
37
|
+
AI: ['Vector Stores', 'Tools', 'Root Nodes'],
|
|
38
|
+
'Vector Stores': ['Other Vector Stores'],
|
|
39
|
+
Tools: ['Other Tools'],
|
|
40
|
+
},
|
|
41
|
+
resources: {
|
|
42
|
+
primaryDocumentation: [
|
|
43
|
+
{
|
|
44
|
+
url: args.meta.docsUrl,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
builderHint: {
|
|
50
|
+
...args.meta.builderHint,
|
|
51
|
+
inputs: {
|
|
52
|
+
ai_embedding: { required: true },
|
|
53
|
+
ai_document: {
|
|
54
|
+
required: true,
|
|
55
|
+
displayOptions: { show: { mode: ['insert'] } },
|
|
56
|
+
},
|
|
57
|
+
ai_reranker: {
|
|
58
|
+
required: true,
|
|
59
|
+
displayOptions: {
|
|
60
|
+
show: { mode: ['load', 'retrieve', 'retrieve-as-tool'], useReranker: [true] },
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
credentials: args.meta.credentials,
|
|
66
|
+
inputs: `={{
|
|
67
|
+
((parameters) => {
|
|
68
|
+
const mode = parameters?.mode;
|
|
69
|
+
const useReranker = parameters?.useReranker;
|
|
70
|
+
const inputs = [{ displayName: "Embedding", type: "${n8n_workflow_1.NodeConnectionTypes.AiEmbedding}", required: true, maxConnections: 1}]
|
|
71
|
+
|
|
72
|
+
if (['load', 'retrieve', 'retrieve-as-tool'].includes(mode) && useReranker) {
|
|
73
|
+
inputs.push({ displayName: "Reranker", type: "${n8n_workflow_1.NodeConnectionTypes.AiReranker}", required: true, maxConnections: 1})
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (mode === 'retrieve-as-tool') {
|
|
77
|
+
return inputs;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (['insert', 'load', 'update'].includes(mode)) {
|
|
81
|
+
inputs.push({ displayName: "", type: "${n8n_workflow_1.NodeConnectionTypes.Main}"})
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (['insert'].includes(mode)) {
|
|
85
|
+
inputs.push({ displayName: "Document", type: "${n8n_workflow_1.NodeConnectionTypes.AiDocument}", required: true, maxConnections: 1})
|
|
86
|
+
}
|
|
87
|
+
return inputs
|
|
88
|
+
})($parameter)
|
|
89
|
+
}}`,
|
|
90
|
+
outputs: `={{
|
|
91
|
+
((parameters) => {
|
|
92
|
+
const mode = parameters?.mode ?? 'retrieve';
|
|
93
|
+
|
|
94
|
+
if (mode === 'retrieve-as-tool') {
|
|
95
|
+
return [{ displayName: "Tool", type: "${n8n_workflow_1.NodeConnectionTypes.AiTool}"}]
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (mode === 'retrieve') {
|
|
99
|
+
return [{ displayName: "Vector Store", type: "${n8n_workflow_1.NodeConnectionTypes.AiVectorStore}"}]
|
|
100
|
+
}
|
|
101
|
+
return [{ displayName: "", type: "${n8n_workflow_1.NodeConnectionTypes.Main}"}]
|
|
102
|
+
})($parameter)
|
|
103
|
+
}}`,
|
|
104
|
+
properties: [
|
|
105
|
+
ragStarterCallout,
|
|
106
|
+
{
|
|
107
|
+
displayName: 'Operation Mode',
|
|
108
|
+
name: 'mode',
|
|
109
|
+
type: 'options',
|
|
110
|
+
noDataExpression: true,
|
|
111
|
+
default: 'retrieve',
|
|
112
|
+
options: (0, utils_1.getOperationModeOptions)(args),
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
...(0, shared_fields_1.getConnectionHintNoticeField)([n8n_workflow_1.NodeConnectionTypes.AiRetriever]),
|
|
116
|
+
displayOptions: {
|
|
117
|
+
show: {
|
|
118
|
+
mode: ['retrieve'],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
displayName: 'Name',
|
|
124
|
+
name: 'toolName',
|
|
125
|
+
type: 'string',
|
|
126
|
+
default: '',
|
|
127
|
+
required: true,
|
|
128
|
+
description: 'Name of the vector store',
|
|
129
|
+
placeholder: 'e.g. company_knowledge_base',
|
|
130
|
+
validateType: 'string-alphanumeric',
|
|
131
|
+
displayOptions: {
|
|
132
|
+
show: {
|
|
133
|
+
'@version': [{ _cnd: { lte: 1.2 } }],
|
|
134
|
+
mode: ['retrieve-as-tool'],
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
displayName: 'Description',
|
|
140
|
+
name: 'toolDescription',
|
|
141
|
+
type: 'string',
|
|
142
|
+
default: '',
|
|
143
|
+
required: true,
|
|
144
|
+
typeOptions: { rows: 2 },
|
|
145
|
+
description: 'Explain to the LLM what this tool does, a good, specific description would allow LLMs to produce expected results much more often',
|
|
146
|
+
placeholder: `e.g. ${args.meta.description}`,
|
|
147
|
+
displayOptions: {
|
|
148
|
+
show: {
|
|
149
|
+
mode: ['retrieve-as-tool'],
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
...args.sharedFields,
|
|
154
|
+
{
|
|
155
|
+
displayName: 'Embedding Batch Size',
|
|
156
|
+
name: 'embeddingBatchSize',
|
|
157
|
+
type: 'number',
|
|
158
|
+
default: 200,
|
|
159
|
+
description: 'Number of documents to embed in a single batch',
|
|
160
|
+
displayOptions: {
|
|
161
|
+
show: {
|
|
162
|
+
mode: ['insert'],
|
|
163
|
+
'@version': [{ _cnd: { gte: 1.1 } }],
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
...(0, utils_1.transformDescriptionForOperationMode)(args.insertFields ?? [], 'insert'),
|
|
168
|
+
{
|
|
169
|
+
displayName: 'Prompt',
|
|
170
|
+
name: 'prompt',
|
|
171
|
+
type: 'string',
|
|
172
|
+
default: '',
|
|
173
|
+
required: true,
|
|
174
|
+
description: 'Search prompt to retrieve matching documents from the vector store using similarity-based ranking',
|
|
175
|
+
displayOptions: {
|
|
176
|
+
show: {
|
|
177
|
+
mode: ['load'],
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
displayName: 'Limit',
|
|
183
|
+
name: 'topK',
|
|
184
|
+
type: 'number',
|
|
185
|
+
default: 4,
|
|
186
|
+
description: 'Number of top results to fetch from vector store',
|
|
187
|
+
displayOptions: {
|
|
188
|
+
show: {
|
|
189
|
+
mode: ['load', 'retrieve-as-tool'],
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
displayName: 'Include Metadata',
|
|
195
|
+
name: 'includeDocumentMetadata',
|
|
196
|
+
type: 'boolean',
|
|
197
|
+
default: true,
|
|
198
|
+
description: 'Whether or not to include document metadata',
|
|
199
|
+
displayOptions: {
|
|
200
|
+
show: {
|
|
201
|
+
mode: ['load', 'retrieve-as-tool'],
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
displayName: 'Rerank Results',
|
|
207
|
+
name: 'useReranker',
|
|
208
|
+
type: 'boolean',
|
|
209
|
+
default: false,
|
|
210
|
+
description: 'Whether or not to rerank results',
|
|
211
|
+
displayOptions: {
|
|
212
|
+
show: {
|
|
213
|
+
mode: ['load', 'retrieve', 'retrieve-as-tool'],
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
displayName: 'ID',
|
|
219
|
+
name: 'id',
|
|
220
|
+
type: 'string',
|
|
221
|
+
default: '',
|
|
222
|
+
required: true,
|
|
223
|
+
description: 'ID of an embedding entry',
|
|
224
|
+
displayOptions: {
|
|
225
|
+
show: {
|
|
226
|
+
mode: ['update'],
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
...(0, utils_1.transformDescriptionForOperationMode)(args.loadFields ?? [], [
|
|
231
|
+
'load',
|
|
232
|
+
'retrieve-as-tool',
|
|
233
|
+
]),
|
|
234
|
+
...(0, utils_1.transformDescriptionForOperationMode)(args.retrieveFields ?? [], 'retrieve'),
|
|
235
|
+
...(0, utils_1.transformDescriptionForOperationMode)(args.updateFields ?? [], 'update'),
|
|
236
|
+
],
|
|
237
|
+
};
|
|
238
|
+
this.methods = args.methods;
|
|
239
|
+
}
|
|
240
|
+
async execute() {
|
|
241
|
+
const mode = this.getNodeParameter('mode', 0);
|
|
242
|
+
const embeddings = (await this.getInputConnectionData(n8n_workflow_1.NodeConnectionTypes.AiEmbedding, 0));
|
|
243
|
+
if (mode === 'load') {
|
|
244
|
+
const items = this.getInputData(0);
|
|
245
|
+
const resultData = [];
|
|
246
|
+
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
247
|
+
const docs = await (0, operations_1.handleLoadOperation)(this, args, embeddings, itemIndex);
|
|
248
|
+
resultData.push(...docs);
|
|
249
|
+
}
|
|
250
|
+
return [resultData];
|
|
251
|
+
}
|
|
252
|
+
if (mode === 'insert') {
|
|
253
|
+
const resultData = await (0, operations_1.handleInsertOperation)(this, args, embeddings);
|
|
254
|
+
return [resultData];
|
|
255
|
+
}
|
|
256
|
+
if (mode === 'update') {
|
|
257
|
+
const resultData = await (0, operations_1.handleUpdateOperation)(this, args, embeddings);
|
|
258
|
+
return [resultData];
|
|
259
|
+
}
|
|
260
|
+
if (mode === 'retrieve-as-tool') {
|
|
261
|
+
const items = this.getInputData(0);
|
|
262
|
+
const resultData = [];
|
|
263
|
+
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
264
|
+
const docs = await (0, operations_1.handleRetrieveAsToolExecuteOperation)(this, args, embeddings, itemIndex);
|
|
265
|
+
resultData.push(...docs);
|
|
266
|
+
}
|
|
267
|
+
return [resultData];
|
|
268
|
+
}
|
|
269
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Only the "load", "update", "insert", and "retrieve-as-tool" operation modes are supported with execute');
|
|
270
|
+
}
|
|
271
|
+
async supplyData(itemIndex) {
|
|
272
|
+
const mode = this.getNodeParameter('mode', 0);
|
|
273
|
+
const embeddings = (await this.getInputConnectionData(n8n_workflow_1.NodeConnectionTypes.AiEmbedding, 0));
|
|
274
|
+
if (mode === 'retrieve') {
|
|
275
|
+
return await (0, operations_1.handleRetrieveOperation)(this, args, embeddings, itemIndex);
|
|
276
|
+
}
|
|
277
|
+
if (mode === 'retrieve-as-tool') {
|
|
278
|
+
return await (0, operations_1.handleRetrieveAsToolOperation)(this, args, embeddings, itemIndex);
|
|
279
|
+
}
|
|
280
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Only the "retrieve" and "retrieve-as-tool" operation mode is supported to supply data');
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
exports.createVectorStoreNode = createVectorStoreNode;
|
|
284
|
+
//# sourceMappingURL=createVectorStoreNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createVectorStoreNode.js","sourceRoot":"","sources":["../../../../../src/utils/vector-store/createVectorStoreNode/createVectorStoreNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./loadOperation"), exports);
|
|
18
|
+
__exportStar(require("./insertOperation"), exports);
|
|
19
|
+
__exportStar(require("./updateOperation"), exports);
|
|
20
|
+
__exportStar(require("./retrieveOperation"), exports);
|
|
21
|
+
__exportStar(require("./retrieveAsToolOperation"), exports);
|
|
22
|
+
__exportStar(require("./retrieveAsToolExecuteOperation"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/utils/vector-store/createVectorStoreNode/operations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;AAClC,sDAAoC;AACpC,4DAA0C;AAC1C,mEAAiD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Embeddings } from '@langchain/core/embeddings';
|
|
2
|
+
import type { VectorStore } from '@langchain/core/vectorstores';
|
|
3
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
4
|
+
import type { VectorStoreNodeConstructorArgs } from '../types';
|
|
5
|
+
export declare function handleInsertOperation<T extends VectorStore = VectorStore>(context: IExecuteFunctions, args: VectorStoreNodeConstructorArgs<T>, embeddings: Embeddings): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleInsertOperation = handleInsertOperation;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const log_ai_event_1 = require("../../../log-ai-event");
|
|
6
|
+
const processDocuments_1 = require("../../processDocuments");
|
|
7
|
+
async function handleInsertOperation(context, args, embeddings) {
|
|
8
|
+
const nodeVersion = context.getNode().typeVersion;
|
|
9
|
+
const items = context.getInputData();
|
|
10
|
+
const documentInput = (await context.getInputConnectionData(n8n_workflow_1.NodeConnectionTypes.AiDocument, 0));
|
|
11
|
+
const resultData = [];
|
|
12
|
+
const documentsForEmbedding = [];
|
|
13
|
+
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
14
|
+
if (context.getExecutionCancelSignal()?.aborted) {
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
const itemData = items[itemIndex];
|
|
18
|
+
const processedDocuments = await (0, processDocuments_1.processDocument)(documentInput, itemData, itemIndex);
|
|
19
|
+
resultData.push(...processedDocuments.serializedDocuments);
|
|
20
|
+
documentsForEmbedding.push(...processedDocuments.processedDocuments);
|
|
21
|
+
if (nodeVersion === 1) {
|
|
22
|
+
await args.populateVectorStore(context, embeddings, processedDocuments.processedDocuments, itemIndex);
|
|
23
|
+
}
|
|
24
|
+
(0, log_ai_event_1.logAiEvent)(context, 'ai-vector-store-populated');
|
|
25
|
+
}
|
|
26
|
+
if (nodeVersion >= 1.1) {
|
|
27
|
+
if (args.beforeInsert) {
|
|
28
|
+
await args.beforeInsert(context, embeddings, 0);
|
|
29
|
+
}
|
|
30
|
+
const embeddingBatchSize = context.getNodeParameter('embeddingBatchSize', 0, 200) ?? 200;
|
|
31
|
+
for (let i = 0; i < documentsForEmbedding.length; i += embeddingBatchSize) {
|
|
32
|
+
const nextBatch = documentsForEmbedding.slice(i, i + embeddingBatchSize);
|
|
33
|
+
await args.populateVectorStore(context, embeddings, nextBatch, 0);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return resultData;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=insertOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertOperation.js","sourceRoot":"","sources":["../../../../../../src/utils/vector-store/createVectorStoreNode/operations/insertOperation.ts"],"names":[],"mappings":";;AAgBA,sDAgEC;AA7ED,+CAAmD;AAGnD,wDAAmD;AAGnD,6DAAyD;AAOlD,KAAK,UAAU,qBAAqB,CAC1C,OAA0B,EAC1B,IAAuC,EACvC,UAAsB;IAEtB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC;IAElD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,CAAC,MAAM,OAAO,CAAC,sBAAsB,CAAC,kCAAmB,CAAC,UAAU,EAAE,CAAC,CAAC,CAGnD,CAAC;IAE5C,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,MAAM,qBAAqB,GAA6C,EAAE,CAAC;IAG3E,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAE/D,IAAI,OAAO,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,CAAC;YACjD,MAAM;QACP,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAGlC,MAAM,kBAAkB,GAAG,MAAM,IAAA,kCAAe,EAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAGrF,UAAU,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QAG3D,qBAAqB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;QAGrE,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,mBAAmB,CAC7B,OAAO,EACP,UAAU,EACV,kBAAkB,CAAC,kBAAkB,EACrC,SAAS,CACT,CAAC;QACH,CAAC;QAED,IAAA,yBAAU,EAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IAClD,CAAC;IAGD,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,kBAAkB,GACtB,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,EAAE,GAAG,CAAY,IAAI,GAAG,CAAC;QAG3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC;YAC3E,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Embeddings } from '@langchain/core/embeddings';
|
|
2
|
+
import type { VectorStore } from '@langchain/core/vectorstores';
|
|
3
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
4
|
+
import type { VectorStoreNodeConstructorArgs } from '../types';
|
|
5
|
+
export declare function handleLoadOperation<T extends VectorStore = VectorStore>(context: IExecuteFunctions, args: VectorStoreNodeConstructorArgs<T>, embeddings: Embeddings, itemIndex: number): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleLoadOperation = handleLoadOperation;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const helpers_1 = require("../../../helpers");
|
|
6
|
+
const log_ai_event_1 = require("../../../log-ai-event");
|
|
7
|
+
async function handleLoadOperation(context, args, embeddings, itemIndex) {
|
|
8
|
+
const filter = (0, helpers_1.getMetadataFiltersValues)(context, itemIndex);
|
|
9
|
+
const vectorStore = await args.getVectorStoreClient(context, undefined, embeddings, itemIndex);
|
|
10
|
+
try {
|
|
11
|
+
const prompt = context.getNodeParameter('prompt', itemIndex);
|
|
12
|
+
const topK = context.getNodeParameter('topK', itemIndex, 4);
|
|
13
|
+
const useReranker = context.getNodeParameter('useReranker', itemIndex, false);
|
|
14
|
+
const includeDocumentMetadata = context.getNodeParameter('includeDocumentMetadata', itemIndex, true);
|
|
15
|
+
const embeddedPrompt = await embeddings.embedQuery(prompt);
|
|
16
|
+
let docs = await vectorStore.similaritySearchVectorWithScore(embeddedPrompt, topK, filter);
|
|
17
|
+
if (useReranker && docs.length > 0) {
|
|
18
|
+
const reranker = (await context.getInputConnectionData(n8n_workflow_1.NodeConnectionTypes.AiReranker, 0));
|
|
19
|
+
const documents = docs.map(([doc]) => doc);
|
|
20
|
+
const rerankedDocuments = await reranker.compressDocuments(documents, prompt);
|
|
21
|
+
docs = rerankedDocuments.map((doc) => {
|
|
22
|
+
const { relevanceScore, ...metadata } = doc.metadata || {};
|
|
23
|
+
return [{ ...doc, metadata }, relevanceScore];
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
const serializedDocs = docs.map(([doc, score]) => {
|
|
27
|
+
const document = {
|
|
28
|
+
pageContent: doc.pageContent,
|
|
29
|
+
...(includeDocumentMetadata ? { metadata: doc.metadata } : {}),
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
json: { document, score },
|
|
33
|
+
pairedItem: {
|
|
34
|
+
item: itemIndex,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
(0, log_ai_event_1.logAiEvent)(context, 'ai-vector-store-searched', { query: prompt });
|
|
39
|
+
return serializedDocs;
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
args.releaseVectorStoreClient?.(vectorStore);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=loadOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadOperation.js","sourceRoot":"","sources":["../../../../../../src/utils/vector-store/createVectorStoreNode/operations/loadOperation.ts"],"names":[],"mappings":";;AAcA,kDAuEC;AAlFD,+CAAmD;AAGnD,8CAA4D;AAC5D,wDAAmD;AAO5C,KAAK,UAAU,mBAAmB,CACxC,OAA0B,EAC1B,IAAuC,EACvC,UAAsB,EACtB,SAAiB;IAEjB,MAAM,MAAM,GAAG,IAAA,kCAAwB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAClD,OAAO,EAEP,SAAS,EACT,UAAU,EACV,SAAS,CACT,CAAC;IAEF,IAAI,CAAC;QAEJ,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAW,CAAC;QACvE,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAW,CAAC;QACtE,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;QAEzF,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CACvD,yBAAyB,EACzB,SAAS,EACT,IAAI,CACO,CAAC;QAGb,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAG3D,IAAI,IAAI,GAAG,MAAM,WAAW,CAAC,+BAA+B,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAG3F,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,sBAAsB,CACrD,kCAAmB,CAAC,UAAU,EAC9B,CAAC,CACD,CAA2B,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAE3C,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC9E,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpC,MAAM,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC3D,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACJ,CAAC;QAGD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAChD,MAAM,QAAQ,GAAG;gBAChB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC;YAEF,OAAO;gBACN,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;gBACzB,UAAU,EAAE;oBACX,IAAI,EAAE,SAAS;iBACf;aACD,CAAC;QACH,CAAC,CAAC,CAAC;QAGH,IAAA,yBAAU,EAAC,OAAO,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnE,OAAO,cAAc,CAAC;IACvB,CAAC;YAAS,CAAC;QAEV,IAAI,CAAC,wBAAwB,EAAE,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Embeddings } from '@langchain/core/embeddings';
|
|
2
|
+
import type { VectorStore } from '@langchain/core/vectorstores';
|
|
3
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
4
|
+
import type { VectorStoreNodeConstructorArgs } from '../types';
|
|
5
|
+
export declare function handleRetrieveAsToolExecuteOperation<T extends VectorStore = VectorStore>(context: IExecuteFunctions, args: VectorStoreNodeConstructorArgs<T>, embeddings: Embeddings, itemIndex: number): Promise<INodeExecutionData[]>;
|