@convex-dev/rag 0.5.2 → 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 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
  ```
@@ -1,4 +1,4 @@
1
- import { generateText, type ModelMessage, type EmbeddingModel } 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";
@@ -75,6 +75,7 @@ export declare class RAG<FitlerSchemas extends Record<string, Value> = Record<st
75
75
  status: Status;
76
76
  created: boolean;
77
77
  replacedEntry: Entry<FitlerSchemas, EntryMetadata> | null;
78
+ usage: EmbeddingModelUsage;
78
79
  }>;
79
80
  /**
80
81
  * Add an entry to the store asynchronously.
@@ -139,6 +140,7 @@ export declare class RAG<FitlerSchemas extends Record<string, Value> = Record<st
139
140
  results: SearchResult[];
140
141
  text: string;
141
142
  entries: SearchEntry<FitlerSchemas, EntryMetadata>[];
143
+ usage: EmbeddingModelUsage;
142
144
  }>;
143
145
  /**
144
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":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -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
- allChunks = await createChunkArgsBatch(this.options.textEmbeddingModel, chunks);
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 chunks = await createChunkArgsBatch(this.options.textEmbeddingModel, batch);
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 createChunkArgs = await createChunkArgsBatch(this.options.textEmbeddingModel, batch);
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: createChunkArgs,
531
+ chunks: result.chunks,
522
532
  });
523
- batchOrder += createChunkArgs.length;
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
- return argsMaybeMissingEmbeddings.filter((a) => {
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") {
@@ -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
@@ -7,7 +7,7 @@
7
7
  "email": "support@convex.dev",
8
8
  "url": "https://github.com/get-convex/rag/issues"
9
9
  },
10
- "version": "0.5.2",
10
+ "version": "0.5.3",
11
11
  "license": "Apache-2.0",
12
12
  "keywords": [
13
13
  "convex",
@@ -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
- const { entryId: entryId2, status: status2 } = await t.mutation(
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 () => {
@@ -4,6 +4,7 @@ import {
4
4
  generateText,
5
5
  type ModelMessage,
6
6
  type EmbeddingModel,
7
+ type EmbeddingModelUsage,
7
8
  } from "ai";
8
9
  import { assert } from "convex-helpers";
9
10
  import {
@@ -163,6 +164,7 @@ export class RAG<
163
164
  status: Status;
164
165
  created: boolean;
165
166
  replacedEntry: Entry<FitlerSchemas, EntryMetadata> | null;
167
+ usage: EmbeddingModelUsage;
166
168
  }> {
167
169
  let namespaceId: NamespaceId;
168
170
  if ("namespaceId" in args) {
@@ -179,11 +181,14 @@ export class RAG<
179
181
 
180
182
  const chunks = args.chunks ?? defaultChunker(args.text);
181
183
  let allChunks: CreateChunkArgs[] | undefined;
184
+ const totalUsage: EmbeddingModelUsage = { tokens: 0 };
182
185
  if (Array.isArray(chunks) && chunks.length < CHUNK_BATCH_SIZE) {
183
- allChunks = await createChunkArgsBatch(
186
+ const result = await createChunkArgsBatch(
184
187
  this.options.textEmbeddingModel,
185
188
  chunks
186
189
  );
190
+ allChunks = result.chunks;
191
+ totalUsage.tokens += result.usage.tokens;
187
192
  }
188
193
 
189
194
  const onComplete =
@@ -211,6 +216,7 @@ export class RAG<
211
216
  status,
212
217
  created,
213
218
  replacedEntry: null,
219
+ usage: totalUsage,
214
220
  };
215
221
  }
216
222
 
@@ -222,16 +228,17 @@ export class RAG<
222
228
  // break chunks up into batches, respecting soft limit
223
229
  let startOrder = 0;
224
230
  for await (const batch of batchIterator(chunks, CHUNK_BATCH_SIZE)) {
225
- const chunks = await createChunkArgsBatch(
231
+ const result = await createChunkArgsBatch(
226
232
  this.options.textEmbeddingModel,
227
233
  batch
228
234
  );
235
+ totalUsage.tokens += result.usage.tokens;
229
236
  const { status } = await ctx.runMutation(this.component.chunks.insert, {
230
237
  entryId,
231
238
  startOrder,
232
- chunks,
239
+ chunks: result.chunks,
233
240
  });
234
- startOrder += chunks.length;
241
+ startOrder += result.chunks.length;
235
242
  if (status === "pending") {
236
243
  isPending = true;
237
244
  }
@@ -253,6 +260,7 @@ export class RAG<
253
260
  status: "replaced" as const,
254
261
  created: false,
255
262
  replacedEntry: null,
263
+ usage: totalUsage,
256
264
  };
257
265
  }
258
266
  startOrder = nextStartOrder;
@@ -270,6 +278,7 @@ export class RAG<
270
278
  EntryMetadata
271
279
  > | null,
272
280
  created: true,
281
+ usage: totalUsage,
273
282
  };
274
283
  }
275
284
 
@@ -377,6 +386,7 @@ export class RAG<
377
386
  results: SearchResult[];
378
387
  text: string;
379
388
  entries: SearchEntry<FitlerSchemas, EntryMetadata>[];
389
+ usage: EmbeddingModelUsage;
380
390
  }> {
381
391
  const {
382
392
  namespace,
@@ -386,12 +396,14 @@ export class RAG<
386
396
  vectorScoreThreshold,
387
397
  } = args;
388
398
  let embedding = Array.isArray(args.query) ? args.query : undefined;
399
+ let usage: EmbeddingModelUsage = { tokens: 0 };
389
400
  if (!embedding) {
390
401
  const embedResult = await embed({
391
402
  model: this.options.textEmbeddingModel,
392
403
  value: args.query,
393
404
  });
394
405
  embedding = embedResult.embedding;
406
+ usage = embedResult.usage;
395
407
  }
396
408
  const { results, entries } = await ctx.runAction(
397
409
  this.component.search.search,
@@ -431,6 +443,7 @@ export class RAG<
431
443
  .map((e) => (e.title ? `## ${e.title}:\n\n${e.text}` : e.text))
