@convex-dev/rag 0.5.1 → 0.5.3
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 +5 -4
- package/dist/client/index.d.ts +5 -19
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +23 -10
- package/dist/client/index.js.map +1 -1
- package/package.json +1 -1
- package/src/client/index.test.ts +12 -6
- package/src/client/index.ts +35 -29
package/README.md
CHANGED
|
@@ -95,6 +95,7 @@ Search across content with vector similarity
|
|
|
95
95
|
- `results` is an array of matching chunks with scores and more metadata.
|
|
96
96
|
- `entries` is an array of the entries that matched the query.
|
|
97
97
|
Each result has a `entryId` referencing one of these source entries.
|
|
98
|
+
- `usage` contains embedding token usage information. Will be `{ tokens: 0 }` if no embedding was performed (e.g. when passing pre-computed embeddings).
|
|
98
99
|
|
|
99
100
|
```ts
|
|
100
101
|
export const search = action({
|
|
@@ -102,14 +103,14 @@ export const search = action({
|
|
|
102
103
|
query: v.string(),
|
|
103
104
|
},
|
|
104
105
|
handler: async (ctx, args) => {
|
|
105
|
-
const { results, text, entries } = await rag.search(ctx, {
|
|
106
|
+
const { results, text, entries, usage } = await rag.search(ctx, {
|
|
106
107
|
namespace: "global",
|
|
107
108
|
query: args.query,
|
|
108
109
|
limit: 10,
|
|
109
110
|
vectorScoreThreshold: 0.5, // Only return results with a score >= 0.5
|
|
110
111
|
});
|
|
111
112
|
|
|
112
|
-
return { results, text, entries };
|
|
113
|
+
return { results, text, entries, usage };
|
|
113
114
|
},
|
|
114
115
|
});
|
|
115
116
|
```
|
|
@@ -253,14 +254,14 @@ export const searchWithContext = action({
|
|
|
253
254
|
userId: v.string(),
|
|
254
255
|
},
|
|
255
256
|
handler: async (ctx, args) => {
|
|
256
|
-
const { results, text, entries } = await rag.search(ctx, {
|
|
257
|
+
const { results, text, entries, usage } = await rag.search(ctx, {
|
|
257
258
|
namespace: args.userId,
|
|
258
259
|
query: args.query,
|
|
259
260
|
chunkContext: { before: 2, after: 1 }, // Include 2 chunks before, 1 after
|
|
260
261
|
limit: 5,
|
|
261
262
|
});
|
|
262
263
|
|
|
263
|
-
return { results, text, entries };
|
|
264
|
+
return { results, text, entries, usage };
|
|
264
265
|
},
|
|
265
266
|
});
|
|
266
267
|
```
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { generateText, type ModelMessage } from "ai";
|
|
1
|
+
import { generateText, type ModelMessage, type EmbeddingModel, type EmbeddingModelUsage } from "ai";
|
|
2
2
|
import { type FunctionArgs, type FunctionReturnType, type GenericActionCtx, type GenericDataModel, type GenericMutationCtx, type PaginationOptions, type PaginationResult, type RegisteredAction, type RegisteredMutation } from "convex/server";
|
|
3
3
|
import { type Value } from "convex/values";
|
|
4
4
|
import { vEntryId, vNamespaceId, type Chunk, type Entry, type EntryFilter, type EntryId, type Namespace, type NamespaceId, type SearchEntry, type SearchResult, type Status } from "../shared.js";
|
|
@@ -11,27 +11,11 @@ export type { ChunkerAction, Entry, EntryId, RAGComponent, NamespaceId, OnComple
|
|
|
11
11
|
export { type VEntry, type VSearchEntry, type EntryFilter, vEntry, vSearchEntry, vSearchResult, vOnCompleteArgs, } from "../shared.js";
|
|
12
12
|
export { contentHashFromArrayBuffer, guessMimeTypeFromExtension, guessMimeTypeFromContents, } from "./fileUtils.js";
|
|
13
13
|
type Importance = number;
|
|
14
|
-
/**
|
|
15
|
-
* This works with either AI SDK v4 or v5.
|
|
16
|
-
* It's a subset of the AI SDK v4 EmbeddingModelV1 & EmbeddingModelV2 types.
|
|
17
|
-
*/
|
|
18
|
-
type TextEmbeddingModel = {
|
|
19
|
-
provider: string;
|
|
20
|
-
modelId: string;
|
|
21
|
-
specificationVersion: any;
|
|
22
|
-
maxEmbeddingsPerCall: PromiseLike<number | undefined> | number | undefined;
|
|
23
|
-
supportsParallelCalls: PromiseLike<boolean> | boolean;
|
|
24
|
-
doEmbed: (options: {
|
|
25
|
-
values: string[];
|
|
26
|
-
}) => PromiseLike<{
|
|
27
|
-
embeddings: number[][];
|
|
28
|
-
}>;
|
|
29
|
-
};
|
|
30
14
|
export declare class RAG<FitlerSchemas extends Record<string, Value> = Record<string, Value>, EntryMetadata extends Record<string, Value> = Record<string, Value>> {
|
|
31
15
|
component: RAGComponent;
|
|
32
16
|
options: {
|
|
33
17
|
embeddingDimension: number;
|
|
34
|
-
textEmbeddingModel:
|
|
18
|
+
textEmbeddingModel: EmbeddingModel<string>;
|
|
35
19
|
filterNames?: FilterNames<FitlerSchemas>;
|
|
36
20
|
};
|
|
37
21
|
/**
|
|
@@ -55,7 +39,7 @@ export declare class RAG<FitlerSchemas extends Record<string, Value> = Record<st
|
|
|
55
39
|
*/
|
|
56
40
|
constructor(component: RAGComponent, options: {
|
|
57
41
|
embeddingDimension: number;
|
|
58
|
-
textEmbeddingModel:
|
|
42
|
+
textEmbeddingModel: EmbeddingModel<string>;
|
|
59
43
|
filterNames?: FilterNames<FitlerSchemas>;
|
|
60
44
|
});
|
|
61
45
|
/**
|
|
@@ -91,6 +75,7 @@ export declare class RAG<FitlerSchemas extends Record<string, Value> = Record<st
|
|
|
91
75
|
status: Status;
|
|
92
76
|
created: boolean;
|
|
93
77
|
replacedEntry: Entry<FitlerSchemas, EntryMetadata> | null;
|
|
78
|
+
usage: EmbeddingModelUsage;
|
|
94
79
|
}>;
|
|
95
80
|
/**
|
|
96
81
|
* Add an entry to the store asynchronously.
|
|
@@ -155,6 +140,7 @@ export declare class RAG<FitlerSchemas extends Record<string, Value> = Record<st
|
|
|
155
140
|
results: SearchResult[];
|
|
156
141
|
text: string;
|
|
157
142
|
entries: SearchEntry<FitlerSchemas, EntryMetadata>[];
|
|
143
|
+
usage: EmbeddingModelUsage;
|
|
158
144
|
}>;
|
|
159
145
|
/**
|
|
160
146
|
* Generate text based on Retrieval-Augmented Generation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { embed, embedMany, generateText } from "ai";
|
|
1
|
+
import { embed, embedMany, generateText, } from "ai";
|
|
2
2
|
import { assert } from "convex-helpers";
|
|
3
3
|
import { createFunctionHandle, internalActionGeneric, internalMutationGeneric, } from "convex/server";
|
|
4
4
|
import { CHUNK_BATCH_SIZE, filterNamesContain, vChunkerArgs, vEntryId, vNamespaceId, vOnCompleteArgs, } from "../shared.js";
|
|
@@ -59,8 +59,11 @@ export class RAG {
|
|
|
59
59
|
validateAddFilterValues(args.filterValues, this.options.filterNames);
|
|
60
60
|
const chunks = args.chunks ?? defaultChunker(args.text);
|
|
61
61
|
let allChunks;
|
|
62
|
+
const totalUsage = { tokens: 0 };
|
|
62
63
|
if (Array.isArray(chunks) && chunks.length < CHUNK_BATCH_SIZE) {
|
|
63
|
-
|
|
64
|
+
const result = await createChunkArgsBatch(this.options.textEmbeddingModel, chunks);
|
|
65
|
+
allChunks = result.chunks;
|
|
66
|
+
totalUsage.tokens += result.usage.tokens;
|
|
64
67
|
}
|
|
65
68
|
const onComplete = args.onComplete && (await createFunctionHandle(args.onComplete));
|
|
66
69
|
const { entryId, status, created } = await ctx.runMutation(this.component.entries.add, {
|
|
@@ -82,6 +85,7 @@ export class RAG {
|
|
|
82
85
|
status,
|
|
83
86
|
created,
|
|
84
87
|
replacedEntry: null,
|
|
88
|
+
usage: totalUsage,
|
|
85
89
|
};
|
|
86
90
|
}
|
|
87
91
|
let isPending = false;
|
|
@@ -93,13 +97,14 @@ export class RAG {
|
|
|
93
97
|
// break chunks up into batches, respecting soft limit
|
|
94
98
|
let startOrder = 0;
|
|
95
99
|
for await (const batch of batchIterator(chunks, CHUNK_BATCH_SIZE)) {
|
|
96
|
-
const
|
|
100
|
+
const result = await createChunkArgsBatch(this.options.textEmbeddingModel, batch);
|
|
101
|
+
totalUsage.tokens += result.usage.tokens;
|
|
97
102
|
const { status } = await ctx.runMutation(this.component.chunks.insert, {
|
|
98
103
|
entryId,
|
|
99
104
|
startOrder,
|
|
100
|
-
chunks,
|
|
105
|
+
chunks: result.chunks,
|
|
101
106
|
});
|
|
102
|
-
startOrder += chunks.length;
|
|
107
|
+
startOrder += result.chunks.length;
|
|
103
108
|
if (status === "pending") {
|
|
104
109
|
isPending = true;
|
|
105
110
|
}
|
|
@@ -119,6 +124,7 @@ export class RAG {
|
|
|
119
124
|
status: "replaced",
|
|
120
125
|
created: false,
|
|
121
126
|
replacedEntry: null,
|
|
127
|
+
usage: totalUsage,
|
|
122
128
|
};
|
|
123
129
|
}
|
|
124
130
|
startOrder = nextStartOrder;
|
|
@@ -130,6 +136,7 @@ export class RAG {
|
|
|
130
136
|
status: "ready",
|
|
131
137
|
replacedEntry: promoted.replacedEntry,
|
|
132
138
|
created: true,
|
|
139
|
+
usage: totalUsage,
|
|
133
140
|
};
|
|
134
141
|
}
|
|
135
142
|
/**
|
|
@@ -195,12 +202,14 @@ export class RAG {
|
|
|
195
202
|
async search(ctx, args) {
|
|
196
203
|
const { namespace, filters = [], limit = DEFAULT_SEARCH_LIMIT, chunkContext = { before: 0, after: 0 }, vectorScoreThreshold, } = args;
|
|
197
204
|
let embedding = Array.isArray(args.query) ? args.query : undefined;
|
|
205
|
+
let usage = { tokens: 0 };
|
|
198
206
|
if (!embedding) {
|
|
199
207
|
const embedResult = await embed({
|
|
200
208
|
model: this.options.textEmbeddingModel,
|
|
201
209
|
value: args.query,
|
|
202
210
|
});
|
|
203
211
|
embedding = embedResult.embedding;
|
|
212
|
+
usage = embedResult.usage;
|
|
204
213
|
}
|
|
205
214
|
const { results, entries } = await ctx.runAction(this.component.search.search, {
|
|
206
215
|
embedding,
|
|
@@ -237,6 +246,7 @@ export class RAG {
|
|
|
237
246
|
.map((e) => (e.title ? `## ${e.title}:\n\n${e.text}` : e.text))
|
|
238
247
|
.join(`\n\n---\n\n`),
|
|
239
248
|
entries: entriesWithTexts,
|
|
249
|
+
usage,
|
|
240
250
|
};
|
|
241
251
|
}
|
|
242
252
|
/**
|
|
@@ -514,13 +524,13 @@ export class RAG {
|
|
|
514
524
|
}
|
|
515
525
|
let batchOrder = 0;
|
|
516
526
|
for await (const batch of batchIterator(chunkIterator, CHUNK_BATCH_SIZE)) {
|
|
517
|
-
const
|
|
527
|
+
const result = await createChunkArgsBatch(this.options.textEmbeddingModel, batch);
|
|
518
528
|
await ctx.runMutation(args.insertChunks, {
|
|
519
529
|
entryId: entry.entryId,
|
|
520
530
|
startOrder: batchOrder,
|
|
521
|
-
chunks:
|
|
531
|
+
chunks: result.chunks,
|
|
522
532
|
});
|
|
523
|
-
batchOrder +=
|
|
533
|
+
batchOrder += result.chunks.length;
|
|
524
534
|
}
|
|
525
535
|
},
|
|
526
536
|
});
|
|
@@ -599,21 +609,24 @@ async function createChunkArgsBatch(embedModel, chunks) {
|
|
|
599
609
|
index,
|
|
600
610
|
})
|
|
601
611
|
.filter((b) => b !== null);
|
|
612
|
+
const totalUsage = { tokens: 0 };
|
|
602
613
|
for (const batch of makeBatches(missingEmbeddingsWithIndex, 100)) {
|
|
603
|
-
const { embeddings } = await embedMany({
|
|
614
|
+
const { embeddings, usage } = await embedMany({
|
|
604
615
|
model: embedModel,
|
|
605
616
|
values: batch.map((b) => b.text.trim() || "<empty>"),
|
|
606
617
|
});
|
|
618
|
+
totalUsage.tokens += usage.tokens;
|
|
607
619
|
for (const [index, embedding] of embeddings.entries()) {
|
|
608
620
|
argsMaybeMissingEmbeddings[batch[index].index].embedding = embedding;
|
|
609
621
|
}
|
|
610
622
|
}
|
|
611
|
-
|
|
623
|
+
const finalChunks = argsMaybeMissingEmbeddings.filter((a) => {
|
|
612
624
|
if (a.embedding === undefined) {
|
|
613
625
|
throw new Error("Embedding is undefined for chunk " + a.content.text);
|
|
614
626
|
}
|
|
615
627
|
return true;
|
|
616
628
|
});
|
|
629
|
+
return { chunks: finalChunks, usage: totalUsage };
|
|
617
630
|
}
|
|
618
631
|
function getModelCategory(model) {
|
|
619
632
|
if (typeof model !== "string") {
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/client/index.test.ts
CHANGED
|
@@ -94,7 +94,7 @@ export const search = action({
|
|
|
94
94
|
),
|
|
95
95
|
},
|
|
96
96
|
handler: async (ctx, args) => {
|
|
97
|
-
const { results, entries, text } = await rag.search(ctx, {
|
|
97
|
+
const { results, entries, text, usage } = await rag.search(ctx, {
|
|
98
98
|
query: args.embedding,
|
|
99
99
|
namespace: args.namespace,
|
|
100
100
|
limit: args.limit ?? 10,
|
|
@@ -105,6 +105,7 @@ export const search = action({
|
|
|
105
105
|
results,
|
|
106
106
|
text,
|
|
107
107
|
entries,
|
|
108
|
+
usage,
|
|
108
109
|
};
|
|
109
110
|
},
|
|
110
111
|
});
|
|
@@ -127,7 +128,7 @@ function dummyEmbeddings(text: string) {
|
|
|
127
128
|
describe("RAG thick client", () => {
|
|
128
129
|
test("should add a entry and be able to list it", async () => {
|
|
129
130
|
const t = initConvexTest(schema);
|
|
130
|
-
const { entryId, status } = await t.mutation(testApi.add, {
|
|
131
|
+
const { entryId, status, usage } = await t.mutation(testApi.add, {
|
|
131
132
|
key: "test",
|
|
132
133
|
chunks: [
|
|
133
134
|
{ text: "A", metadata: {}, embedding: dummyEmbeddings("A") },
|
|
@@ -138,6 +139,7 @@ describe("RAG thick client", () => {
|
|
|
138
139
|
});
|
|
139
140
|
expect(entryId).toBeDefined();
|
|
140
141
|
expect(status).toBe("ready");
|
|
142
|
+
expect(usage).toEqual({ tokens: 0 });
|
|
141
143
|
await t.run(async (ctx) => {
|
|
142
144
|
const { isDone, page } = await rag.listChunks(ctx, {
|
|
143
145
|
entryId,
|
|
@@ -167,14 +169,15 @@ describe("RAG thick client", () => {
|
|
|
167
169
|
|
|
168
170
|
test("should be able to re-add an entry with the same key", async () => {
|
|
169
171
|
const t = initConvexTest(schema);
|
|
170
|
-
const { entryId, status } = await t.mutation(testApi.add, {
|
|
172
|
+
const { entryId, status, usage } = await t.mutation(testApi.add, {
|
|
171
173
|
key: "test",
|
|
172
174
|
chunks: [{ text: "A", metadata: {}, embedding: dummyEmbeddings("A") }],
|
|
173
175
|
namespace: "test",
|
|
174
176
|
});
|
|
175
177
|
expect(entryId).toBeDefined();
|
|
176
178
|
expect(status).toBe("ready");
|
|
177
|
-
|
|
179
|
+
expect(usage).toEqual({ tokens: 0 });
|
|
180
|
+
const { entryId: entryId2, status: status2, usage: usage2 } = await t.mutation(
|
|
178
181
|
testApi.add,
|
|
179
182
|
{
|
|
180
183
|
key: "test",
|
|
@@ -184,6 +187,7 @@ describe("RAG thick client", () => {
|
|
|
184
187
|
);
|
|
185
188
|
expect(entryId2).toBeDefined();
|
|
186
189
|
expect(status2).toBe("ready");
|
|
190
|
+
expect(usage2).toEqual({ tokens: 0 });
|
|
187
191
|
const { page } = await t.query(components.rag.chunks.list, {
|
|
188
192
|
entryId: entryId2,
|
|
189
193
|
paginationOpts: { numItems: 10, cursor: null },
|
|
@@ -224,7 +228,7 @@ describe("RAG thick client", () => {
|
|
|
224
228
|
});
|
|
225
229
|
|
|
226
230
|
// Search and verify text format
|
|
227
|
-
const { text, entries } = await t.action(testApi.search, {
|
|
231
|
+
const { text, entries, usage } = await t.action(testApi.search, {
|
|
228
232
|
embedding: dummyEmbeddings("content"),
|
|
229
233
|
namespace: "format-test",
|
|
230
234
|
limit: 10,
|
|
@@ -241,6 +245,7 @@ describe("RAG thick client", () => {
|
|
|
241
245
|
expect(text).toBe(
|
|
242
246
|
"## Test Document:\n\nChunk 1 content\nChunk 2 content\nChunk 3 content"
|
|
243
247
|
);
|
|
248
|
+
expect(usage).toEqual({ tokens: 0 });
|
|
244
249
|
});
|
|
245
250
|
|
|
246
251
|
test("should format single entry without title correctly", async () => {
|
|
@@ -259,7 +264,7 @@ describe("RAG thick client", () => {
|
|
|
259
264
|
namespace: "format-test-notitle",
|
|
260
265
|
});
|
|
261
266
|
|
|
262
|
-
const { text, entries } = await t.action(testApi.search, {
|
|
267
|
+
const { text, entries, usage } = await t.action(testApi.search, {
|
|
263
268
|
embedding: dummyEmbeddings("content"),
|
|
264
269
|
namespace: "format-test-notitle",
|
|
265
270
|
limit: 10,
|
|
@@ -270,6 +275,7 @@ describe("RAG thick client", () => {
|
|
|
270
275
|
expect(entries).toHaveLength(1);
|
|
271
276
|
expect(entries[0].text).toBe("Content without title");
|
|
272
277
|
expect(text).toBe("Content without title");
|
|
278
|
+
expect(usage).toEqual({ tokens: 0 });
|
|
273
279
|
});
|
|
274
280
|
|
|
275
281
|
test("should format non-sequential chunks with ellipsis separator", async () => {
|
package/src/client/index.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
embed,
|
|
3
|
+
embedMany,
|
|
4
|
+
generateText,
|
|
5
|
+
type ModelMessage,
|
|
6
|
+
type EmbeddingModel,
|
|
7
|
+
type EmbeddingModelUsage,
|
|
8
|
+
} from "ai";
|
|
2
9
|
import { assert } from "convex-helpers";
|
|
3
10
|
import {
|
|
4
11
|
createFunctionHandle,
|
|
@@ -84,22 +91,6 @@ const DEFAULT_SEARCH_LIMIT = 10;
|
|
|
84
91
|
// Used for vector search weighting.
|
|
85
92
|
type Importance = number;
|
|
86
93
|
|
|
87
|
-
/**
|
|
88
|
-
* This works with either AI SDK v4 or v5.
|
|
89
|
-
* It's a subset of the AI SDK v4 EmbeddingModelV1 & EmbeddingModelV2 types.
|
|
90
|
-
*/
|
|
91
|
-
type TextEmbeddingModel = {
|
|
92
|
-
provider: string;
|
|
93
|
-
modelId: string;
|
|
94
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
95
|
-
specificationVersion: any;
|
|
96
|
-
maxEmbeddingsPerCall: PromiseLike<number | undefined> | number | undefined;
|
|
97
|
-
supportsParallelCalls: PromiseLike<boolean> | boolean;
|
|
98
|
-
doEmbed: (options: {
|
|
99
|
-
values: string[];
|
|
100
|
-
}) => PromiseLike<{ embeddings: number[][] }>;
|
|
101
|
-
};
|
|
102
|
-
|
|
103
94
|
export class RAG<
|
|
104
95
|
FitlerSchemas extends Record<string, Value> = Record<string, Value>,
|
|
105
96
|
EntryMetadata extends Record<string, Value> = Record<string, Value>,
|
|
@@ -127,7 +118,7 @@ export class RAG<
|
|
|
127
118
|
public component: RAGComponent,
|
|
128
119
|
public options: {
|
|
129
120
|
embeddingDimension: number;
|
|
130
|
-
textEmbeddingModel:
|
|
121
|
+
textEmbeddingModel: EmbeddingModel<string>;
|
|
131
122
|
filterNames?: FilterNames<FitlerSchemas>;
|
|
132
123
|
}
|
|
133
124
|
) {}
|
|
@@ -173,6 +164,7 @@ export class RAG<
|
|
|
173
164
|
status: Status;
|
|
174
165
|
created: boolean;
|
|
175
166
|
replacedEntry: Entry<FitlerSchemas, EntryMetadata> | null;
|
|
167
|
+
usage: EmbeddingModelUsage;
|
|
176
168
|
}> {
|
|
177
169
|
let namespaceId: NamespaceId;
|
|
178
170
|
if ("namespaceId" in args) {
|
|
@@ -189,11 +181,14 @@ export class RAG<
|
|
|
189
181
|
|
|
190
182
|
const chunks = args.chunks ?? defaultChunker(args.text);
|
|
191
183
|
let allChunks: CreateChunkArgs[] | undefined;
|
|
184
|
+
const totalUsage: EmbeddingModelUsage = { tokens: 0 };
|
|
192
185
|
if (Array.isArray(chunks) && chunks.length < CHUNK_BATCH_SIZE) {
|
|
193
|
-
|
|
186
|
+
const result = await createChunkArgsBatch(
|
|
194
187
|
this.options.textEmbeddingModel,
|
|
195
188
|
chunks
|
|
196
189
|
);
|
|
190
|
+
allChunks = result.chunks;
|
|
191
|
+
totalUsage.tokens += result.usage.tokens;
|
|
197
192
|
}
|
|
198
193
|
|
|
199
194
|
const onComplete =
|
|
@@ -221,6 +216,7 @@ export class RAG<
|
|
|
221
216
|
status,
|
|
222
217
|
created,
|
|
223
218
|
replacedEntry: null,
|
|
219
|
+
usage: totalUsage,
|
|
224
220
|
};
|
|
225
221
|
}
|
|
226
222
|
|
|
@@ -232,16 +228,17 @@ export class RAG<
|
|
|
232
228
|
// break chunks up into batches, respecting soft limit
|
|
233
229
|
let startOrder = 0;
|
|
234
230
|
for await (const batch of batchIterator(chunks, CHUNK_BATCH_SIZE)) {
|
|
235
|
-
const
|
|
231
|
+
const result = await createChunkArgsBatch(
|
|
236
232
|
this.options.textEmbeddingModel,
|
|
237
233
|
batch
|
|
238
234
|
);
|
|
235
|
+
totalUsage.tokens += result.usage.tokens;
|
|
239
236
|
const { status } = await ctx.runMutation(this.component.chunks.insert, {
|
|
240
237
|
entryId,
|
|
241
238
|
startOrder,
|
|
242
|
-
chunks,
|
|
239
|
+
chunks: result.chunks,
|
|
243
240
|
});
|
|
244
|
-
startOrder += chunks.length;
|
|
241
|
+
startOrder += result.chunks.length;
|
|
245
242
|
if (status === "pending") {
|
|
246
243
|
isPending = true;
|
|
247
244
|
}
|
|
@@ -263,6 +260,7 @@ export class RAG<
|
|
|
263
260
|
status: "replaced" as const,
|
|
264
261
|
created: false,
|
|
265
262
|
replacedEntry: null,
|
|
263
|
+
usage: totalUsage,
|
|
266
264
|
};
|
|
267
265
|
}
|
|
268
266
|
startOrder = nextStartOrder;
|
|
@@ -280,6 +278,7 @@ export class RAG<
|
|
|
280
278
|
EntryMetadata
|
|
281
279
|
> | null,
|
|
282
280
|
created: true,
|
|
281
|
+
usage: totalUsage,
|
|
283
282
|
};
|
|
284
283
|
}
|
|
285
284
|
|
|
@@ -387,6 +386,7 @@ export class RAG<
|
|
|
387
386
|
results: SearchResult[];
|
|
388
387
|
text: string;
|
|
389
388
|
entries: SearchEntry<FitlerSchemas, EntryMetadata>[];
|
|
389
|
+
usage: EmbeddingModelUsage;
|
|
390
390
|
}> {
|
|
391
391
|
const {
|
|
392
392
|
namespace,
|
|
@@ -396,12 +396,14 @@ export class RAG<
|
|
|
396
396
|
vectorScoreThreshold,
|
|
397
397
|
} = args;
|
|
398
398
|
let embedding = Array.isArray(args.query) ? args.query : undefined;
|
|
399
|
+
let usage: EmbeddingModelUsage = { tokens: 0 };
|
|
399
400
|
if (!embedding) {
|
|
400
401
|
const embedResult = await embed({
|
|
401
402
|
model: this.options.textEmbeddingModel,
|
|
402
403
|
value: args.query,
|
|
403
404
|
});
|
|
404
405
|
embedding = embedResult.embedding;
|
|
406
|
+
usage = embedResult.usage;
|
|
405
407
|
}
|
|
406
408
|
const { results, entries } = await ctx.runAction(
|
|
407
409
|
this.component.search.search,
|
|
@@ -441,6 +443,7 @@ export class RAG<
|
|
|
441
443
|
.map((e) => (e.title ? `## ${e.title}:\n\n${e.text}` : e.text))
|
|
442
444
|
.join(`\n\n---\n\n`),
|
|
443
445
|
entries: entriesWithTexts,
|
|
446
|
+
usage,
|
|
444
447
|
};
|
|
445
448
|
}
|
|
446
449
|
|
|
@@ -890,7 +893,7 @@ export class RAG<
|
|
|
890
893
|
chunkIterator,
|
|
891
894
|
CHUNK_BATCH_SIZE
|
|
892
895
|
)) {
|
|
893
|
-
const
|
|
896
|
+
const result = await createChunkArgsBatch(
|
|
894
897
|
this.options.textEmbeddingModel,
|
|
895
898
|
batch
|
|
896
899
|
);
|
|
@@ -903,10 +906,10 @@ export class RAG<
|
|
|
903
906
|
{
|
|
904
907
|
entryId: entry.entryId,
|
|
905
908
|
startOrder: batchOrder,
|
|
906
|
-
chunks:
|
|
909
|
+
chunks: result.chunks,
|
|
907
910
|
}
|
|
908
911
|
);
|
|
909
|
-
batchOrder +=
|
|
912
|
+
batchOrder += result.chunks.length;
|
|
910
913
|
}
|
|
911
914
|
},
|
|
912
915
|
});
|
|
@@ -969,9 +972,9 @@ function makeBatches<T>(items: T[], batchSize: number): T[][] {
|
|
|
969
972
|
}
|
|
970
973
|
|
|
971
974
|
async function createChunkArgsBatch(
|
|
972
|
-
embedModel:
|
|
975
|
+
embedModel: EmbeddingModel<string>,
|
|
973
976
|
chunks: InputChunk[]
|
|
974
|
-
): Promise<CreateChunkArgs[]> {
|
|
977
|
+
): Promise<{ chunks: CreateChunkArgs[]; usage: EmbeddingModelUsage }> {
|
|
975
978
|
const argsMaybeMissingEmbeddings: (Omit<CreateChunkArgs, "embedding"> & {
|
|
976
979
|
embedding?: number[];
|
|
977
980
|
})[] = chunks.map((chunk) => {
|
|
@@ -1005,21 +1008,24 @@ async function createChunkArgsBatch(
|
|
|
1005
1008
|
}
|
|
1006
1009
|
)
|
|
1007
1010
|
.filter((b) => b !== null);
|
|
1011
|
+
const totalUsage: EmbeddingModelUsage = { tokens: 0 };
|
|
1008
1012
|
for (const batch of makeBatches(missingEmbeddingsWithIndex, 100)) {
|
|
1009
|
-
const { embeddings } = await embedMany({
|
|
1013
|
+
const { embeddings, usage } = await embedMany({
|
|
1010
1014
|
model: embedModel,
|
|
1011
1015
|
values: batch.map((b) => b.text.trim() || "<empty>"),
|
|
1012
1016
|
});
|
|
1017
|
+
totalUsage.tokens += usage.tokens;
|
|
1013
1018
|
for (const [index, embedding] of embeddings.entries()) {
|
|
1014
1019
|
argsMaybeMissingEmbeddings[batch[index].index].embedding = embedding;
|
|
1015
1020
|
}
|
|
1016
1021
|
}
|
|
1017
|
-
|
|
1022
|
+
const finalChunks = argsMaybeMissingEmbeddings.filter((a) => {
|
|
1018
1023
|
if (a.embedding === undefined) {
|
|
1019
1024
|
throw new Error("Embedding is undefined for chunk " + a.content.text);
|
|
1020
1025
|
}
|
|
1021
1026
|
return true;
|
|
1022
1027
|
}) as CreateChunkArgs[];
|
|
1028
|
+
return { chunks: finalChunks, usage: totalUsage };
|
|
1023
1029
|
}
|
|
1024
1030
|
|
|
1025
1031
|
type MastraChunk = {
|