@tyvm/knowhow 0.0.32 → 0.0.33
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/package.json
CHANGED
package/src/embeddings.ts
CHANGED
|
@@ -71,6 +71,46 @@ function getChunkId(id: string, index: number, chunkSize: number) {
|
|
|
71
71
|
return chunkSize ? `${id}-${index}` : id;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
function parseIdFromChunk(chunkName: string) {
|
|
75
|
+
const split = chunkName.split("-");
|
|
76
|
+
if (
|
|
77
|
+
split.length > 1 &&
|
|
78
|
+
Number.isInteger(parseInt(split[split.length - 1], 10))
|
|
79
|
+
) {
|
|
80
|
+
// already has chunkId
|
|
81
|
+
return split.slice(0, -1).join("-");
|
|
82
|
+
}
|
|
83
|
+
return chunkName;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export async function detectDeletedEmbeddingFiles(
|
|
87
|
+
source: Config["embedSources"][0],
|
|
88
|
+
ignorePattern: string[],
|
|
89
|
+
embeddings: Embeddable[]
|
|
90
|
+
) {
|
|
91
|
+
if (source.kind !== "file") {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const inputs = (await glob.sync(source.input, {
|
|
95
|
+
ignore: ignorePattern,
|
|
96
|
+
})) as string[];
|
|
97
|
+
|
|
98
|
+
for (const embedding of embeddings) {
|
|
99
|
+
const id = parseIdFromChunk(embedding.id);
|
|
100
|
+
const dirName = path.dirname(id);
|
|
101
|
+
const exists = await fileExists(path.resolve(id));
|
|
102
|
+
|
|
103
|
+
const hasSomeFilesInDir = inputs.some((input) => input.startsWith(dirName));
|
|
104
|
+
if (hasSomeFilesInDir && !exists) {
|
|
105
|
+
console.log("Detected deleted embedding file", embedding.id);
|
|
106
|
+
const index = embeddings.findIndex((e) => e.id === embedding.id);
|
|
107
|
+
if (index !== -1) {
|
|
108
|
+
embeddings.splice(index, 1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
74
114
|
export async function embedSource(
|
|
75
115
|
model: Config["embeddingModel"],
|
|
76
116
|
source: Config["embedSources"][0],
|
|
@@ -97,10 +137,8 @@ export async function embedSource(
|
|
|
97
137
|
}
|
|
98
138
|
|
|
99
139
|
console.log(`Found ${inputs.length} files`);
|
|
100
|
-
if (inputs.length >
|
|
101
|
-
console.error(
|
|
102
|
-
"woah there, that's a lot of files. I'm not going to embed that many"
|
|
103
|
-
);
|
|
140
|
+
if (inputs.length > 1000) {
|
|
141
|
+
console.error("Large number of files detected. This may take a while");
|
|
104
142
|
}
|
|
105
143
|
console.log(inputs);
|
|
106
144
|
const embeddings: Embeddable[] = await loadEmbedding(source.output);
|
|
@@ -108,18 +146,20 @@ export async function embedSource(
|
|
|
108
146
|
let index = 0;
|
|
109
147
|
for (const file of inputs) {
|
|
110
148
|
index++;
|
|
111
|
-
const shouldSave = batch.length > 20
|
|
149
|
+
const shouldSave = batch.length > 20;
|
|
112
150
|
if (shouldSave) {
|
|
113
151
|
await Promise.all(batch);
|
|
152
|
+
await saveEmbedding(source.output, embeddings);
|
|
114
153
|
batch = [];
|
|
115
154
|
}
|
|
116
|
-
batch.push(embedKind(model, file, source, embeddings
|
|
155
|
+
batch.push(embedKind(model, file, source, embeddings));
|
|
117
156
|
}
|
|
118
157
|
if (batch.length > 0) {
|
|
119
158
|
await Promise.all(batch);
|
|
120
159
|
}
|
|
121
160
|
|
|
122
161
|
// Save one last time just in case
|
|
162
|
+
await detectDeletedEmbeddingFiles(source, ignorePattern, embeddings);
|
|
123
163
|
await saveEmbedding(source.output, embeddings);
|
|
124
164
|
}
|
|
125
165
|
|
|
@@ -165,9 +205,31 @@ export async function embed(
|
|
|
165
205
|
}
|
|
166
206
|
|
|
167
207
|
dontPrune.push(chunkId);
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
208
|
+
const foundMany = embeddings.filter((e) => e.id === chunkId);
|
|
209
|
+
const found = foundMany.length > 0 ? foundMany[0] : null;
|
|
210
|
+
const alreadyEmbedded = found && found.text === textOfChunk;
|
|
211
|
+
|
|
212
|
+
if (foundMany.length > 1) {
|
|
213
|
+
// We have duplicates, so we need to remove them
|
|
214
|
+
console.log(`Removing ${foundMany.length} duplicates for`, chunkId);
|
|
215
|
+
|
|
216
|
+
let toDelete = embeddings.findIndex((e) => e.id === chunkId);
|
|
217
|
+
while (toDelete !== -1) {
|
|
218
|
+
// Keep removing until we find no more duplicates
|
|
219
|
+
embeddings.splice(toDelete, 1);
|
|
220
|
+
toDelete = embeddings.findIndex((e) => e.id === chunkId);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
if (alreadyEmbedded) {
|
|
224
|
+
// Put back the exact match of the current chunk
|
|
225
|
+
// if this doesn't happen, we need to generate a new embedding
|
|
226
|
+
embeddings.push({
|
|
227
|
+
...found,
|
|
228
|
+
});
|
|
229
|
+
updates.push(chunkId);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
171
233
|
if (alreadyEmbedded) {
|
|
172
234
|
console.log("Skipping", chunkId);
|
|
173
235
|
continue;
|
|
@@ -235,7 +297,7 @@ export async function embedJson(
|
|
|
235
297
|
) as Embeddable[];
|
|
236
298
|
|
|
237
299
|
const embeddings: Embeddable[] = await loadEmbedding(output);
|
|
238
|
-
|
|
300
|
+
const updates = [];
|
|
239
301
|
let batch = [];
|
|
240
302
|
|
|
241
303
|
for (const row of sourceJson) {
|
|
@@ -264,24 +326,17 @@ export async function embedJson(
|
|
|
264
326
|
batch = [];
|
|
265
327
|
}
|
|
266
328
|
updates.push(...embedded);
|
|
267
|
-
|
|
268
|
-
if (updates.length > 20) {
|
|
269
|
-
await saveEmbedding(output, embeddings);
|
|
270
|
-
updates = [];
|
|
271
|
-
}
|
|
272
329
|
}
|
|
273
330
|
|
|
274
331
|
// save in case we missed some
|
|
275
332
|
await Promise.all(batch);
|
|
276
|
-
await saveEmbedding(output, embeddings);
|
|
277
333
|
}
|
|
278
334
|
|
|
279
335
|
export async function embedKind(
|
|
280
336
|
model: Config["embeddingModel"],
|
|
281
337
|
id: string,
|
|
282
338
|
source: Config["embedSources"][0],
|
|
283
|
-
embeddings = [] as Embeddable[]
|
|
284
|
-
save = true
|
|
339
|
+
embeddings = [] as Embeddable[]
|
|
285
340
|
) {
|
|
286
341
|
const { prompt, output, uploadMode, chunkSize } = source;
|
|
287
342
|
|
|
@@ -312,10 +367,6 @@ export async function embedKind(
|
|
|
312
367
|
);
|
|
313
368
|
updates.push(...embedded);
|
|
314
369
|
}
|
|
315
|
-
|
|
316
|
-
if (save && updates.length > 0) {
|
|
317
|
-
await saveEmbedding(output, embeddings);
|
|
318
|
-
}
|
|
319
370
|
}
|
|
320
371
|
|
|
321
372
|
async function handleFileKind(filePath: string) {
|
|
@@ -367,7 +418,12 @@ export async function handleAllKinds(
|
|
|
367
418
|
|
|
368
419
|
export async function saveEmbedding(output: string, embeddings: Embeddable[]) {
|
|
369
420
|
const fileString =
|
|
370
|
-
"[" +
|
|
421
|
+
"[" +
|
|
422
|
+
embeddings
|
|
423
|
+
.sort((a, b) => (a.id < b.id ? -1 : 1))
|
|
424
|
+
.map((e) => JSON.stringify(e))
|
|
425
|
+
.join(",") +
|
|
426
|
+
"]";
|
|
371
427
|
await writeFile(output, fileString);
|
|
372
428
|
}
|
|
373
429
|
|
|
@@ -6,11 +6,12 @@ export declare function getConfiguredEmbeddingMap(): Promise<{
|
|
|
6
6
|
[filePath: string]: Embeddable<any>[];
|
|
7
7
|
}>;
|
|
8
8
|
export declare function getConfiguredEmbeddings(): Promise<Embeddable<any>[]>;
|
|
9
|
+
export declare function detectDeletedEmbeddingFiles(source: Config["embedSources"][0], ignorePattern: string[], embeddings: Embeddable[]): Promise<void>;
|
|
9
10
|
export declare function embedSource(model: Config["embeddingModel"], source: Config["embedSources"][0], ignorePattern: string[]): Promise<void>;
|
|
10
11
|
export declare function embed(model: string, id: string, text: string, metadata: any, embeddings: Embeddable[], prompt?: string, chunkSize?: number, uploadMode?: boolean, minLength?: number): Promise<string[]>;
|
|
11
12
|
export declare function isEmbeddingFile(inputFile: string): Promise<boolean>;
|
|
12
13
|
export declare function embedJson(model: string, inputFile: string, source: Config["embedSources"][0]): Promise<void>;
|
|
13
|
-
export declare function embedKind(model: Config["embeddingModel"], id: string, source: Config["embedSources"][0], embeddings?: Embeddable<any>[]
|
|
14
|
+
export declare function embedKind(model: Config["embeddingModel"], id: string, source: Config["embedSources"][0], embeddings?: Embeddable<any>[]): Promise<void>;
|
|
14
15
|
export declare function handleAllKinds(id: string, source: Config["embedSources"][0]): Promise<Partial<Embeddable>[]>;
|
|
15
16
|
export declare function saveEmbedding(output: string, embeddings: Embeddable[]): Promise<void>;
|
|
16
17
|
export declare function pruneEmbedding(id: string, chunkIds: string[], embeddings: Embeddable[]): Embeddable<any>[];
|
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.queryEmbedding = exports.pruneMetadata = exports.pruneVector = exports.pruneEmbedding = exports.saveEmbedding = exports.handleAllKinds = exports.embedKind = exports.embedJson = exports.isEmbeddingFile = exports.embed = exports.embedSource = exports.getConfiguredEmbeddings = exports.getConfiguredEmbeddingMap = exports.loadEmbedding = exports.cosineSimilarity = void 0;
|
|
29
|
+
exports.queryEmbedding = exports.pruneMetadata = exports.pruneVector = exports.pruneEmbedding = exports.saveEmbedding = exports.handleAllKinds = exports.embedKind = exports.embedJson = exports.isEmbeddingFile = exports.embed = exports.embedSource = exports.detectDeletedEmbeddingFiles = exports.getConfiguredEmbeddings = exports.getConfiguredEmbeddingMap = exports.loadEmbedding = exports.cosineSimilarity = void 0;
|
|
30
30
|
const glob_1 = __importDefault(require("glob"));
|
|
31
31
|
const path = __importStar(require("path"));
|
|
32
32
|
const config_1 = require("./config");
|
|
@@ -78,6 +78,36 @@ function getChunkId(id, index, chunkSize) {
|
|
|
78
78
|
}
|
|
79
79
|
return chunkSize ? `${id}-${index}` : id;
|
|
80
80
|
}
|
|
81
|
+
function parseIdFromChunk(chunkName) {
|
|
82
|
+
const split = chunkName.split("-");
|
|
83
|
+
if (split.length > 1 &&
|
|
84
|
+
Number.isInteger(parseInt(split[split.length - 1], 10))) {
|
|
85
|
+
return split.slice(0, -1).join("-");
|
|
86
|
+
}
|
|
87
|
+
return chunkName;
|
|
88
|
+
}
|
|
89
|
+
async function detectDeletedEmbeddingFiles(source, ignorePattern, embeddings) {
|
|
90
|
+
if (source.kind !== "file") {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const inputs = (await glob_1.default.sync(source.input, {
|
|
94
|
+
ignore: ignorePattern,
|
|
95
|
+
}));
|
|
96
|
+
for (const embedding of embeddings) {
|
|
97
|
+
const id = parseIdFromChunk(embedding.id);
|
|
98
|
+
const dirName = path.dirname(id);
|
|
99
|
+
const exists = await (0, utils_1.fileExists)(path.resolve(id));
|
|
100
|
+
const hasSomeFilesInDir = inputs.some((input) => input.startsWith(dirName));
|
|
101
|
+
if (hasSomeFilesInDir && !exists) {
|
|
102
|
+
console.log("Detected deleted embedding file", embedding.id);
|
|
103
|
+
const index = embeddings.findIndex((e) => e.id === embedding.id);
|
|
104
|
+
if (index !== -1) {
|
|
105
|
+
embeddings.splice(index, 1);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.detectDeletedEmbeddingFiles = detectDeletedEmbeddingFiles;
|
|
81
111
|
async function embedSource(model, source, ignorePattern) {
|
|
82
112
|
if (!source.input) {
|
|
83
113
|
console.log("Skipping", source.output, "with blank input property");
|
|
@@ -93,8 +123,8 @@ async function embedSource(model, source, ignorePattern) {
|
|
|
93
123
|
inputs = [source.input];
|
|
94
124
|
}
|
|
95
125
|
console.log(`Found ${inputs.length} files`);
|
|
96
|
-
if (inputs.length >
|
|
97
|
-
console.error("
|
|
126
|
+
if (inputs.length > 1000) {
|
|
127
|
+
console.error("Large number of files detected. This may take a while");
|
|
98
128
|
}
|
|
99
129
|
console.log(inputs);
|
|
100
130
|
const embeddings = await loadEmbedding(source.output);
|
|
@@ -102,16 +132,18 @@ async function embedSource(model, source, ignorePattern) {
|
|
|
102
132
|
let index = 0;
|
|
103
133
|
for (const file of inputs) {
|
|
104
134
|
index++;
|
|
105
|
-
const shouldSave = batch.length > 20
|
|
135
|
+
const shouldSave = batch.length > 20;
|
|
106
136
|
if (shouldSave) {
|
|
107
137
|
await Promise.all(batch);
|
|
138
|
+
await saveEmbedding(source.output, embeddings);
|
|
108
139
|
batch = [];
|
|
109
140
|
}
|
|
110
|
-
batch.push(embedKind(model, file, source, embeddings
|
|
141
|
+
batch.push(embedKind(model, file, source, embeddings));
|
|
111
142
|
}
|
|
112
143
|
if (batch.length > 0) {
|
|
113
144
|
await Promise.all(batch);
|
|
114
145
|
}
|
|
146
|
+
await detectDeletedEmbeddingFiles(source, ignorePattern, embeddings);
|
|
115
147
|
await saveEmbedding(source.output, embeddings);
|
|
116
148
|
}
|
|
117
149
|
exports.embedSource = embedSource;
|
|
@@ -139,7 +171,23 @@ async function embed(model, id, text, metadata, embeddings, prompt, chunkSize, u
|
|
|
139
171
|
continue;
|
|
140
172
|
}
|
|
141
173
|
dontPrune.push(chunkId);
|
|
142
|
-
const
|
|
174
|
+
const foundMany = embeddings.filter((e) => e.id === chunkId);
|
|
175
|
+
const found = foundMany.length > 0 ? foundMany[0] : null;
|
|
176
|
+
const alreadyEmbedded = found && found.text === textOfChunk;
|
|
177
|
+
if (foundMany.length > 1) {
|
|
178
|
+
console.log(`Removing ${foundMany.length} duplicates for`, chunkId);
|
|
179
|
+
let toDelete = embeddings.findIndex((e) => e.id === chunkId);
|
|
180
|
+
while (toDelete !== -1) {
|
|
181
|
+
embeddings.splice(toDelete, 1);
|
|
182
|
+
toDelete = embeddings.findIndex((e) => e.id === chunkId);
|
|
183
|
+
}
|
|
184
|
+
if (alreadyEmbedded) {
|
|
185
|
+
embeddings.push({
|
|
186
|
+
...found,
|
|
187
|
+
});
|
|
188
|
+
updates.push(chunkId);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
143
191
|
if (alreadyEmbedded) {
|
|
144
192
|
console.log("Skipping", chunkId);
|
|
145
193
|
continue;
|
|
@@ -187,7 +235,7 @@ async function embedJson(model, inputFile, source) {
|
|
|
187
235
|
const filePath = path.join(__dirname, inputFile);
|
|
188
236
|
const sourceJson = JSON.parse(await (0, utils_1.readFile)(inputFile, "utf8"));
|
|
189
237
|
const embeddings = await loadEmbedding(output);
|
|
190
|
-
|
|
238
|
+
const updates = [];
|
|
191
239
|
let batch = [];
|
|
192
240
|
for (const row of sourceJson) {
|
|
193
241
|
if (embeddings.find((e) => e.id === row.id)) {
|
|
@@ -201,16 +249,11 @@ async function embedJson(model, inputFile, source) {
|
|
|
201
249
|
batch = [];
|
|
202
250
|
}
|
|
203
251
|
updates.push(...embedded);
|
|
204
|
-
if (updates.length > 20) {
|
|
205
|
-
await saveEmbedding(output, embeddings);
|
|
206
|
-
updates = [];
|
|
207
|
-
}
|
|
208
252
|
}
|
|
209
253
|
await Promise.all(batch);
|
|
210
|
-
await saveEmbedding(output, embeddings);
|
|
211
254
|
}
|
|
212
255
|
exports.embedJson = embedJson;
|
|
213
|
-
async function embedKind(model, id, source, embeddings = []
|
|
256
|
+
async function embedKind(model, id, source, embeddings = []) {
|
|
214
257
|
const { prompt, output, uploadMode, chunkSize } = source;
|
|
215
258
|
const stat = !source.kind && (await (0, utils_1.fileStat)(id));
|
|
216
259
|
if (stat && stat.isDirectory()) {
|
|
@@ -227,9 +270,6 @@ async function embedKind(model, id, source, embeddings = [], save = true) {
|
|
|
227
270
|
const embedded = await embed(model, rowId, text, metadata, embeddings, prompt, chunkSize, uploadMode);
|
|
228
271
|
updates.push(...embedded);
|
|
229
272
|
}
|
|
230
|
-
if (save && updates.length > 0) {
|
|
231
|
-
await saveEmbedding(output, embeddings);
|
|
232
|
-
}
|
|
233
273
|
}
|
|
234
274
|
exports.embedKind = embedKind;
|
|
235
275
|
async function handleFileKind(filePath) {
|
|
@@ -274,7 +314,12 @@ async function handleAllKinds(id, source) {
|
|
|
274
314
|
}
|
|
275
315
|
exports.handleAllKinds = handleAllKinds;
|
|
276
316
|
async function saveEmbedding(output, embeddings) {
|
|
277
|
-
const fileString = "[" +
|
|
317
|
+
const fileString = "[" +
|
|
318
|
+
embeddings
|
|
319
|
+
.sort((a, b) => (a.id < b.id ? -1 : 1))
|
|
320
|
+
.map((e) => JSON.stringify(e))
|
|
321
|
+
.join(",") +
|
|
322
|
+
"]";
|
|
278
323
|
await (0, utils_1.writeFile)(output, fileString);
|
|
279
324
|
}
|
|
280
325
|
exports.saveEmbedding = saveEmbedding;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/embeddings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/embeddings.ts"],"names":[],"mappings":"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"}
|