@memberjunction/ai-vector-sync 2.4.1 → 2.5.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/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +21 -0
- package/dist/config.js.map +1 -0
- package/dist/db/db.d.ts +4 -0
- package/dist/db/db.d.ts.map +1 -0
- package/dist/db/db.js +40 -0
- package/dist/db/db.js.map +1 -0
- package/dist/db/dbAI.d.ts +4 -0
- package/dist/db/dbAI.d.ts.map +1 -0
- package/dist/db/dbAI.js +18 -0
- package/dist/db/dbAI.js.map +1 -0
- package/dist/generic/EntityDocumenTemplateParserBase.d.ts +14 -0
- package/dist/generic/EntityDocumenTemplateParserBase.d.ts.map +1 -0
- package/dist/generic/EntityDocumenTemplateParserBase.js +76 -0
- package/dist/generic/EntityDocumenTemplateParserBase.js.map +1 -0
- package/dist/generic/EntityDocumentTemplateParser.d.ts +7 -0
- package/dist/generic/EntityDocumentTemplateParser.d.ts.map +1 -0
- package/dist/generic/EntityDocumentTemplateParser.js +74 -0
- package/dist/generic/EntityDocumentTemplateParser.js.map +1 -0
- package/dist/generic/entitySyncConfig.types.d.ts +11 -0
- package/dist/generic/entitySyncConfig.types.d.ts.map +1 -0
- package/dist/generic/entitySyncConfig.types.js +3 -0
- package/dist/generic/entitySyncConfig.types.js.map +1 -0
- package/dist/generic/vectorSync.types.d.ts +61 -0
- package/dist/generic/vectorSync.types.d.ts.map +1 -0
- package/dist/generic/vectorSync.types.js +3 -0
- package/dist/generic/vectorSync.types.js.map +1 -0
- package/dist/index.d.ts +5 -2014
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -4
- package/dist/index.js.map +1 -1
- package/dist/models/BatchWorker.d.ts +34 -0
- package/dist/models/BatchWorker.d.ts.map +1 -0
- package/dist/models/BatchWorker.js +77 -0
- package/dist/models/BatchWorker.js.map +1 -0
- package/dist/models/EntityDocumentCache.d.ts +27 -0
- package/dist/models/EntityDocumentCache.d.ts.map +1 -0
- package/dist/models/EntityDocumentCache.js +118 -0
- package/dist/models/EntityDocumentCache.js.map +1 -0
- package/dist/models/PagedRecords.d.ts +9 -0
- package/dist/models/PagedRecords.d.ts.map +1 -0
- package/dist/models/PagedRecords.js +19 -0
- package/dist/models/PagedRecords.js.map +1 -0
- package/dist/models/entityVectorSync.d.ts +28 -0
- package/dist/models/entityVectorSync.d.ts.map +1 -0
- package/dist/models/entityVectorSync.js +486 -0
- package/dist/models/entityVectorSync.js.map +1 -0
- package/dist/models/workers/UpsertVectors.d.ts +2 -0
- package/dist/models/workers/UpsertVectors.d.ts.map +1 -0
- package/dist/models/workers/UpsertVectors.js +48 -0
- package/dist/models/workers/UpsertVectors.js.map +1 -0
- package/dist/models/workers/VectorizeTemplates.d.ts +2 -0
- package/dist/models/workers/VectorizeTemplates.d.ts.map +1 -0
- package/dist/models/workers/VectorizeTemplates.js +88 -0
- package/dist/models/workers/VectorizeTemplates.js.map +1 -0
- package/dist/models/workers/upserter.d.ts +2 -0
- package/dist/models/workers/upserter.d.ts.map +1 -0
- package/dist/models/workers/upserter.js +11 -0
- package/dist/models/workers/upserter.js.map +1 -0
- package/package.json +14 -14
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VectorizeEntity = void 0;
|
|
4
|
+
const node_worker_threads_1 = require("node:worker_threads");
|
|
5
|
+
const templates_1 = require("@memberjunction/templates");
|
|
6
|
+
const core_1 = require("@memberjunction/core");
|
|
7
|
+
const global_1 = require("@memberjunction/global");
|
|
8
|
+
const ai_1 = require("@memberjunction/ai");
|
|
9
|
+
const ai_openai_1 = require("@memberjunction/ai-openai");
|
|
10
|
+
const ai_mistral_1 = require("@memberjunction/ai-mistral");
|
|
11
|
+
(0, ai_openai_1.LoadOpenAILLM)();
|
|
12
|
+
(0, ai_mistral_1.LoadMistralEmbedding)();
|
|
13
|
+
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
14
|
+
async function VectorizeEntity() {
|
|
15
|
+
const { batch, context } = node_worker_threads_1.workerData;
|
|
16
|
+
if (!batch) {
|
|
17
|
+
throw new Error('batch is required for the AnnotationWorker');
|
|
18
|
+
}
|
|
19
|
+
const template = context.template;
|
|
20
|
+
const templateContent = context.templateContent;
|
|
21
|
+
templates_1.TemplateEngineServer.Instance.SetupNunjucks();
|
|
22
|
+
const startTime = Date.now();
|
|
23
|
+
const embedding = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(ai_1.Embeddings, context.embeddingDriverClass, context.embeddingAPIKey);
|
|
24
|
+
const processedBatch = [];
|
|
25
|
+
for (const entityData of batch) {
|
|
26
|
+
const validationResult = ValidateTemplateInput(template, entityData);
|
|
27
|
+
if (!validationResult.Success) {
|
|
28
|
+
(0, core_1.LogError)(`Validation error for record ${entityData.ID}`, undefined, validationResult.Errors.map(e => e.Message).join('\n'));
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
let result = await templates_1.TemplateEngineServer.Instance.RenderTemplate(template, templateContent, entityData, true);
|
|
32
|
+
if (result.Success) {
|
|
33
|
+
processedBatch.push(result.Output);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
(0, core_1.LogError)(`Error rendering template for record ${entityData.ID}`, undefined, result.Message);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const embeddings = await embedding.EmbedTexts({ texts: processedBatch, model: null });
|
|
40
|
+
const embeddingBatch = embeddings.vectors.map((vector, index) => {
|
|
41
|
+
return {
|
|
42
|
+
ID: index,
|
|
43
|
+
Vector: vector,
|
|
44
|
+
EntityData: batch[index],
|
|
45
|
+
__mj_recordID: batch[index].__mj_recordID,
|
|
46
|
+
__mj_compositeKey: batch[index].__mj_compositeKey,
|
|
47
|
+
EntityDocument: context.entityDocument,
|
|
48
|
+
VectorID: batch[index].VectorID,
|
|
49
|
+
VectorIndexID: batch[index].VectorIndexID,
|
|
50
|
+
TemplateContent: templateContent.TemplateText
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
const runTime = Date.now() - startTime;
|
|
54
|
+
const elapsed = Date.now() - context.executionId;
|
|
55
|
+
console.log('\t##### Generating Vectors: Complate #####', { threadId: node_worker_threads_1.threadId, now: Date.now() % 100_000, runTime, elapsed });
|
|
56
|
+
await delay(context.delayTimeMS);
|
|
57
|
+
node_worker_threads_1.parentPort.postMessage({ ...node_worker_threads_1.workerData, batch: embeddingBatch });
|
|
58
|
+
}
|
|
59
|
+
exports.VectorizeEntity = VectorizeEntity;
|
|
60
|
+
function ValidateTemplateInput(template, data) {
|
|
61
|
+
const result = new core_1.ValidationResult();
|
|
62
|
+
let params = template.Params;
|
|
63
|
+
if (!params) {
|
|
64
|
+
result.Errors.push({
|
|
65
|
+
Source: "",
|
|
66
|
+
Message: "Params property not found on the template.",
|
|
67
|
+
Value: "",
|
|
68
|
+
Type: 'Failure'
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
params?.forEach((p) => {
|
|
72
|
+
if (p.IsRequired) {
|
|
73
|
+
if (!data || data[p.Name] === undefined || data[p.Name] === null ||
|
|
74
|
+
(typeof data[p.Name] === 'string' && data[p.Name].toString().trim() === '')) {
|
|
75
|
+
result.Errors.push({
|
|
76
|
+
Source: p.Name,
|
|
77
|
+
Message: `Parameter ${p.Name} is required.`,
|
|
78
|
+
Value: data[p.Name],
|
|
79
|
+
Type: 'Failure'
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
result.Success = result.Errors.some(e => e.Type === 'Failure') ? false : true;
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
VectorizeEntity();
|
|
88
|
+
//# sourceMappingURL=VectorizeTemplates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VectorizeTemplates.js","sourceRoot":"","sources":["../../../src/models/workers/VectorizeTemplates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upserter.d.ts","sourceRoot":"","sources":["../../../src/models/workers/upserter.ts"],"names":[],"mappings":"AAIA,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostMessagePostUpsert = void 0;
|
|
4
|
+
const node_worker_threads_1 = require("node:worker_threads");
|
|
5
|
+
function PostMessagePostUpsert() {
|
|
6
|
+
const { batch, context } = node_worker_threads_1.workerData;
|
|
7
|
+
node_worker_threads_1.parentPort.postMessage({ ...node_worker_threads_1.workerData, ...batch });
|
|
8
|
+
}
|
|
9
|
+
exports.PostMessagePostUpsert = PostMessagePostUpsert;
|
|
10
|
+
PostMessagePostUpsert();
|
|
11
|
+
//# sourceMappingURL=upserter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upserter.js","sourceRoot":"","sources":["../../../src/models/workers/upserter.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAI7D,SAAgB,qBAAqB;IAEnC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,gCAA8C,CAAC;IAC1E,gCAAU,CAAC,WAAW,CAAC,EAAE,GAAG,gCAAU,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC;AAJD,sDAIC;AAED,qBAAqB,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ai-vector-sync",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "MemberJunction: AI Vector/Entity Sync Package - handles synchronization between MemberJunction entities and vector databases",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -8,24 +8,24 @@
|
|
|
8
8
|
"/dist"
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
|
-
"build": "
|
|
12
|
-
"
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"buld:pgk": "pkgroll --sourcemap --minify",
|
|
13
13
|
"watch": "pkgroll --sourcemap --watch"
|
|
14
14
|
},
|
|
15
15
|
"author": "MemberJunction.com",
|
|
16
16
|
"license": "ISC",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@memberjunction/ai": "2.
|
|
19
|
-
"@memberjunction/ai-vectordb": "2.
|
|
20
|
-
"@memberjunction/ai-vectors": "2.
|
|
21
|
-
"@memberjunction/ai-vectors-pinecone": "2.
|
|
22
|
-
"@memberjunction/ai-mistral": "2.
|
|
23
|
-
"@memberjunction/aiengine": "2.
|
|
24
|
-
"@memberjunction/core": "2.
|
|
25
|
-
"@memberjunction/global": "2.
|
|
26
|
-
"@memberjunction/templates": "2.
|
|
27
|
-
"@memberjunction/templates-base-types": "2.
|
|
28
|
-
"@memberjunction/ai-openai": "2.
|
|
18
|
+
"@memberjunction/ai": "2.5.0",
|
|
19
|
+
"@memberjunction/ai-vectordb": "2.5.0",
|
|
20
|
+
"@memberjunction/ai-vectors": "2.5.0",
|
|
21
|
+
"@memberjunction/ai-vectors-pinecone": "2.5.0",
|
|
22
|
+
"@memberjunction/ai-mistral": "2.5.0",
|
|
23
|
+
"@memberjunction/aiengine": "2.5.0",
|
|
24
|
+
"@memberjunction/core": "2.5.0",
|
|
25
|
+
"@memberjunction/global": "2.5.0",
|
|
26
|
+
"@memberjunction/templates": "2.5.0",
|
|
27
|
+
"@memberjunction/templates-base-types": "2.5.0",
|
|
28
|
+
"@memberjunction/ai-openai": "2.5.0",
|
|
29
29
|
"dotenv": "^16.4.1",
|
|
30
30
|
"typeorm": "^0.3.20"
|
|
31
31
|
},
|