@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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tyvm/knowhow",
3
- "version": "0.0.32",
3
+ "version": "0.0.33",
4
4
  "description": "ai cli with plugins and agents",
5
5
  "main": "ts_build/src/index.js",
6
6
  "bin": {
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 > 100) {
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 || index === inputs.length;
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, shouldSave));
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 alreadyEmbedded = embeddings.find(
169
- (e) => e.id === chunkId && e.text === textOfChunk
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
- let updates = [];
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
- "[" + embeddings.map((e) => JSON.stringify(e)).join(",") + "]";
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>[], save?: boolean): Promise<void>;
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 > 100) {
97
- console.error("woah there, that's a lot of files. I'm not going to embed that many");
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 || index === inputs.length;
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, shouldSave));
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 alreadyEmbedded = embeddings.find((e) => e.id === chunkId && e.text === textOfChunk);
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
- let updates = [];
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 = [], save = true) {
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 = "[" + embeddings.map((e) => JSON.stringify(e)).join(",") + "]";
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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"}