@memberjunction/ai-vector-sync 5.21.0 → 5.22.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/generic/entityDocumentConfig.types.d.ts +185 -0
- package/dist/generic/entityDocumentConfig.types.d.ts.map +1 -0
- package/dist/generic/entityDocumentConfig.types.js +11 -0
- package/dist/generic/entityDocumentConfig.types.js.map +1 -0
- package/dist/generic/vectorSync.types.d.ts +42 -6
- package/dist/generic/vectorSync.types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/models/AsyncBatchTransform.d.ts +44 -0
- package/dist/models/AsyncBatchTransform.d.ts.map +1 -0
- package/dist/models/AsyncBatchTransform.js +80 -0
- package/dist/models/AsyncBatchTransform.js.map +1 -0
- package/dist/models/EntityDocumentSuggester.d.ts +74 -0
- package/dist/models/EntityDocumentSuggester.d.ts.map +1 -0
- package/dist/models/EntityDocumentSuggester.js +137 -0
- package/dist/models/EntityDocumentSuggester.js.map +1 -0
- package/dist/models/entityVectorSync.d.ts +56 -4
- package/dist/models/entityVectorSync.d.ts.map +1 -1
- package/dist/models/entityVectorSync.js +372 -114
- package/dist/models/entityVectorSync.js.map +1 -1
- package/dist/models/workers/UpsertVectors.js +1 -1
- package/dist/models/workers/UpsertVectors.js.map +1 -1
- package/dist/models/workers/VectorizeTemplates.js +4 -4
- package/dist/models/workers/VectorizeTemplates.js.map +1 -1
- package/package.json +13 -11
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview AI-powered Entity Document template suggestion engine.
|
|
3
|
+
*
|
|
4
|
+
* Uses the "Entity Document Suggestion" AI prompt to analyze entity schemas
|
|
5
|
+
* and suggest optimal Nunjucks templates for duplicate detection, search,
|
|
6
|
+
* or classification use cases.
|
|
7
|
+
*
|
|
8
|
+
* @module @memberjunction/ai-vector-sync
|
|
9
|
+
*/
|
|
10
|
+
import { LogError, LogStatus, Metadata } from '@memberjunction/core';
|
|
11
|
+
import { AIEngine } from '@memberjunction/aiengine';
|
|
12
|
+
import { AIPromptRunner } from '@memberjunction/ai-prompts';
|
|
13
|
+
import { AIPromptParams } from '@memberjunction/ai-core-plus';
|
|
14
|
+
/** The name of the AI prompt stored in the database */
|
|
15
|
+
const SUGGESTION_PROMPT_NAME = 'Entity Document Suggestion';
|
|
16
|
+
/**
|
|
17
|
+
* Suggests Entity Document templates by analyzing entity schemas with AI.
|
|
18
|
+
*
|
|
19
|
+
* Uses the `AIPromptRunner` directly (not via Actions) per CLAUDE.md design philosophy.
|
|
20
|
+
*/
|
|
21
|
+
export class EntityDocumentSuggester {
|
|
22
|
+
/**
|
|
23
|
+
* Analyze an entity's schema and suggest an Entity Document template.
|
|
24
|
+
*
|
|
25
|
+
* @param entityName - The name of the entity to analyze
|
|
26
|
+
* @param useCase - The intended use case (defaults to 'duplicate detection')
|
|
27
|
+
* @param contextUser - The authenticated user context
|
|
28
|
+
* @returns A suggestion with template, selected fields, and threshold recommendations
|
|
29
|
+
*/
|
|
30
|
+
async SuggestDocument(entityName, useCase, contextUser) {
|
|
31
|
+
try {
|
|
32
|
+
await AIEngine.Instance.Config(false, contextUser);
|
|
33
|
+
const entity = this.resolveEntity(entityName);
|
|
34
|
+
const fields = this.buildFieldDescriptors(entity);
|
|
35
|
+
const relationships = this.buildRelationshipDescriptors(entity);
|
|
36
|
+
const prompt = this.findSuggestionPrompt();
|
|
37
|
+
const result = await this.executeSuggestionPrompt(prompt, entity, fields, relationships, useCase, contextUser);
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
42
|
+
LogError(`EntityDocumentSuggester.SuggestDocument failed: ${message}`);
|
|
43
|
+
return { Success: false, ErrorMessage: message, Suggestion: null };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Resolve entity metadata by name */
|
|
47
|
+
resolveEntity(entityName) {
|
|
48
|
+
const md = new Metadata();
|
|
49
|
+
const entity = md.Entities.find(e => e.Name === entityName);
|
|
50
|
+
if (!entity) {
|
|
51
|
+
throw new Error(`Entity "${entityName}" not found in metadata`);
|
|
52
|
+
}
|
|
53
|
+
return entity;
|
|
54
|
+
}
|
|
55
|
+
/** Build field descriptors from entity metadata */
|
|
56
|
+
buildFieldDescriptors(entity) {
|
|
57
|
+
return entity.Fields.map(f => ({
|
|
58
|
+
Name: f.Name,
|
|
59
|
+
Type: f.Type,
|
|
60
|
+
IsPrimaryKey: f.IsPrimaryKey,
|
|
61
|
+
IsUnique: f.IsUnique,
|
|
62
|
+
MaxLength: f.MaxLength,
|
|
63
|
+
AllowsNull: f.AllowsNull,
|
|
64
|
+
Description: f.Description || '',
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
/** Build relationship descriptors from entity metadata */
|
|
68
|
+
buildRelationshipDescriptors(entity) {
|
|
69
|
+
const md = new Metadata();
|
|
70
|
+
return entity.RelatedEntities
|
|
71
|
+
.filter(r => r.Type === 'One to Many' || r.Type === 'Many to One')
|
|
72
|
+
.slice(0, 20) // Limit to prevent oversized prompts
|
|
73
|
+
.map(r => {
|
|
74
|
+
const relatedEntityInfo = md.Entities.find(e => e.Name === r.RelatedEntity);
|
|
75
|
+
const sampleFields = relatedEntityInfo
|
|
76
|
+
? relatedEntityInfo.Fields
|
|
77
|
+
.filter(f => !f.IsPrimaryKey && f.Type !== 'datetimeoffset')
|
|
78
|
+
.map(f => f.Name)
|
|
79
|
+
: [];
|
|
80
|
+
return {
|
|
81
|
+
Name: r.RelatedEntityJoinField || r.RelatedEntity,
|
|
82
|
+
RelatedEntity: r.RelatedEntity,
|
|
83
|
+
Fields: sampleFields,
|
|
84
|
+
ForeignKeyField: r.RelatedEntityJoinField || '',
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/** Find the suggestion prompt from AIEngine */
|
|
89
|
+
findSuggestionPrompt() {
|
|
90
|
+
const prompt = AIEngine.Instance.Prompts.find((p) => p.Name === SUGGESTION_PROMPT_NAME);
|
|
91
|
+
if (!prompt) {
|
|
92
|
+
throw new Error(`AI Prompt "${SUGGESTION_PROMPT_NAME}" not found. ` +
|
|
93
|
+
`Run 'npx mj sync push --dir=metadata --include=prompts' to install it.`);
|
|
94
|
+
}
|
|
95
|
+
return prompt;
|
|
96
|
+
}
|
|
97
|
+
/** Execute the AI prompt and parse the response */
|
|
98
|
+
async executeSuggestionPrompt(prompt, entity, fields, relationships, useCase, contextUser) {
|
|
99
|
+
const runner = new AIPromptRunner();
|
|
100
|
+
const params = new AIPromptParams();
|
|
101
|
+
params.prompt = prompt;
|
|
102
|
+
params.contextUser = contextUser;
|
|
103
|
+
params.data = {
|
|
104
|
+
EntityName: entity.Name,
|
|
105
|
+
FieldsJSON: JSON.stringify(fields, null, 2),
|
|
106
|
+
RelationshipsJSON: JSON.stringify(relationships, null, 2),
|
|
107
|
+
UseCase: useCase,
|
|
108
|
+
TemplateStyle: 'The template MUST generate natural language sentences that read like a human-written description. ' +
|
|
109
|
+
'Do NOT simply concatenate field values. Instead, compose prose that naturally incorporates the entity data. ' +
|
|
110
|
+
'For example, instead of "{{Name}} - {{Description}}" generate "{{Name}} is a {{Type}} that {{Description}}. ' +
|
|
111
|
+
'It was created on {{CreatedAt}} and is currently {{Status}}."',
|
|
112
|
+
};
|
|
113
|
+
LogStatus(`Generating Entity Document suggestion for "${entity.Name}" (${useCase})`);
|
|
114
|
+
const result = await runner.ExecutePrompt(params);
|
|
115
|
+
if (!result.success) {
|
|
116
|
+
return {
|
|
117
|
+
Success: false,
|
|
118
|
+
ErrorMessage: `AI prompt execution failed: ${result.rawResult || 'unknown error'}`,
|
|
119
|
+
Suggestion: null,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
if (!result.result) {
|
|
123
|
+
return {
|
|
124
|
+
Success: false,
|
|
125
|
+
ErrorMessage: 'AI prompt returned no structured result',
|
|
126
|
+
Suggestion: null,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
LogStatus(`Suggestion generated: ${result.result.selectedFields.length} fields, ${result.result.selectedRelationships.length} relationships`);
|
|
130
|
+
return {
|
|
131
|
+
Success: true,
|
|
132
|
+
ErrorMessage: '',
|
|
133
|
+
Suggestion: result.result,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=EntityDocumentSuggester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityDocumentSuggester.js","sourceRoot":"","sources":["../../src/models/EntityDocumentSuggester.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,57 @@ export declare class EntityVectorSyncer extends VectorBase {
|
|
|
16
16
|
*/
|
|
17
17
|
Config(forceRefresh: boolean, contextUser?: UserInfo): Promise<void>;
|
|
18
18
|
VectorizeEntity(params: VectorizeEntityParams, contextUser?: UserInfo): Promise<VectorizeEntityResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Creates an AsyncBatchTransform that renders templates and generates embeddings
|
|
21
|
+
* in the main thread. This replaces the worker_threads-based VectorizeTemplates
|
|
22
|
+
* worker, which couldn't access ClassFactory registrations in its isolated V8 context.
|
|
23
|
+
*/
|
|
24
|
+
private createVectorCreator;
|
|
25
|
+
/**
|
|
26
|
+
* Creates an AsyncBatchTransform that upserts vectors to the vector database
|
|
27
|
+
* in the main thread. This replaces the worker_threads-based UpsertVectors
|
|
28
|
+
* worker for the same ClassFactory reasons.
|
|
29
|
+
*/
|
|
30
|
+
private createVectorUpserter;
|
|
31
|
+
/**
|
|
32
|
+
* Renders templates for a batch of entity records and generates embeddings for the rendered text.
|
|
33
|
+
*/
|
|
34
|
+
private renderAndEmbedBatch;
|
|
35
|
+
/**
|
|
36
|
+
* Upserts a batch of embedding data as vector records into the vector database.
|
|
37
|
+
*/
|
|
38
|
+
/** Default max chars for large text fields (nvarchar(MAX) or MaxLength > 5000) in vector metadata */
|
|
39
|
+
private static readonly DEFAULT_LARGE_FIELD_TRUNCATION;
|
|
40
|
+
/**
|
|
41
|
+
* Parse the EntityDocumentConfiguration JSON from an entity document.
|
|
42
|
+
* Returns an empty object if the Configuration column is null or invalid JSON.
|
|
43
|
+
*/
|
|
44
|
+
private parseDocumentConfig;
|
|
45
|
+
/**
|
|
46
|
+
* Get fields to include in vector metadata for display in search results.
|
|
47
|
+
* Respects EntityDocumentConfiguration.metadata.fieldStrategy and per-field overrides.
|
|
48
|
+
*
|
|
49
|
+
* Default behavior (no config or fieldStrategy = "all"):
|
|
50
|
+
* Include all fields except PKs, binary types, and system (__mj_*) fields.
|
|
51
|
+
*
|
|
52
|
+
* "include" strategy: only fields explicitly listed in config.metadata.fields with included=true.
|
|
53
|
+
* "exclude" strategy: all eligible fields except those listed with included=false.
|
|
54
|
+
*/
|
|
55
|
+
private getDisplayFields;
|
|
56
|
+
/**
|
|
57
|
+
* Get the truncation limit for a field based on its MaxLength and
|
|
58
|
+
* optional per-field or global overrides from EntityDocumentConfiguration.
|
|
59
|
+
*/
|
|
60
|
+
private getFieldTruncationLimit;
|
|
61
|
+
private upsertBatchToVectorDB;
|
|
62
|
+
/**
|
|
63
|
+
* Validates template input data against template parameter definitions
|
|
64
|
+
*/
|
|
65
|
+
private validateTemplateInput;
|
|
66
|
+
/**
|
|
67
|
+
* Starts the async data paging loop that feeds records into the stream pipeline.
|
|
68
|
+
*/
|
|
69
|
+
private startDataPaging;
|
|
19
70
|
/**
|
|
20
71
|
* This method will create a default Entity Document for the given entityID, vectorDatabase, and AIModel
|
|
21
72
|
* @param entityID
|
|
@@ -38,10 +89,11 @@ export declare class EntityVectorSyncer extends VectorBase {
|
|
|
38
89
|
protected CreateTemplateForEntityDocument(entityDocument: MJEntityDocumentEntity): Promise<MJTemplateEntity>;
|
|
39
90
|
protected BuildTemplateContent(entityFields: EntityField[]): string;
|
|
40
91
|
protected GetEntityFieldsForSimilaritySearch(entityID: string): Promise<EntityField[]>;
|
|
41
|
-
protected GetTemplateData(entity: EntityInfo, record:
|
|
42
|
-
[key: string]: any;
|
|
43
|
-
}>;
|
|
92
|
+
protected GetTemplateData(entity: EntityInfo, record: Record<string, unknown>, template: MJTemplateEntityExtended, relatedData: TemplateParamData[]): Promise<Record<string, unknown>>;
|
|
44
93
|
protected GetRelatedTemplateDataForBatch(entity: EntityInfo, records: unknown[], template: MJTemplateEntityExtended): Promise<TemplateParamData[]>;
|
|
94
|
+
/**
|
|
95
|
+
* Creates or updates an Entity Record Document record linking a source record to its vector embedding.
|
|
96
|
+
*/
|
|
45
97
|
protected UpsertEntityRecordDocumentRecords(embeddingData: EmbeddingData, contextUser: UserInfo): Promise<void>;
|
|
46
98
|
/**
|
|
47
99
|
* This method is resposnible for determining if the template(s) given have aligned parameters, meaning they don't have overlapping parameter names that have
|
|
@@ -54,6 +106,6 @@ export declare class EntityVectorSyncer extends VectorBase {
|
|
|
54
106
|
* For single PK entities, uses a simple IN clause.
|
|
55
107
|
* For composite PK entities, uses an EXISTS clause that concatenates PK columns to match the RecordID format.
|
|
56
108
|
*/
|
|
57
|
-
protected
|
|
109
|
+
protected BuildListFilter(entity: EntityInfo, listDetailsSchema: string, listId: string): string;
|
|
58
110
|
}
|
|
59
111
|
//# sourceMappingURL=entityVectorSync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityVectorSync.d.ts","sourceRoot":"","sources":["../../src/models/entityVectorSync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entityVectorSync.d.ts","sourceRoot":"","sources":["../../src/models/entityVectorSync.ts"],"names":[],"mappings":"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"}
|