@meaningfully/core 0.1.2 → 0.1.4
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 +10 -1
- package/dist/Meaningfully.d.ts +8 -1
- package/dist/Meaningfully.d.ts.map +1 -1
- package/dist/Meaningfully.js +100 -22
- package/dist/Meaningfully.js.map +1 -1
- package/dist/api/embedding.d.ts.map +1 -1
- package/dist/api/embedding.js +5 -4
- package/dist/api/embedding.js.map +1 -1
- package/dist/services/embeddings.d.ts +6 -1
- package/dist/services/embeddings.d.ts.map +1 -1
- package/dist/services/embeddings.js +26 -9
- package/dist/services/embeddings.js.map +1 -1
- package/package.json +1 -1
- package/src/Meaningfully.ts +99 -22
- package/src/__tests__/Meaningfully.test.ts +327 -0
- package/src/api/embedding.ts +5 -4
- package/src/services/embeddings.ts +27 -10
package/README.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
# meaningfully-core
|
|
2
2
|
|
|
3
|
-
This is a library of core/API components for [meaningfully](https://www.github.com/jeremybmerrill/meaningfully), which is an app (or collection of apps!) for semantic search over spreadsheets. See the main repo URL for more discussion.
|
|
3
|
+
This is a library of core/API components for [meaningfully](https://www.github.com/jeremybmerrill/meaningfully), which is an app (or collection of apps!) for semantic search over spreadsheets. See the main repo URL for more discussion.
|
|
4
|
+
|
|
5
|
+
## How to build:
|
|
6
|
+
|
|
7
|
+
`npm run build`
|
|
8
|
+
|
|
9
|
+
### How to build on any file modification
|
|
10
|
+
|
|
11
|
+
`npm run watch`
|
|
12
|
+
|
package/dist/Meaningfully.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ type HasFilePath = {
|
|
|
5
5
|
};
|
|
6
6
|
type DocumentSetParamsFilePath = DocumentSetParams & HasFilePath;
|
|
7
7
|
export declare class MeaningfullyAPI {
|
|
8
|
-
private
|
|
8
|
+
private metadataManager;
|
|
9
9
|
private storagePath;
|
|
10
10
|
private clients;
|
|
11
11
|
constructor({ storagePath, weaviateClient, postgresClient, metadataManager }: {
|
|
@@ -48,6 +48,13 @@ export declare class MeaningfullyAPI {
|
|
|
48
48
|
setMaskedSettings(newSettings: Settings): Promise<{
|
|
49
49
|
success: boolean;
|
|
50
50
|
}>;
|
|
51
|
+
deletePostgresVectorStore(projectName: string): Promise<void>;
|
|
52
|
+
deletePostgresIndexStore(projectName: string): Promise<void>;
|
|
53
|
+
deletePostgresDocStore(projectName: string): Promise<void>;
|
|
54
|
+
deleteWeaviateVectorStore(projectName: string): Promise<void>;
|
|
55
|
+
deleteSimpleVectorStore(projectName: string): Promise<void>;
|
|
56
|
+
deleteSimpleDocStore(projectName: string): Promise<void>;
|
|
57
|
+
deleteSimpleIndexStore(projectName: string): Promise<void>;
|
|
51
58
|
}
|
|
52
59
|
export {};
|
|
53
60
|
//# sourceMappingURL=Meaningfully.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Meaningfully.d.ts","sourceRoot":"","sources":["../src/Meaningfully.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG7F,KAAK,WAAW,GAAG;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAAC;AACtC,KAAK,yBAAyB,GAAG,iBAAiB,GAAG,WAAW,CAAC;AAUjE,qBAAa,eAAe;IAC1B,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Meaningfully.d.ts","sourceRoot":"","sources":["../src/Meaningfully.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG7F,KAAK,WAAW,GAAG;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAAC;AACtC,KAAK,yBAAyB,GAAG,iBAAiB,GAAG,WAAW,CAAC;AAUjE,qBAAa,eAAe;IAC1B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAU;gBAEb,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,GAAG,CAAC;QAAC,cAAc,CAAC,EAAE,GAAG,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE;IASnL,UAAU,CAAC,OAAO,EAAE,OAAO;IAG3B,UAAU;IAIJ,gBAAgB,CAAC,IAAI,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAW;;;;IAIxD,cAAc,CAAC,aAAa,EAAE,MAAM;IAKpC,iBAAiB,CAAC,aAAa,EAAE,MAAM;;;IA2C7C,kBAAkB;IAIZ,mBAAmB,CAAC,IAAI,EAAE,yBAAyB;IAwBnD,SAAS,CAAC,IAAI,EAAE,yBAAyB;;;;IA8DzC,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAW,EAAI,OAAO,CAAC,EAAE,cAAc,EAAE;IAsB5G,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IA0BzD,WAAW;IAGX,WAAW,CAAC,QAAQ,EAAE,QAAQ;;;IAI9B,iBAAiB;;;;;;;;;IAYjB,iBAAiB,CAAC,WAAW,EAAE,QAAQ;;;IAcvC,yBAAyB,CAAC,WAAW,EAAE,MAAM;IAS7C,wBAAwB,CAAC,WAAW,EAAE,MAAM;IAS5C,sBAAsB,CAAC,WAAW,EAAE,MAAM;IAU1C,yBAAyB,CAAC,WAAW,EAAE,MAAM;IAM7C,uBAAuB,CAAC,WAAW,EAAE,MAAM;IAI3C,oBAAoB,CAAC,WAAW,EAAE,MAAM;IAIxC,sBAAsB,CAAC,WAAW,EAAE,MAAM;CAGjD"}
|
package/dist/Meaningfully.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadDocumentsFromCsv } from './services/csvLoader.js';
|
|
2
2
|
import { createEmbeddings, getIndex, search, previewResults, getDocStore } from './api/embedding.js';
|
|
3
|
-
import { capitalizeFirstLetter } from
|
|
3
|
+
import { sanitizeProjectName, capitalizeFirstLetter } from "./utils.js";
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import fs from 'fs';
|
|
6
6
|
const MASKING_PREFIX_LENGTH = 8; // how many characters to show at the start and end of an API key when masking it for display
|
|
@@ -11,12 +11,12 @@ const maskKey = (key, n = MASKING_PREFIX_LENGTH) => {
|
|
|
11
11
|
return (key.length > (n * 2)) ? key.slice(0, n) + "*******" + key.slice(key.length - n) : key;
|
|
12
12
|
};
|
|
13
13
|
export class MeaningfullyAPI {
|
|
14
|
-
|
|
14
|
+
metadataManager;
|
|
15
15
|
storagePath;
|
|
16
16
|
clients;
|
|
17
17
|
constructor({ storagePath, weaviateClient, postgresClient, metadataManager }) {
|
|
18
18
|
this.storagePath = storagePath;
|
|
19
|
-
this.
|
|
19
|
+
this.metadataManager = metadataManager;
|
|
20
20
|
this.clients = {
|
|
21
21
|
weaviateClient: weaviateClient,
|
|
22
22
|
postgresClient: postgresClient
|
|
@@ -29,20 +29,51 @@ export class MeaningfullyAPI {
|
|
|
29
29
|
return this.clients;
|
|
30
30
|
}
|
|
31
31
|
async listDocumentSets(page = 1, pageSize = 10) {
|
|
32
|
-
return await this.
|
|
32
|
+
return await this.metadataManager.getDocumentSets(page, pageSize);
|
|
33
33
|
}
|
|
34
34
|
async getDocumentSet(documentSetId) {
|
|
35
|
-
return await this.
|
|
35
|
+
return await this.metadataManager.getDocumentSet(documentSetId);
|
|
36
36
|
}
|
|
37
37
|
async deleteDocumentSet(documentSetId) {
|
|
38
38
|
// Delete the document set from the database
|
|
39
|
-
const result = await this.
|
|
39
|
+
const result = await this.metadataManager.getDocumentSet(documentSetId);
|
|
40
40
|
if (result) {
|
|
41
41
|
// Delete the document set from the database
|
|
42
|
-
await this.
|
|
42
|
+
await this.metadataManager.deleteDocumentSet(documentSetId);
|
|
43
43
|
// Delete the associated files from the filesystem
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
if (result.parameters.vectorStoreType === 'postgres') {
|
|
45
|
+
if (this.clients.postgresClient) {
|
|
46
|
+
try {
|
|
47
|
+
await this.deletePostgresVectorStore(result.name);
|
|
48
|
+
await this.deletePostgresIndexStore(result.name);
|
|
49
|
+
await this.deletePostgresDocStore(result.name);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error(`Error deleting Postgres tables for ${sanitizeProjectName(result.name)}`, error);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (result.parameters.vectorStoreType === 'weaviate') {
|
|
57
|
+
if (this.clients.weaviateClient) {
|
|
58
|
+
try {
|
|
59
|
+
await this.deleteWeaviateVectorStore(result.name);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error("Error deleting Weaviate class:", error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.deleteSimpleVectorStore(result.name);
|
|
67
|
+
}
|
|
68
|
+
// Remove the directory and its contents
|
|
69
|
+
this.deleteSimpleDocStore(result.name);
|
|
70
|
+
this.deleteSimpleIndexStore(result.name);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.deleteSimpleDocStore(result.name);
|
|
74
|
+
this.deleteSimpleIndexStore(result.name);
|
|
75
|
+
this.deleteSimpleVectorStore(result.name);
|
|
76
|
+
}
|
|
46
77
|
}
|
|
47
78
|
return { success: true };
|
|
48
79
|
}
|
|
@@ -58,6 +89,7 @@ export class MeaningfullyAPI {
|
|
|
58
89
|
if (!data.textColumns[0]) {
|
|
59
90
|
throw new Error("No text column specified for preview.");
|
|
60
91
|
}
|
|
92
|
+
console.log(data);
|
|
61
93
|
return await previewResults(data.filePath, data.textColumns[0], {
|
|
62
94
|
modelName: data.modelName, // needed to tokenize, estimate costs
|
|
63
95
|
modelProvider: data.modelProvider,
|
|
@@ -79,7 +111,7 @@ export class MeaningfullyAPI {
|
|
|
79
111
|
// figure out if weaviate is available
|
|
80
112
|
const vectorStoreType = this.getVectorStoreType();
|
|
81
113
|
// First create the document set record
|
|
82
|
-
const documentSetId = await this.
|
|
114
|
+
const documentSetId = await this.metadataManager.addDocumentSet({
|
|
83
115
|
name: data.datasetName,
|
|
84
116
|
uploadDate: new Date(),
|
|
85
117
|
parameters: {
|
|
@@ -97,14 +129,14 @@ export class MeaningfullyAPI {
|
|
|
97
129
|
},
|
|
98
130
|
totalDocuments: 0 // We'll update this after processing
|
|
99
131
|
});
|
|
100
|
-
const embedSettings = await this.
|
|
132
|
+
const embedSettings = await this.metadataManager.getSettings();
|
|
101
133
|
// Load and process the documents
|
|
102
134
|
try {
|
|
103
135
|
// Process each text column
|
|
104
136
|
for (const textColumn of data.textColumns) {
|
|
105
137
|
const documents = await loadDocumentsFromCsv(data.filePath, textColumn);
|
|
106
138
|
// Update total documents count
|
|
107
|
-
await this.
|
|
139
|
+
await this.metadataManager.updateDocumentCount(documentSetId, documents.length);
|
|
108
140
|
// Create embeddings for this column
|
|
109
141
|
let ret = await createEmbeddings(data.filePath, textColumn, {
|
|
110
142
|
modelName: data.modelName,
|
|
@@ -127,14 +159,14 @@ export class MeaningfullyAPI {
|
|
|
127
159
|
}
|
|
128
160
|
catch (error) {
|
|
129
161
|
// If something fails, we should probably delete the document set
|
|
130
|
-
await this.
|
|
162
|
+
await this.metadataManager.deleteDocumentSet(documentSetId);
|
|
131
163
|
console.error("deleting document set due to failure ", documentSetId, error);
|
|
132
164
|
throw error;
|
|
133
165
|
}
|
|
134
166
|
}
|
|
135
167
|
async searchDocumentSet(documentSetId, query, n_results = 10, filters) {
|
|
136
|
-
const documentSet = await this.
|
|
137
|
-
const settings = await this.
|
|
168
|
+
const documentSet = await this.metadataManager.getDocumentSet(documentSetId);
|
|
169
|
+
const settings = await this.metadataManager.getSettings();
|
|
138
170
|
if (!documentSet) {
|
|
139
171
|
throw new Error('Document set not found');
|
|
140
172
|
}
|
|
@@ -154,8 +186,8 @@ export class MeaningfullyAPI {
|
|
|
154
186
|
return results;
|
|
155
187
|
}
|
|
156
188
|
async getDocument(documentSetId, documentNodeId) {
|
|
157
|
-
const documentSet = await this.
|
|
158
|
-
const settings = await this.
|
|
189
|
+
const documentSet = await this.metadataManager.getDocumentSet(documentSetId);
|
|
190
|
+
const settings = await this.metadataManager.getSettings();
|
|
159
191
|
if (!documentSet) {
|
|
160
192
|
throw new Error('Document set not found');
|
|
161
193
|
}
|
|
@@ -178,13 +210,13 @@ export class MeaningfullyAPI {
|
|
|
178
210
|
return document;
|
|
179
211
|
}
|
|
180
212
|
async getSettings() {
|
|
181
|
-
return this.
|
|
213
|
+
return this.metadataManager.getSettings();
|
|
182
214
|
}
|
|
183
215
|
async setSettings(settings) {
|
|
184
|
-
return this.
|
|
216
|
+
return this.metadataManager.setSettings(settings);
|
|
185
217
|
}
|
|
186
218
|
async getMaskedSettings() {
|
|
187
|
-
const settings = await this.
|
|
219
|
+
const settings = await this.metadataManager.getSettings();
|
|
188
220
|
return {
|
|
189
221
|
openAIKey: maskKey(settings.openAIKey),
|
|
190
222
|
oLlamaBaseURL: settings.oLlamaBaseURL,
|
|
@@ -196,7 +228,7 @@ export class MeaningfullyAPI {
|
|
|
196
228
|
};
|
|
197
229
|
}
|
|
198
230
|
async setMaskedSettings(newSettings) {
|
|
199
|
-
const oldSettings = await this.
|
|
231
|
+
const oldSettings = await this.metadataManager.getSettings();
|
|
200
232
|
const settings = {
|
|
201
233
|
...newSettings,
|
|
202
234
|
openAIKey: newSettings.openAIKey == maskKey(oldSettings.openAIKey) ? oldSettings.openAIKey : newSettings.openAIKey,
|
|
@@ -204,7 +236,53 @@ export class MeaningfullyAPI {
|
|
|
204
236
|
mistralApiKey: newSettings.mistralApiKey == maskKey(oldSettings.mistralApiKey) ? oldSettings.mistralApiKey : newSettings.mistralApiKey,
|
|
205
237
|
geminiApiKey: newSettings.geminiApiKey == maskKey(oldSettings.geminiApiKey) ? oldSettings.geminiApiKey : newSettings.geminiApiKey
|
|
206
238
|
};
|
|
207
|
-
return this.
|
|
239
|
+
return this.metadataManager.setSettings(settings);
|
|
240
|
+
}
|
|
241
|
+
// these should be moved to another file, just because they're too low-level for this one.
|
|
242
|
+
async deletePostgresVectorStore(projectName) {
|
|
243
|
+
if (this.clients.postgresClient) {
|
|
244
|
+
try {
|
|
245
|
+
await this.clients.postgresClient.query('DROP TABLE IF EXISTS vecs_' + sanitizeProjectName(projectName));
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
console.error(`Error deleting Postgres tables for ${sanitizeProjectName(projectName)}`, error);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
async deletePostgresIndexStore(projectName) {
|
|
253
|
+
if (this.clients.postgresClient) {
|
|
254
|
+
try {
|
|
255
|
+
await this.clients.postgresClient.query('DROP TABLE IF EXISTS idx_' + sanitizeProjectName(projectName));
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
console.error(`Error deleting Postgres tables for ${sanitizeProjectName(projectName)}`, error);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
async deletePostgresDocStore(projectName) {
|
|
263
|
+
if (this.clients.postgresClient) {
|
|
264
|
+
try {
|
|
265
|
+
await this.clients.postgresClient.query('DROP TABLE IF EXISTS docs_' + sanitizeProjectName(projectName));
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
console.error(`Error deleting Postgres tables for ${sanitizeProjectName(projectName)}`, error);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
async deleteWeaviateVectorStore(projectName) {
|
|
273
|
+
if (this.clients.weaviateClient) {
|
|
274
|
+
await this.clients.weaviateClient.collections.delete(capitalizeFirstLetter(projectName));
|
|
275
|
+
}
|
|
276
|
+
// fs.rmSync(join(this.storagePath, 'weaviate_data', capitalizeFirstLetter(result.name)), { recursive: true, force: true });
|
|
277
|
+
}
|
|
278
|
+
async deleteSimpleVectorStore(projectName) {
|
|
279
|
+
fs.rmSync(join(this.storagePath, projectName), { recursive: true, force: true });
|
|
280
|
+
}
|
|
281
|
+
async deleteSimpleDocStore(projectName) {
|
|
282
|
+
fs.rmSync(join(this.storagePath, projectName), { recursive: true, force: true });
|
|
283
|
+
}
|
|
284
|
+
async deleteSimpleIndexStore(projectName) {
|
|
285
|
+
fs.rmSync(join(this.storagePath, projectName), { recursive: true, force: true });
|
|
208
286
|
}
|
|
209
287
|
}
|
|
210
288
|
//# sourceMappingURL=Meaningfully.js.map
|
package/dist/Meaningfully.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Meaningfully.js","sourceRoot":"","sources":["../src/Meaningfully.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Meaningfully.js","sourceRoot":"","sources":["../src/Meaningfully.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../src/api/embedding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK1I,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../src/api/embedding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK1I,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,eAAe,CAAC,CA0C1B;AAGD,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAqCxB;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,mDAE9F;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,kDAE3F;AAED,wBAAsB,MAAM,CAC1B,KAAK,EAAE,GAAG,EACV,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,MAAW,EACvB,OAAO,CAAC,EAAE,cAAc,EAAE,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC,CASzB"}
|
package/dist/api/embedding.js
CHANGED
|
@@ -19,11 +19,12 @@ export async function createEmbeddings(csvPath, textColumnName, config, settings
|
|
|
19
19
|
}
|
|
20
20
|
progressManager.updateProgress(operationId, 5);
|
|
21
21
|
const nodes = await transformDocumentsToNodes(documents, config);
|
|
22
|
+
const progressCallback = (progress, total) => {
|
|
23
|
+
const percentage = Math.floor((progress / total) * 90) + 5; // Map to 5-95% of total progress
|
|
24
|
+
progressManager.updateProgress(operationId, percentage);
|
|
25
|
+
};
|
|
22
26
|
const [index] = await Promise.all([
|
|
23
|
-
persistNodes(nodes, config, settings, clients,
|
|
24
|
-
const percentage = Math.floor((progress / total) * 90) + 5; // Map to 5-95% of total progress
|
|
25
|
-
progressManager.updateProgress(operationId, percentage);
|
|
26
|
-
}),
|
|
27
|
+
persistNodes(nodes, config, settings, clients, progressCallback),
|
|
27
28
|
persistDocuments(documents, config, settings, clients)
|
|
28
29
|
]);
|
|
29
30
|
progressManager.completeOperation(operationId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/api/embedding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,eAAe,EAAE,2BAA2B,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAErL,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,cAAsB,EACtB,MAAuB,EACvB,QAAkB,EAClB,OAAgB;IAEhB,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1C,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QACtD,eAAe,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5C,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAC7C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yFAAyF;aACjG,CAAC;QACJ,CAAC;QAED,eAAe,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAE/C,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAEjE,MAAM,
|
|
1
|
+
{"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/api/embedding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { Document, VectorStoreIndex, TextNode, type StorageContext } from "llamaindex";
|
|
1
|
+
import { Document, VectorStoreIndex, TextNode, SimpleVectorStore, type StorageContext, BaseDocumentStore, BaseIndexStore } from "llamaindex";
|
|
2
2
|
import { OllamaEmbedding } from '@llamaindex/ollama';
|
|
3
3
|
import { MistralAIEmbedding } from '@llamaindex/mistral';
|
|
4
4
|
import { GeminiEmbedding } from '@llamaindex/google';
|
|
5
|
+
import { PGVectorStore } from '@llamaindex/postgres';
|
|
5
6
|
import { MockEmbedding } from "./mockEmbedding.js";
|
|
6
7
|
import type { EmbeddingConfig, Settings, MetadataFilter, Clients } from "../types/index.js";
|
|
7
8
|
import { OpenAIEmbedding } from "@llamaindex/openai";
|
|
9
|
+
import { BatchingWeaviateVectorStore } from "./batchingWeaviateVectorStore.js";
|
|
8
10
|
import { ProgressVectorStoreIndex } from "./progressVectorStoreIndex.js";
|
|
9
11
|
export declare function estimateCost(nodes: TextNode[], modelName: string): {
|
|
10
12
|
estimatedPrice: number;
|
|
@@ -17,5 +19,8 @@ export declare function getEmbedModel(config: EmbeddingConfig, settings: Setting
|
|
|
17
19
|
export declare function getStorageContext(config: EmbeddingConfig, settings: Settings, clients: Clients): Promise<StorageContext>;
|
|
18
20
|
export declare function persistDocuments(documents: Document[], config: EmbeddingConfig, settings: Settings, clients: Clients): Promise<void>;
|
|
19
21
|
export declare function persistNodes(nodes: TextNode[], config: EmbeddingConfig, settings: Settings, clients: Clients, progressCallback?: (progress: number, total: number) => void): Promise<ProgressVectorStoreIndex>;
|
|
22
|
+
export declare function createVectorStore(config: EmbeddingConfig, settings: Settings, clients: Clients): Promise<PGVectorStore | SimpleVectorStore | BatchingWeaviateVectorStore>;
|
|
23
|
+
export declare function createDocumentStore(config: EmbeddingConfig, settings: Settings, clients: Clients): Promise<BaseDocumentStore>;
|
|
24
|
+
export declare function createIndexStore(config: EmbeddingConfig, settings: Settings, clients: Clients): Promise<BaseIndexStore>;
|
|
20
25
|
export declare function searchDocuments(index: VectorStoreIndex, query: string, numResults?: number, filters?: MetadataFilter[]): Promise<import("llamaindex").NodeWithScore<import("llamaindex").Metadata>[]>;
|
|
21
26
|
//# sourceMappingURL=embeddings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/services/embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAIhB,QAAQ,
|
|
1
|
+
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/services/embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAIhB,QAAQ,EAIR,iBAAiB,EACjB,KAAK,cAAc,EAGnB,iBAAiB,EACjB,cAAc,EAEf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAA+B,MAAM,qBAAqB,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,aAAa,EAA6C,MAAM,sBAAsB,CAAC;AAIhG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAG,MAAM,mBAAmB,CAAC;AAG7F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAuCzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAuBA;AAED,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,6BAO9G;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,EAAE,eAAe,sDA0BxB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,QAAQ,4FA2CnB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAoB9H;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB1I;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAiDpN;AAGD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,GAAG,iBAAiB,GAAG,2BAA2B,CAAC,CAqC/K;AAGD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAcnI;AAGD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAc7H;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,MAAW,EACvB,OAAO,CAAC,EAAE,cAAc,EAAE,gFAU3B"}
|
|
@@ -69,9 +69,11 @@ export function estimateCost(nodes, modelName) {
|
|
|
69
69
|
}
|
|
70
70
|
export async function getExistingVectorStoreIndex(config, settings, clients) {
|
|
71
71
|
const storageContext = await getStorageContext(config, settings, clients);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
const vectorStore = storageContext.vectorStores[ModalityType.TEXT];
|
|
73
|
+
if (!vectorStore) {
|
|
74
|
+
throw new Error("Vector store for ModalityType.TEXT is undefined");
|
|
75
|
+
}
|
|
76
|
+
return await VectorStoreIndex.fromVectorStore(vectorStore);
|
|
75
77
|
}
|
|
76
78
|
export async function transformDocumentsToNodes(documents, config) {
|
|
77
79
|
console.time("transformDocumentsToNodes Run Time");
|
|
@@ -191,12 +193,24 @@ export async function persistNodes(nodes, config, settings, clients, progressCal
|
|
|
191
193
|
// Create index and embed documents
|
|
192
194
|
// this is what actaully embeds the nodes
|
|
193
195
|
// (even if they already have embeddings, stupidly)
|
|
196
|
+
const NODE_CHUNK_SIZE = 10000;
|
|
197
|
+
const modifiedProgressCallback = (progress, total) => {
|
|
198
|
+
if (progressCallback) {
|
|
199
|
+
progressCallback(progress, nodes.length);
|
|
200
|
+
}
|
|
201
|
+
console.log('progress total nodes.length', progress, nodes.length);
|
|
202
|
+
};
|
|
194
203
|
const index = await ProgressVectorStoreIndex.init({
|
|
195
|
-
nodes,
|
|
204
|
+
nodes: nodes.slice(0, NODE_CHUNK_SIZE),
|
|
196
205
|
storageContext,
|
|
197
|
-
|
|
198
|
-
progressCallback,
|
|
206
|
+
progressCallback: modifiedProgressCallback
|
|
199
207
|
});
|
|
208
|
+
if (nodes.length > NODE_CHUNK_SIZE) {
|
|
209
|
+
for (let i = NODE_CHUNK_SIZE; i < nodes.length; i += NODE_CHUNK_SIZE) {
|
|
210
|
+
const chunk = nodes.slice(i, i + NODE_CHUNK_SIZE);
|
|
211
|
+
await index.insertNodes(chunk, { progressCallback: modifiedProgressCallback });
|
|
212
|
+
}
|
|
213
|
+
}
|
|
200
214
|
// I'm not sure why this explicit call to persist is necessary.
|
|
201
215
|
// storageContext should handle this, but it doesn't.
|
|
202
216
|
// all the if statements are just type-checking boilerplate.
|
|
@@ -219,7 +233,8 @@ export async function persistNodes(nodes, config, settings, clients, progressCal
|
|
|
219
233
|
console.timeEnd("persistNodes Run Time");
|
|
220
234
|
return index;
|
|
221
235
|
}
|
|
222
|
-
|
|
236
|
+
// exported only for tests
|
|
237
|
+
export async function createVectorStore(config, settings, clients) {
|
|
223
238
|
const embeddingModel = getEmbedModel(config, settings);
|
|
224
239
|
switch (config.vectorStoreType) {
|
|
225
240
|
// for some reason the embedding model has to be specified here TOO
|
|
@@ -252,7 +267,8 @@ async function createVectorStore(config, settings, clients) {
|
|
|
252
267
|
throw new Error(`Unsupported vector store type: ${config.vectorStoreType}`);
|
|
253
268
|
}
|
|
254
269
|
}
|
|
255
|
-
|
|
270
|
+
// exported only for tests
|
|
271
|
+
export async function createDocumentStore(config, settings, clients) {
|
|
256
272
|
// we create the doc store without a persist path, so it doesn't write to disk after every put()
|
|
257
273
|
switch (config.documentStoreType || config.vectorStoreType) {
|
|
258
274
|
case "postgres":
|
|
@@ -267,7 +283,8 @@ async function createDocumentStore(config, settings, clients) {
|
|
|
267
283
|
throw new Error(`Unsupported vector store type: ${config.vectorStoreType}`);
|
|
268
284
|
}
|
|
269
285
|
}
|
|
270
|
-
|
|
286
|
+
// exported only for tests
|
|
287
|
+
export async function createIndexStore(config, settings, clients) {
|
|
271
288
|
switch (config.documentStoreType || config.vectorStoreType) {
|
|
272
289
|
case "postgres":
|
|
273
290
|
return new PostgresIndexStore({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/services/embeddings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/services/embeddings.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Meaningfully.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MetadataManager } from './MetadataManager.js';
|
|
2
2
|
import { loadDocumentsFromCsv } from './services/csvLoader.js';
|
|
3
3
|
import { createEmbeddings, getIndex, search, previewResults, getDocStore } from './api/embedding.js';
|
|
4
|
-
import { capitalizeFirstLetter } from
|
|
4
|
+
import { sanitizeProjectName, capitalizeFirstLetter } from "./utils.js";
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
import type { DocumentSetParams, Settings, MetadataFilter, Clients } from './types/index.js';
|
|
7
7
|
import fs from 'fs';
|
|
@@ -18,13 +18,13 @@ const maskKey = (key: string | null, n: number = MASKING_PREFIX_LENGTH): string
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
export class MeaningfullyAPI {
|
|
21
|
-
private
|
|
21
|
+
private metadataManager: MetadataManager;
|
|
22
22
|
private storagePath: string;
|
|
23
23
|
private clients: Clients;
|
|
24
24
|
|
|
25
25
|
constructor({ storagePath, weaviateClient, postgresClient, metadataManager }: { storagePath: string, weaviateClient?: any, postgresClient?: any, metadataManager: MetadataManager }) {
|
|
26
26
|
this.storagePath = storagePath;
|
|
27
|
-
this.
|
|
27
|
+
this.metadataManager = metadataManager;
|
|
28
28
|
this.clients = {
|
|
29
29
|
weaviateClient: weaviateClient,
|
|
30
30
|
postgresClient: postgresClient
|
|
@@ -39,21 +39,50 @@ export class MeaningfullyAPI {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
async listDocumentSets(page: number = 1, pageSize: number = 10) {
|
|
42
|
-
return await this.
|
|
42
|
+
return await this.metadataManager.getDocumentSets(page, pageSize);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
async getDocumentSet(documentSetId: number) {
|
|
46
|
-
return await this.
|
|
46
|
+
return await this.metadataManager.getDocumentSet(documentSetId);
|
|
47
47
|
}
|
|
48
|
+
|
|
49
|
+
|
|
48
50
|
async deleteDocumentSet(documentSetId: number) {
|
|
49
51
|
// Delete the document set from the database
|
|
50
|
-
const result = await this.
|
|
52
|
+
const result = await this.metadataManager.getDocumentSet(documentSetId);
|
|
53
|
+
|
|
51
54
|
if (result){
|
|
52
55
|
// Delete the document set from the database
|
|
53
|
-
await this.
|
|
56
|
+
await this.metadataManager.deleteDocumentSet(documentSetId);
|
|
54
57
|
// Delete the associated files from the filesystem
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
if (result.parameters.vectorStoreType === 'postgres'){
|
|
59
|
+
if (this.clients.postgresClient) {
|
|
60
|
+
try {
|
|
61
|
+
await this.deletePostgresVectorStore(result.name)
|
|
62
|
+
await this.deletePostgresIndexStore(result.name)
|
|
63
|
+
await this.deletePostgresDocStore(result.name)
|
|
64
|
+
} catch (error) {
|
|
65
|
+
console.error(`Error deleting Postgres tables for ${sanitizeProjectName(result.name)}`, error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
} else if (result.parameters.vectorStoreType === 'weaviate'){
|
|
69
|
+
if (this.clients.weaviateClient) {
|
|
70
|
+
try {
|
|
71
|
+
await this.deleteWeaviateVectorStore(result.name);
|
|
72
|
+
} catch (error) {
|
|
73
|
+
console.error("Error deleting Weaviate class:", error);
|
|
74
|
+
}
|
|
75
|
+
} else {
|
|
76
|
+
this.deleteSimpleVectorStore(result.name);
|
|
77
|
+
}
|
|
78
|
+
// Remove the directory and its contents
|
|
79
|
+
this.deleteSimpleDocStore(result.name);
|
|
80
|
+
this.deleteSimpleIndexStore(result.name);
|
|
81
|
+
} else {
|
|
82
|
+
this.deleteSimpleDocStore(result.name);
|
|
83
|
+
this.deleteSimpleIndexStore(result.name);
|
|
84
|
+
this.deleteSimpleVectorStore(result.name);
|
|
85
|
+
}
|
|
57
86
|
}
|
|
58
87
|
return { success: true };
|
|
59
88
|
}
|
|
@@ -71,6 +100,7 @@ export class MeaningfullyAPI {
|
|
|
71
100
|
if (!data.textColumns[0]) {
|
|
72
101
|
throw new Error("No text column specified for preview.");
|
|
73
102
|
}
|
|
103
|
+
console.log(data);
|
|
74
104
|
return await previewResults(data.filePath, data.textColumns[0] as string, {
|
|
75
105
|
modelName: data.modelName, // needed to tokenize, estimate costs
|
|
76
106
|
modelProvider: data.modelProvider,
|
|
@@ -92,7 +122,7 @@ export class MeaningfullyAPI {
|
|
|
92
122
|
// figure out if weaviate is available
|
|
93
123
|
const vectorStoreType = this.getVectorStoreType();
|
|
94
124
|
// First create the document set record
|
|
95
|
-
const documentSetId = await this.
|
|
125
|
+
const documentSetId = await this.metadataManager.addDocumentSet({
|
|
96
126
|
name: data.datasetName,
|
|
97
127
|
uploadDate: new Date(),
|
|
98
128
|
parameters: {
|
|
@@ -111,7 +141,7 @@ export class MeaningfullyAPI {
|
|
|
111
141
|
totalDocuments: 0 // We'll update this after processing
|
|
112
142
|
});
|
|
113
143
|
|
|
114
|
-
const embedSettings = await this.
|
|
144
|
+
const embedSettings = await this.metadataManager.getSettings()
|
|
115
145
|
|
|
116
146
|
// Load and process the documents
|
|
117
147
|
try {
|
|
@@ -120,7 +150,7 @@ export class MeaningfullyAPI {
|
|
|
120
150
|
const documents = await loadDocumentsFromCsv(data.filePath, textColumn);
|
|
121
151
|
|
|
122
152
|
// Update total documents count
|
|
123
|
-
await this.
|
|
153
|
+
await this.metadataManager.updateDocumentCount(documentSetId, documents.length);
|
|
124
154
|
|
|
125
155
|
// Create embeddings for this column
|
|
126
156
|
let ret = await createEmbeddings(data.filePath, textColumn, {
|
|
@@ -143,7 +173,7 @@ export class MeaningfullyAPI {
|
|
|
143
173
|
return { success: true, documentSetId };
|
|
144
174
|
} catch (error) {
|
|
145
175
|
// If something fails, we should probably delete the document set
|
|
146
|
-
await this.
|
|
176
|
+
await this.metadataManager.deleteDocumentSet(documentSetId);
|
|
147
177
|
console.error("deleting document set due to failure ", documentSetId, error);
|
|
148
178
|
throw error;
|
|
149
179
|
}
|
|
@@ -151,8 +181,8 @@ export class MeaningfullyAPI {
|
|
|
151
181
|
|
|
152
182
|
|
|
153
183
|
async searchDocumentSet(documentSetId: number, query: string, n_results: number = 10, filters?: MetadataFilter[] ) {
|
|
154
|
-
const documentSet = await this.
|
|
155
|
-
const settings = await this.
|
|
184
|
+
const documentSet = await this.metadataManager.getDocumentSet(documentSetId);
|
|
185
|
+
const settings = await this.metadataManager.getSettings();
|
|
156
186
|
if (!documentSet) {
|
|
157
187
|
throw new Error('Document set not found');
|
|
158
188
|
}
|
|
@@ -173,8 +203,8 @@ export class MeaningfullyAPI {
|
|
|
173
203
|
}
|
|
174
204
|
|
|
175
205
|
async getDocument(documentSetId: number, documentNodeId: string){
|
|
176
|
-
const documentSet = await this.
|
|
177
|
-
const settings = await this.
|
|
206
|
+
const documentSet = await this.metadataManager.getDocumentSet(documentSetId);
|
|
207
|
+
const settings = await this.metadataManager.getSettings();
|
|
178
208
|
if (!documentSet) {
|
|
179
209
|
throw new Error('Document set not found');
|
|
180
210
|
}
|
|
@@ -199,14 +229,14 @@ export class MeaningfullyAPI {
|
|
|
199
229
|
|
|
200
230
|
|
|
201
231
|
async getSettings() {
|
|
202
|
-
return this.
|
|
232
|
+
return this.metadataManager.getSettings();
|
|
203
233
|
}
|
|
204
234
|
async setSettings(settings: Settings) {
|
|
205
|
-
return this.
|
|
235
|
+
return this.metadataManager.setSettings(settings);
|
|
206
236
|
}
|
|
207
237
|
|
|
208
238
|
async getMaskedSettings() {
|
|
209
|
-
const settings = await this.
|
|
239
|
+
const settings = await this.metadataManager.getSettings();
|
|
210
240
|
return {
|
|
211
241
|
openAIKey: maskKey(settings.openAIKey),
|
|
212
242
|
oLlamaBaseURL: settings.oLlamaBaseURL,
|
|
@@ -218,7 +248,7 @@ export class MeaningfullyAPI {
|
|
|
218
248
|
};
|
|
219
249
|
}
|
|
220
250
|
async setMaskedSettings(newSettings: Settings) {
|
|
221
|
-
const oldSettings = await this.
|
|
251
|
+
const oldSettings = await this.metadataManager.getSettings();
|
|
222
252
|
const settings = {
|
|
223
253
|
...newSettings,
|
|
224
254
|
openAIKey: newSettings.openAIKey == maskKey(oldSettings.openAIKey) ? oldSettings.openAIKey : newSettings.openAIKey,
|
|
@@ -226,7 +256,54 @@ export class MeaningfullyAPI {
|
|
|
226
256
|
mistralApiKey: newSettings.mistralApiKey == maskKey(oldSettings.mistralApiKey) ? oldSettings.mistralApiKey : newSettings.mistralApiKey,
|
|
227
257
|
geminiApiKey: newSettings.geminiApiKey == maskKey(oldSettings.geminiApiKey) ? oldSettings.geminiApiKey : newSettings.geminiApiKey
|
|
228
258
|
};
|
|
229
|
-
return this.
|
|
259
|
+
return this.metadataManager.setSettings(settings);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
// these should be moved to another file, just because they're too low-level for this one.
|
|
264
|
+
async deletePostgresVectorStore(projectName: string) {
|
|
265
|
+
if (this.clients.postgresClient) {
|
|
266
|
+
try {
|
|
267
|
+
await this.clients.postgresClient.query('DROP TABLE IF EXISTS vecs_' + sanitizeProjectName(projectName));
|
|
268
|
+
} catch (error) {
|
|
269
|
+
console.error(`Error deleting Postgres tables for ${sanitizeProjectName(projectName)}`, error);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
async deletePostgresIndexStore(projectName: string) {
|
|
274
|
+
if (this.clients.postgresClient) {
|
|
275
|
+
try {
|
|
276
|
+
await this.clients.postgresClient.query('DROP TABLE IF EXISTS idx_' + sanitizeProjectName(projectName ));
|
|
277
|
+
} catch (error) {
|
|
278
|
+
console.error(`Error deleting Postgres tables for ${sanitizeProjectName(projectName)}`, error);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
async deletePostgresDocStore(projectName: string) {
|
|
283
|
+
if (this.clients.postgresClient) {
|
|
284
|
+
try {
|
|
285
|
+
await this.clients.postgresClient.query('DROP TABLE IF EXISTS docs_' + sanitizeProjectName(projectName));
|
|
286
|
+
} catch (error) {
|
|
287
|
+
console.error(`Error deleting Postgres tables for ${sanitizeProjectName(projectName)}`, error);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
230
291
|
}
|
|
292
|
+
async deleteWeaviateVectorStore(projectName: string) {
|
|
293
|
+
if (this.clients.weaviateClient) {
|
|
294
|
+
await this.clients.weaviateClient.collections.delete(capitalizeFirstLetter(projectName));
|
|
295
|
+
}
|
|
296
|
+
// fs.rmSync(join(this.storagePath, 'weaviate_data', capitalizeFirstLetter(result.name)), { recursive: true, force: true });
|
|
297
|
+
}
|
|
298
|
+
async deleteSimpleVectorStore(projectName: string) {
|
|
299
|
+
fs.rmSync(join(this.storagePath, projectName), { recursive: true, force: true });
|
|
300
|
+
|
|
301
|
+
}
|
|
302
|
+
async deleteSimpleDocStore(projectName: string) {
|
|
303
|
+
fs.rmSync(join(this.storagePath, projectName), { recursive: true, force: true });
|
|
231
304
|
|
|
305
|
+
}
|
|
306
|
+
async deleteSimpleIndexStore(projectName: string) {
|
|
307
|
+
fs.rmSync(join(this.storagePath, projectName), { recursive: true, force: true });
|
|
308
|
+
}
|
|
232
309
|
}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { describe, it, beforeEach, expect, vi } from 'vitest';
|
|
2
|
+
import { MetadataManager } from '../MetadataManager';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { sanitizeProjectName } from '../utils.js';
|
|
6
|
+
import { createVectorStore, createDocumentStore, createIndexStore} from '../services/embeddings.js';
|
|
7
|
+
import { IndexStruct } from 'llamaindex';
|
|
8
|
+
import { Client } from 'pg'; // Import the real Postgres client
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
vi.mock('../MetadataManager');
|
|
12
|
+
vi.mock('fs');
|
|
13
|
+
vi.mock('path');
|
|
14
|
+
|
|
15
|
+
// Mock the embedding module before importing MeaningfullyAPI
|
|
16
|
+
vi.doMock('../api/embedding.js', () => ({
|
|
17
|
+
getIndex: vi.fn(),
|
|
18
|
+
search: vi.fn().mockResolvedValue([{ id: 1, text: 'result' }]),
|
|
19
|
+
createEmbeddings: vi.fn().mockResolvedValue({ success: true, error: null }),
|
|
20
|
+
}));
|
|
21
|
+
vi.doMock('../services/csvLoader.js', () => ({
|
|
22
|
+
loadDocumentsFromCsv: vi.fn().mockResolvedValue([]),
|
|
23
|
+
}));
|
|
24
|
+
import { BaseNode } from 'llamaindex';
|
|
25
|
+
|
|
26
|
+
// Mock BaseNode so that getEmbeddings returns made up numbers
|
|
27
|
+
vi.mock('llamaindex', async (importOriginal) => {
|
|
28
|
+
const actual = await importOriginal();
|
|
29
|
+
return {
|
|
30
|
+
...actual,
|
|
31
|
+
BaseNode: class extends actual.BaseNode {
|
|
32
|
+
async getEmbeddings() {
|
|
33
|
+
return [0.1, 0.2, 0.3, 0.4];
|
|
34
|
+
}
|
|
35
|
+
generateHash() {
|
|
36
|
+
return 'hash';
|
|
37
|
+
}
|
|
38
|
+
getContent(){
|
|
39
|
+
return "content";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Import MeaningfullyAPI after mocking
|
|
46
|
+
const { MeaningfullyAPI } = await import('../Meaningfully');
|
|
47
|
+
|
|
48
|
+
const FAKE_SETTINGS = {
|
|
49
|
+
openAIKey: 'sk-proj-testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest',
|
|
50
|
+
azureOpenAIKey: 'testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest',
|
|
51
|
+
mistralApiKey: 'testtesttesttesttesttesttesttest',
|
|
52
|
+
geminiApiKey: 'testtesttesttesttesttesttesttesttesttes',
|
|
53
|
+
azureOpenAIApiVersion: "2024-02-01",
|
|
54
|
+
azureOpenAIEndpoint: "https://test.openai.azure.com",
|
|
55
|
+
oLlamaBaseURL: "http://localhost:11434",
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
describe('MeaningfullyAPI', () => {
|
|
59
|
+
let api: MeaningfullyAPI;
|
|
60
|
+
let mockMetadataManager: MetadataManager;
|
|
61
|
+
|
|
62
|
+
beforeEach(() => {
|
|
63
|
+
// @ts-ignore
|
|
64
|
+
mockMetadataManager = new MetadataManager() as MetadataManager;
|
|
65
|
+
vi.spyOn(mockMetadataManager, 'addDocumentSet').mockResolvedValue(1);
|
|
66
|
+
vi.spyOn(mockMetadataManager, 'getSettings').mockResolvedValue(FAKE_SETTINGS);
|
|
67
|
+
vi.spyOn(mockMetadataManager, 'deleteDocumentSet').mockResolvedValue();
|
|
68
|
+
api = new MeaningfullyAPI({
|
|
69
|
+
storagePath: 'mock_storage_path',
|
|
70
|
+
metadataManager: mockMetadataManager,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
describe('uploadCsv', () => {
|
|
75
|
+
it('should upload a CSV and create embeddings successfully', async () => {
|
|
76
|
+
const mockData = {
|
|
77
|
+
filePath: '/mock/file.csv',
|
|
78
|
+
datasetName: 'testDataset',
|
|
79
|
+
textColumns: ['text'],
|
|
80
|
+
metadataColumns: [],
|
|
81
|
+
splitIntoSentences: true,
|
|
82
|
+
combineSentencesIntoChunks: false,
|
|
83
|
+
sploderMaxSize: 100,
|
|
84
|
+
chunkSize: 512,
|
|
85
|
+
chunkOverlap: 0,
|
|
86
|
+
modelName: 'testModel',
|
|
87
|
+
modelProvider: 'openai',
|
|
88
|
+
description: 'Test dataset',
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// Mock createEmbeddings for this test
|
|
92
|
+
const createEmbeddingsMock = vi.spyOn(await import('../api/embedding.js'), 'createEmbeddings');
|
|
93
|
+
createEmbeddingsMock.mockResolvedValue({ success: true });
|
|
94
|
+
|
|
95
|
+
const result = await api.uploadCsv(mockData);
|
|
96
|
+
|
|
97
|
+
expect(createEmbeddingsMock).toHaveBeenCalledWith(
|
|
98
|
+
expect.any(String),
|
|
99
|
+
expect.any(String),
|
|
100
|
+
expect.objectContaining({ modelName: 'testModel' }),
|
|
101
|
+
expect.any(Object),
|
|
102
|
+
expect.any(Object)
|
|
103
|
+
);
|
|
104
|
+
expect(result).toEqual({ success: true, documentSetId: 1 });
|
|
105
|
+
|
|
106
|
+
createEmbeddingsMock.mockRestore(); // Restore the original implementation after the test
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
it('should handle errors during embeddings creation', async () => {
|
|
110
|
+
const mockData = {
|
|
111
|
+
filePath: '/mock/file.csv',
|
|
112
|
+
datasetName: 'testDataset',
|
|
113
|
+
textColumns: ['text'],
|
|
114
|
+
metadataColumns: [],
|
|
115
|
+
splitIntoSentences: true,
|
|
116
|
+
combineSentencesIntoChunks: false,
|
|
117
|
+
sploderMaxSize: 100,
|
|
118
|
+
chunkSize: 512,
|
|
119
|
+
chunkOverlap: 0,
|
|
120
|
+
modelName: 'testModel',
|
|
121
|
+
modelProvider: 'openai',
|
|
122
|
+
description: 'Test dataset',
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
// Mock createEmbeddings to simulate an error
|
|
126
|
+
const createEmbeddingsMock = vi.spyOn(await import('../api/embedding.js'), 'createEmbeddings');
|
|
127
|
+
createEmbeddingsMock.mockResolvedValue({ success: false, error: 'Embedding error' });
|
|
128
|
+
|
|
129
|
+
await expect(api.uploadCsv(mockData)).rejects.toThrow('Embedding error');
|
|
130
|
+
expect(mockMetadataManager.deleteDocumentSet).toHaveBeenCalledWith(1);
|
|
131
|
+
|
|
132
|
+
createEmbeddingsMock.mockRestore(); // Restore the original implementation after the test
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
describe('searchDocumentSet', () => {
|
|
137
|
+
it('should search a document set and return results', async () => {
|
|
138
|
+
vi.spyOn(mockMetadataManager, 'getDocumentSet').mockResolvedValue({
|
|
139
|
+
parameters: { modelName: 'testModel', modelProvider: 'openai', vectorStoreType: 'simple' },
|
|
140
|
+
name: 'testDataset',
|
|
141
|
+
documentSetId: 5,
|
|
142
|
+
uploadDate: new Date(),
|
|
143
|
+
totalDocuments: 420
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
const results = await api.searchDocumentSet(1, 'query', 10);
|
|
147
|
+
|
|
148
|
+
expect(results).toEqual([{ id: 1, text: 'result' }]);
|
|
149
|
+
expect(mockMetadataManager.getDocumentSet).toHaveBeenCalledWith(1);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
describe('deleteDocumentSet', () => {
|
|
154
|
+
it('should delete a document set and associated files', async () => {
|
|
155
|
+
vi.spyOn(mockMetadataManager, 'getDocumentSet').mockResolvedValue({
|
|
156
|
+
parameters: { vectorStoreType: 'simple' },
|
|
157
|
+
name: 'testDataset',
|
|
158
|
+
documentSetId: 1,
|
|
159
|
+
uploadDate: new Date(),
|
|
160
|
+
totalDocuments: 100
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
vi.spyOn(fs, 'rmSync').mockImplementation(() => {});
|
|
164
|
+
|
|
165
|
+
const result = await api.deleteDocumentSet(1);
|
|
166
|
+
|
|
167
|
+
expect(mockMetadataManager.deleteDocumentSet).toHaveBeenCalledWith(1);
|
|
168
|
+
expect(fs.rmSync).toHaveBeenCalledWith(
|
|
169
|
+
path.join('mock_storage_path', 'testDataset'),
|
|
170
|
+
{ recursive: true, force: true }
|
|
171
|
+
);
|
|
172
|
+
expect(result).toEqual({ success: true });
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
describe('getMaskedSettings', () => {
|
|
177
|
+
it('should return masked settings', async () => {
|
|
178
|
+
vi.spyOn(mockMetadataManager, 'getSettings').mockResolvedValue(FAKE_SETTINGS);
|
|
179
|
+
|
|
180
|
+
const settings = await api.getMaskedSettings();
|
|
181
|
+
|
|
182
|
+
expect(settings).toEqual({
|
|
183
|
+
openAIKey: 'sk-proj-*******testtest',
|
|
184
|
+
azureOpenAIKey: 'testtest*******testtest',
|
|
185
|
+
mistralApiKey: 'testtest*******testtest',
|
|
186
|
+
geminiApiKey: 'testtest*******ttesttes',
|
|
187
|
+
azureOpenAIApiVersion: "2024-02-01",
|
|
188
|
+
azureOpenAIEndpoint: "https://test.openai.azure.com",
|
|
189
|
+
oLlamaBaseURL: "http://localhost:11434",
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
describe('MeaningfullyAPI - Store Deletion with Real Implementation', () => {
|
|
197
|
+
let api: MeaningfullyAPI;
|
|
198
|
+
let mockMetadataManager: MetadataManager;
|
|
199
|
+
let realPostgresClient: Client;
|
|
200
|
+
|
|
201
|
+
beforeEach(async () => {
|
|
202
|
+
// @ts-ignore
|
|
203
|
+
mockMetadataManager = new MetadataManager() as MetadataManager;
|
|
204
|
+
|
|
205
|
+
// Initialize a real Postgres client
|
|
206
|
+
realPostgresClient = new Client({
|
|
207
|
+
connectionString: process.env.POSTGRES_CONNECTION_STRING,
|
|
208
|
+
});
|
|
209
|
+
await realPostgresClient.connect();
|
|
210
|
+
|
|
211
|
+
api = new MeaningfullyAPI({
|
|
212
|
+
storagePath: 'mock_storage_path',
|
|
213
|
+
metadataManager: mockMetadataManager,
|
|
214
|
+
postgresClient: realPostgresClient, // Use the real client
|
|
215
|
+
});
|
|
216
|
+
vi.unmock('fs')
|
|
217
|
+
if (!fs.existsSync("mock_storage_path")){
|
|
218
|
+
fs.mkdirSync("mock_storage_path");
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
it('should create and delete a Postgres vector store using real implementation', async () => {
|
|
223
|
+
const projectName = 'test_project';
|
|
224
|
+
const sanitizedProjectName = sanitizeProjectName(projectName);
|
|
225
|
+
const tableName = `vecs_${sanitizedProjectName}`;
|
|
226
|
+
|
|
227
|
+
// Create the vector store using the real implementation
|
|
228
|
+
const vectorStore = await createVectorStore(
|
|
229
|
+
{ vectorStoreType: 'postgres', projectName, storagePath: 'mock_storage_path', modelProvider: 'openai', modelName: 'text-embedding-ada-002' },
|
|
230
|
+
FAKE_SETTINGS,
|
|
231
|
+
api.getClients()
|
|
232
|
+
);
|
|
233
|
+
await vectorStore.add([new BaseNode({ id: '1', text: 'test document', embedding: Array(1536).fill(0.01) })]);
|
|
234
|
+
|
|
235
|
+
// Verify the table exists
|
|
236
|
+
const tableExistsQuery = `
|
|
237
|
+
SELECT EXISTS (
|
|
238
|
+
SELECT FROM information_schema.tables
|
|
239
|
+
WHERE table_name = $1
|
|
240
|
+
);
|
|
241
|
+
`;
|
|
242
|
+
const tableExistsResult = await realPostgresClient.query(tableExistsQuery, [tableName]);
|
|
243
|
+
expect(tableExistsResult.rows[0].exists).toBe(true);
|
|
244
|
+
|
|
245
|
+
// Call the delete method
|
|
246
|
+
await api.deletePostgresVectorStore(projectName);
|
|
247
|
+
|
|
248
|
+
// Verify the table no longer exists
|
|
249
|
+
const tableDeletedResult = await realPostgresClient.query(tableExistsQuery, [tableName]);
|
|
250
|
+
expect(tableDeletedResult.rows[0].exists).toBe(false);
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
// it('should delete Simple vector store using real implementation', async () => {
|
|
254
|
+
// const projectName = 'test_project';
|
|
255
|
+
// const sanitizedProjectName = sanitizeProjectName(projectName);
|
|
256
|
+
// const storagePath = 'mock_storage_path';
|
|
257
|
+
// const persistDir = path.join(storagePath, sanitizedProjectName);
|
|
258
|
+
|
|
259
|
+
// // Create the vector store using the real implementation
|
|
260
|
+
// const vectorStore = await createVectorStore(
|
|
261
|
+
// { vectorStoreType: 'simple', projectName, storagePath, modelProvider: "openai", modelName: 'text-embedding-3-small' },
|
|
262
|
+
// FAKE_SETTINGS,
|
|
263
|
+
// api.getClients()
|
|
264
|
+
// );
|
|
265
|
+
// await vectorStore.add([new BaseNode({ id: '1', text: 'test document', embedding: [1,2,3] })]);
|
|
266
|
+
// await vectorStore.persist(path.join(persistDir, 'vector_store.json'));
|
|
267
|
+
|
|
268
|
+
// // Verify the vector store exists
|
|
269
|
+
// expect(fs.existsSync(path.join(persistDir, 'vector_store.json'))).toBe(true);
|
|
270
|
+
|
|
271
|
+
// // Call the delete method
|
|
272
|
+
// await api.deleteSimpleVectorStore(projectName);
|
|
273
|
+
|
|
274
|
+
// // Verify the vector store no longer exists
|
|
275
|
+
// expect(fs.existsSync(path.join(persistDir, 'vector_store.json'))).toBe(false);
|
|
276
|
+
// });
|
|
277
|
+
|
|
278
|
+
// it('should delete Simple document store using real implementation', async () => {
|
|
279
|
+
// const projectName = 'test_project';
|
|
280
|
+
// const sanitizedProjectName = sanitizeProjectName(projectName);
|
|
281
|
+
// const storagePath = 'mock_storage_path';
|
|
282
|
+
// const persistDir = path.join(storagePath, sanitizedProjectName);
|
|
283
|
+
|
|
284
|
+
// // Create the document store using the real implementation
|
|
285
|
+
// const docStore = await createDocumentStore(
|
|
286
|
+
// { vectorStoreType: 'simple', projectName, storagePath },
|
|
287
|
+
// FAKE_SETTINGS,
|
|
288
|
+
// api.getClients()
|
|
289
|
+
// );
|
|
290
|
+
// await docStore.addDocuments([new BaseNode({ id: '1', text: 'test document' })], true);
|
|
291
|
+
// await docStore.persist(path.join(persistDir, 'doc_store.json'));
|
|
292
|
+
|
|
293
|
+
// // Verify the document store exists
|
|
294
|
+
// expect(fs.existsSync(path.join(persistDir, 'doc_store.json'))).toBe(true);
|
|
295
|
+
|
|
296
|
+
// // Call the delete method
|
|
297
|
+
// await api.deleteSimpleDocStore(projectName);
|
|
298
|
+
|
|
299
|
+
// // Verify the document store no longer exists
|
|
300
|
+
// expect(fs.existsSync(path.join(persistDir, 'doc_store.json'))).toBe(false);
|
|
301
|
+
// });
|
|
302
|
+
|
|
303
|
+
// it('should delete Simple index store using real implementation', async () => {
|
|
304
|
+
// const projectName = 'test_project';
|
|
305
|
+
// const sanitizedProjectName = sanitizeProjectName(projectName);
|
|
306
|
+
// const storagePath = 'mock_storage_path';
|
|
307
|
+
// const persistDir = path.join(storagePath, sanitizedProjectName);
|
|
308
|
+
|
|
309
|
+
// // Create the index store using the real implementation
|
|
310
|
+
// const indexStore = await createIndexStore(
|
|
311
|
+
// { vectorStoreType: 'simple', projectName, storagePath },
|
|
312
|
+
// FAKE_SETTINGS,
|
|
313
|
+
// api.getClients()
|
|
314
|
+
// );
|
|
315
|
+
// indexStore.addIndexStruct(new IndexStruct({ summary: 'test document' }));
|
|
316
|
+
// await indexStore.persist(path.join(persistDir, 'index_store.json'));
|
|
317
|
+
|
|
318
|
+
// // Verify the index store exists
|
|
319
|
+
// expect(fs.existsSync(path.join(persistDir, 'index_store.json'))).toBe(true);
|
|
320
|
+
|
|
321
|
+
// // Call the delete method
|
|
322
|
+
// await api.deleteSimpleIndexStore(projectName);
|
|
323
|
+
|
|
324
|
+
// // Verify the index store no longer exists
|
|
325
|
+
// expect(fs.existsSync(path.join(persistDir, 'index_store.json'))).toBe(false);
|
|
326
|
+
// });
|
|
327
|
+
});
|
package/src/api/embedding.ts
CHANGED
|
@@ -30,12 +30,13 @@ export async function createEmbeddings(
|
|
|
30
30
|
progressManager.updateProgress(operationId, 5);
|
|
31
31
|
|
|
32
32
|
const nodes = await transformDocumentsToNodes(documents, config);
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
persistNodes(nodes, config, settings, clients, (progress, total) => {
|
|
33
|
+
|
|
34
|
+
const progressCallback = (progress: number, total: number) => {
|
|
36
35
|
const percentage = Math.floor((progress / total) * 90) + 5; // Map to 5-95% of total progress
|
|
37
36
|
progressManager.updateProgress(operationId, percentage);
|
|
38
|
-
}
|
|
37
|
+
};
|
|
38
|
+
const [index] = await Promise.all([
|
|
39
|
+
persistNodes(nodes, config, settings, clients, progressCallback),
|
|
39
40
|
persistDocuments(documents, config, settings, clients)
|
|
40
41
|
]);
|
|
41
42
|
|
|
@@ -101,9 +101,11 @@ export function estimateCost(nodes: TextNode[], modelName: string): {
|
|
|
101
101
|
|
|
102
102
|
export async function getExistingVectorStoreIndex(config: EmbeddingConfig, settings: Settings, clients: Clients) {
|
|
103
103
|
const storageContext = await getStorageContext(config, settings, clients);
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
const vectorStore = storageContext.vectorStores[ModalityType.TEXT];
|
|
105
|
+
if (!vectorStore) {
|
|
106
|
+
throw new Error("Vector store for ModalityType.TEXT is undefined");
|
|
107
|
+
}
|
|
108
|
+
return await VectorStoreIndex.fromVectorStore(vectorStore);
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
export async function transformDocumentsToNodes(
|
|
@@ -235,12 +237,24 @@ export async function persistNodes(nodes: TextNode[], config: EmbeddingConfig, s
|
|
|
235
237
|
// Create index and embed documents
|
|
236
238
|
// this is what actaully embeds the nodes
|
|
237
239
|
// (even if they already have embeddings, stupidly)
|
|
240
|
+
const NODE_CHUNK_SIZE = 10000
|
|
241
|
+
const modifiedProgressCallback = (progress: number, total: number) => {
|
|
242
|
+
if (progressCallback) {
|
|
243
|
+
progressCallback(progress, nodes.length)
|
|
244
|
+
}
|
|
245
|
+
console.log('progress total nodes.length', progress, nodes.length);
|
|
246
|
+
}
|
|
238
247
|
const index = await ProgressVectorStoreIndex.init({
|
|
239
|
-
nodes,
|
|
240
|
-
storageContext,
|
|
241
|
-
|
|
242
|
-
progressCallback,
|
|
248
|
+
nodes: nodes.slice(0, NODE_CHUNK_SIZE),
|
|
249
|
+
storageContext,
|
|
250
|
+
progressCallback: modifiedProgressCallback
|
|
243
251
|
});
|
|
252
|
+
if (nodes.length > NODE_CHUNK_SIZE) {
|
|
253
|
+
for (let i = NODE_CHUNK_SIZE; i < nodes.length; i += NODE_CHUNK_SIZE) {
|
|
254
|
+
const chunk = nodes.slice(i, i + NODE_CHUNK_SIZE);
|
|
255
|
+
await index.insertNodes(chunk, { progressCallback: modifiedProgressCallback });
|
|
256
|
+
}
|
|
257
|
+
}
|
|
244
258
|
|
|
245
259
|
// I'm not sure why this explicit call to persist is necessary.
|
|
246
260
|
// storageContext should handle this, but it doesn't.
|
|
@@ -262,7 +276,8 @@ export async function persistNodes(nodes: TextNode[], config: EmbeddingConfig, s
|
|
|
262
276
|
return index;
|
|
263
277
|
}
|
|
264
278
|
|
|
265
|
-
|
|
279
|
+
// exported only for tests
|
|
280
|
+
export async function createVectorStore(config: EmbeddingConfig, settings: Settings, clients: Clients): Promise<PGVectorStore | SimpleVectorStore | BatchingWeaviateVectorStore> {
|
|
266
281
|
const embeddingModel = getEmbedModel(config, settings);
|
|
267
282
|
switch (config.vectorStoreType) {
|
|
268
283
|
|
|
@@ -301,7 +316,8 @@ async function createVectorStore(config: EmbeddingConfig, settings: Settings, cl
|
|
|
301
316
|
}
|
|
302
317
|
}
|
|
303
318
|
|
|
304
|
-
|
|
319
|
+
// exported only for tests
|
|
320
|
+
export async function createDocumentStore(config: EmbeddingConfig, settings: Settings, clients: Clients): Promise<BaseDocumentStore> {
|
|
305
321
|
// we create the doc store without a persist path, so it doesn't write to disk after every put()
|
|
306
322
|
switch (config.documentStoreType || config.vectorStoreType) {
|
|
307
323
|
case "postgres":
|
|
@@ -317,7 +333,8 @@ async function createDocumentStore(config: EmbeddingConfig, settings: Settings,
|
|
|
317
333
|
}
|
|
318
334
|
}
|
|
319
335
|
|
|
320
|
-
|
|
336
|
+
// exported only for tests
|
|
337
|
+
export async function createIndexStore(config: EmbeddingConfig, settings: Settings, clients: Clients): Promise<BaseIndexStore> {
|
|
321
338
|
switch (config.documentStoreType || config.vectorStoreType) {
|
|
322
339
|
case "postgres":
|
|
323
340
|
return new PostgresIndexStore({
|