432
444
  .join(`\n\n---\n\n`),
433
445
  entries: entriesWithTexts,
446
+ usage,
434
447
  };
435
448
  }
436
449
 
@@ -880,7 +893,7 @@ export class RAG<
880
893
  chunkIterator,
881
894
  CHUNK_BATCH_SIZE
882
895
  )) {
883
- const createChunkArgs = await createChunkArgsBatch(
896
+ const result = await createChunkArgsBatch(
884
897
  this.options.textEmbeddingModel,
885
898
  batch
886
899
  );
@@ -893,10 +906,10 @@ export class RAG<
893
906
  {
894
907
  entryId: entry.entryId,
895
908
  startOrder: batchOrder,
896
- chunks: createChunkArgs,
909
+ chunks: result.chunks,
897
910
  }
898
911
  );
899
- batchOrder += createChunkArgs.length;
912
+ batchOrder += result.chunks.length;
900
913
  }
901
914
  },
902
915
  });
@@ -961,7 +974,7 @@ function makeBatches<T>(items: T[], batchSize: number): T[][] {
961
974
  async function createChunkArgsBatch(
962
975
  embedModel: EmbeddingModel<string>,
963
976
  chunks: InputChunk[]
964
- ): Promise<CreateChunkArgs[]> {
977
+ ): Promise<{ chunks: CreateChunkArgs[]; usage: EmbeddingModelUsage }> {
965
978
  const argsMaybeMissingEmbeddings: (Omit<CreateChunkArgs, "embedding"> & {
966
979
  embedding?: number[];
967
980
  })[] = chunks.map((chunk) => {
@@ -995,21 +1008,24 @@ async function createChunkArgsBatch(
995
1008
  }
996
1009
  )
997
1010
  .filter((b) => b !== null);
1011
+ const totalUsage: EmbeddingModelUsage = { tokens: 0 };
998
1012
  for (const batch of makeBatches(missingEmbeddingsWithIndex, 100)) {
999
- const { embeddings } = await embedMany({
1013
+ const { embeddings, usage } = await embedMany({
1000
1014
  model: embedModel,
1001
1015
  values: batch.map((b) => b.text.trim() || "<empty>"),
1002
1016
  });
1017
+ totalUsage.tokens += usage.tokens;
1003
1018
  for (const [index, embedding] of embeddings.entries()) {
1004
1019
  argsMaybeMissingEmbeddings[batch[index].index].embedding = embedding;
1005
1020
  }
1006
1021
  }
1007
- return argsMaybeMissingEmbeddings.filter((a) => {
1022
+ const finalChunks = argsMaybeMissingEmbeddings.filter((a) => {
1008
1023
  if (a.embedding === undefined) {
1009
1024
  throw new Error("Embedding is undefined for chunk " + a.content.text);
1010
1025
  }
1011
1026
  return true;
1012
1027
  }) as CreateChunkArgs[];
1028
+ return { chunks: finalChunks, usage: totalUsage };
1013
1029
  }
1014
1030
 
1015
1031
  type MastraChunk = {