@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 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 } 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: 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: 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":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,IAAI,CAAC;AAEZ,OAAO,EAIL,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAIL,QAAQ,EACR,YAAY,EAEZ,KAAK,KAAK,EAEV,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,MAAM,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAClD,YAAY,EACV,aAAa,EACb,KAAK,EACL,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,MAAM,GACP,CAAC;AAEF,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,MAAM,EACN,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAMxB,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,qBAAa,GAAG,CACd,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACnE,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAsB1D,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE;QACd,kBAAkB,EAAE,MAAM,CAAC;QAC3B,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;KAC1C;IAzBH;;;;;;;;;;;;;;;;;;OAkBG;gBAEM,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE;QACd,kBAAkB,EAAE,MAAM,CAAC;QAC3B,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;KAC1C;IAGH;;;;;;;;;OASG;IACG,GAAG,CACP,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,kBAAkB,GACtB,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,GACvC,CACI;QACE;;;;;WAKG;QACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACzD,qEAAqE;QACrE,IAAI,CAAC,EAAE,SAAS,CAAC;KAClB,GACD;QACE;;;WAGG;QACH,IAAI,EAAE,MAAM,CAAC;QACb,qEAAqE;QACrE,MAAM,CAAC,EAAE,SAAS,CAAC;KACpB,CACJ,GACF,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;QAC1D,KAAK,EAAE,mBAAmB,CAAC;KAC5B,CAAC;IAqHF;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,QAAQ,CACZ,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,kBAAkB,GACtB,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG;QACxC;;;;;;;;;;;;;WAaG;QACH,aAAa,EAAE,aAAa,CAAC;KAC9B,GACF,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,CAAC;IAsC7D;;;;OAIG;IACG,MAAM,CACV,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;QACJ;;;;WAIG;QACH,SAAS,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;KAC/B,GAAG,aAAa,CAAC,aAAa,CAAC,GAC/B,OAAO,CAAC;QACT,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;QACrD,KAAK,EAAE,mBAAmB,CAAC;KAC5B,CAAC;IA4DF;;;;;;;;;OASG;IACG,YAAY,CAChB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;QACJ;;WAEG;QACH,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG;YACrC;;eAEG;YACH,SAAS,EAAE,MAAM,CAAC;YAClB;;;eAGG;YACH,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;SAChC,CAAC;QACF;;;;WAIG;QACH,MAAM,EAAE,MAAM,CAAC;QACf;;;WAGG;QACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;KAC3B,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,GACrC,OAAO,CACR,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,GAAG;QACzC,OAAO,EAAE;YACP,OAAO,EAAE,YAAY,EAAE,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;SACtD,CAAC;KACH,CACF;IA8ED;;OAEG;IACG,IAAI,CACR,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QACJ,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,CAAC;QAAE,cAAc,EAAE,iBAAiB,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAC9D,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IAcjE;;OAEG;IACG,QAAQ,CACZ,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;KAClB,GACA,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;IAOtD;;;;OAIG;IACG,sBAAsB,CAC1B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,sDAAsD;QACtD,WAAW,EAAE,MAAM,CAAC;KACrB,GACA,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;IAYtD;;;OAGG;IACG,oBAAoB,CACxB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QACJ;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;QAC7B;;;;WAIG;QACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;KAClC,GACA,OAAO,CAAC;QACT,WAAW,EAAE,WAAW,CAAC;QACzB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;KAC7B,CAAC;IAsBF;;;OAGG;IACG,YAAY,CAChB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;KACnB,GACA,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAS5B;;OAEG;IACG,UAAU,CACd,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QACJ,cAAc,EAAE,iBAAiB,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KACxB,GACA,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAQnC;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE;IAOjE;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1E,kDAAkD;IAC5C,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5E;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;QAAE,WAAW,EAAE,WAAW,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE;IASzE;;;;;OAKG;IACG,WAAW,CACf,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;QAAE,WAAW,EAAE,WAAW,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE;IAKzE;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,SAAS,SAAS,gBAAgB,EACjD,EAAE,EAAE,CACF,GAAG,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAClC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,KACzD,OAAO,CAAC,IAAI,CAAC,GACjB,kBAAkB,CACnB,UAAU,EACV,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,EACtD,IAAI,CACL;IAOD;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CAAC,SAAS,SAAS,gBAAgB,EACpD,EAAE,EAAE,CACF,GAAG,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAChC,IAAI,EAAE;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;KAAE,KACvE,aAAa,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,GACjE,gBAAgB,CACjB,UAAU,EACV,YAAY,CAAC,aAAa,CAAC,EAC3B,kBAAkB,CAAC,aAAa,CAAC,CAClC;CAwEF;AAkHD,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG;IAGhC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAInB,CAAC,CAAC;AAEP,KAAK,WAAW,CAAC,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAC3D,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC;AAEpC,KAAK,kBAAkB,GACnB;IACE;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE;;;;;;;OAOG;IACH,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEN,KAAK,SAAS,CACZ,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC3C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IACzC;IACF;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;IAC5C;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,KAAK,aAAa,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI;IAChE;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC"}
@@ -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
- 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":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAqB,MAAM,IAAI,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GAWxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,eAAe,GAWhB,MAAM,cAAc,CAAC;AAatB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAclD,OAAO,EAIL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAsBhC,MAAM,OAAO,GAAG;IAwBL;IACA;IArBT;;;;;;;;;;;;;;;;;;OAkBG;IACH,YACS,SAAuB,EACvB,OAIN;QALM,cAAS,GAAT,SAAS,CAAc;QACvB,YAAO,GAAP,OAAO,CAIb;IACA,CAAC;IAEJ;;;;;;;;;OASG;IACH,KAAK,CAAC,GAAG,CACP,GAAmB,EACnB,IAuBG;QAOH,IAAI,WAAwB,CAAC;QAC7B,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE;gBACrD,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;YACH,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACtC,CAAC;QAED,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,SAAwC,CAAC;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAC9D,SAAS,GAAG,MAAM,oBAAoB,CACpC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAC/B,MAAM,CACP,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAEnE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,WAAW,CACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAC1B;YACE,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,WAAW;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;gBAChC,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B;YACD,UAAU;YACV,SAAS;SACV,CACF,CAAC;QACF,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,OAAkB;gBAC3B,MAAM;gBACN,OAAO;gBACP,aAAa,EAAE,IAAI;aACpB,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,8DAA8D;YAC9D,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBAClE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAC/B,KAAK,CACN,CAAC;gBACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;oBACrE,OAAO;oBACP,UAAU;oBACV,MAAM;iBACP,CAAC,CAAC;gBACH,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC;gBAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,0DAA0D;YAC1D,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,GAAG,CAAC,WAAW,CACtD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EACvC,EAAE,OAAO,EAAE,UAAU,EAAE,CACxB,CAAC;gBACF,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;oBACvB,MAAM;gBACR,CAAC;qBAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,OAAO;wBACL,OAAO,EAAE,OAAkB;wBAC3B,MAAM,EAAE,UAAmB;wBAC3B,OAAO,EAAE,KAAK;wBACd,aAAa,EAAE,IAAI;qBACpB,CAAC;gBACJ,CAAC;gBACD,UAAU,GAAG,cAAc,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CACpC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EACrC,EAAE,OAAO,EAAE,CACZ,CAAC;QACF,OAAO;YACL,OAAO,EAAE,OAAkB;YAC3B,MAAM,EAAE,OAAgB;YACxB,aAAa,EAAE,QAAQ,CAAC,aAGhB;YACR,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,QAAQ,CACZ,GAAmB,EACnB,IAiBG;QAEH,IAAI,WAAwB,CAAC;QAC7B,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE;gBACrD,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;YACH,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACtC,CAAC;QAED,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAErE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;YAChC,CAAC,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE/D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,WAAW,CAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAC/B;YACE,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,WAAW;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;gBAChC,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B;YACD,UAAU;YACV,OAAO;SACR,CACF,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,OAAkB,EAAE,MAAM,EAAE,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACV,GAAiB,EACjB,IAWgC;QAMhC,MAAM,EACJ,SAAS,EACT,OAAO,GAAG,EAAE,EACZ,KAAK,GAAG,oBAAoB,EAC5B,YAAY,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EACtC,oBAAoB,GACrB,GAAG,IAAI,CAAC;QACT,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;gBAC9B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;gBACtC,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YACH,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;QACpC,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,SAAS,CAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAC5B;YACE,SAAS;YACT,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO;YAChD,OAAO;YACP,KAAK;YACL,oBAAoB;YACpB,YAAY;SACb,CACF,CAAC;QACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,OAAO;iBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC;iBACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;oBACtB,IAAI,KAAK,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;wBACrC,IAAI,IAAI,aAAa,CAAC;oBACxB,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,IAAI,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpD,WAAW,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACxD,CAAC;YACD,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAA+C,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,OAAyB;YAClC,IAAI,EAAE,gBAAgB;iBACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC9D,IAAI,CAAC,aAAa,CAAC;YACtB,OAAO,EAAE,gBAAgB;SAC1B,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY,CAChB,GAAiB,EACjB,IA0BsC;QAUtC,MAAM,EACJ,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EACpC,MAAM,EACN,GAAG,SAAS,EACb,GAAG,IAAI,CAAC;QACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACrC,SAAS;YACT,KAAK,EAAE,MAAM;YACb,GAAG,UAAU;SACd,CAAC,CAAC;QACH,IAAI,aAAa,GACf,gEAAgE,CAAC;QACnE,IAAI,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;QACnC,IAAI,aAAa,GAAG,sCAAsC,CAAC;QAC3D,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,QAAQ,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,KAAK,QAAQ;gBACX,kBAAkB,GAAG,yBAAyB,CAAC;gBAC/C,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,MAAM;YACR,KAAK,MAAM;gBACT,kBAAkB,GAAG,sBAAsB,CAAC;gBAC5C,MAAM;YACR,KAAK,QAAQ;gBACX,kBAAkB,GAAG,YAAY,CAAC;gBAClC,kBAAkB,GAAG,aAAa,CAAC;YACrC,cAAc;YACd,KAAK,WAAW;gBACd,aAAa,GAAG,WAAW,CAAC;gBAC5B,eAAe,GAAG,OAAO,CAAC,OAAO;qBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,KAAK;oBACL,CAAC,CAAC,oBAAoB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,aAAa;oBACrD,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,aAAa,CACrC;qBACA,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,aAAa,GAAG,YAAY,CAAC;gBAC7B,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAChE,MAAM;YACR,QAAQ;QACV,CAAC;QACD,MAAM,iBAAiB,GAAG;YACxB,aAAa;YACb,eAAe;YACf,aAAa;YACb,IAAI;YACJ,kBAAkB;YAClB,UAAU;YACV,kBAAkB;SACnB;aACE,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;QAEV,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC;YACjC,MAAM,EACJ,2HAA2H;YAC7H,GAAG,SAAS;YACZ,QAAQ,EAAE;gBACR,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxB;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,iBAAiB;iBAC3B;aACF;SACF,CAAC,CAMD,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,GAAgB,EAChB,IAI+D;QAE/D,MAAM,cAAc,GAClB,gBAAgB,IAAI,IAAI;YACtB,CAAC,CAAC,IAAI,CAAC,cAAc;YACrB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE;YAC9D,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc;YACd,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO;SAC/B,CAAC,CAAC;QACH,OAAO,OAAgE,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,GAAgB,EAChB,IAEC;QAED,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE;YAC3D,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QACH,OAAO,KAAmD,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,sBAAsB,CAC1B,GAAgB,EAChB,IAKC;QAED,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE;YACzE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;YAC1C,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;YAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO;YAChD,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QACH,OAAO,KAAmD,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CACxB,GAAmB,EACnB,IAeC;QAKD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;YAChC,CAAC,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,CACJ,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EACxC,kEAAkE,CACnE,CAAC;QACF,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,WAAW,CACnD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EACrC;YACE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO;YAC9B,UAAU;YACV,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO;YAChD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;YAC1C,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;SAC5C,CACF,CAAC;QACF,OAAO,EAAE,WAAW,EAAE,WAA0B,EAAE,MAAM,EAAE,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAChB,GAAgB,EAChB,IAEC;QAED,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE;YACjD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO;YAChD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;YAC1C,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;SAC5C,CAA8B,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,GAAgB,EAChB,IAIC;QAED,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,GAAmB,EAAE,IAA0B;QAC/D,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;YACxD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;IACL,CAAC;IAWD,KAAK,CAAC,MAAM,CAAC,GAAkC,EAAE,IAA0B;QACzE,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE;gBACrD,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,mIAAmI,CACpI,CAAC;YACF,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;gBACxD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,GAAmB,EACnB,IAAuE;QAEvE,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE;YAC7D,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,GAAiB,EACjB,IAAuE;QAEvE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CACd,EAGkB;QAMlB,OAAO,uBAAuB,CAAC;YAC7B,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CACjB,EAGkE;QAMlE,OAAO,qBAAqB,CAAC;YAC3B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;gBAClC,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;oBAClE,OAAO,CAAC,KAAK,CACX,6CAA6C,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,sBAAsB;wBACxG,gEAAgE,SAAS,CAAC,OAAO,EAAE,CACtF,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC5D,OAAO,CAAC,KAAK,CACX,iDAAiD,IAAI,CAAC,OAAO,CAAC,kBAAkB,sBAAsB;wBACpG,gEAAgE,SAAS,CAAC,SAAS,EAAE,CACxF,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,IACE,CAAC,kBAAkB,CACjB,SAAS,CAAC,WAAW,EACrB,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAC/B,EACD,CAAC;oBACD,OAAO,CAAC,KAAK,CACX,sCAAsC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,uBAAuB;wBAC/F,gEAAgE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrG,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,EAAE;oBAC5B,SAAS;oBACT,KAAK,EAAE,KAA4C;iBACpD,CAAC,CAAC;gBACH,IAAI,aAAwC,CAAC;gBAC7C,IAAI,aAAa,YAAY,OAAO,EAAE,CAAC;oBACrC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;oBACnC,aAAa,GAAG;wBACd,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,SAAS,CAAC;4BACrC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;wBACvB,CAAC;qBACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,aAAa,CAAC;gBAChC,CAAC;gBACD,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,CACrC,aAAa,EACb,gBAAgB,CACjB,EAAE,CAAC;oBACF,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAChD,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAC/B,KAAK,CACN,CAAC;oBACF,MAAM,GAAG,CAAC,WAAW,CACnB,IAAI,CAAC,YAIJ,EACD;wBACE,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,UAAU,EAAE,UAAU;wBACtB,MAAM,EAAE,eAAe;qBACxB,CACF,CAAC;oBACF,UAAU,IAAI,eAAe,CAAC,MAAM,CAAC;gBACvC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED,KAAK,SAAS,CAAC,CAAC,aAAa,CAC3B,QAAwC,EACxC,SAAiB;IAEjB,IAAI,KAAK,GAAQ,EAAE,CAAC;IACpB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC;YACZ,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,YAAuC,EACvC,WAAiC;IAEjC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,kDAAkD,WAAW,CAAC,IAAI,GAAG,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,eAAe,UAAU,yBAAyB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAI,KAAU,EAAE,SAAiB;IACnD,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,UAA8B,EAC9B,MAAoB;IAEpB,MAAM,0BAA0B,GAEzB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;YAC3D,OAAO;gBACL,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC3B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,cAAc;aACf,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;YAClC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;YACxE,OAAO;gBACL,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC3B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,cAAc;aACf,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,0BAA0B,GAAG,0BAA0B;SAC1D,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAClB,GAAG,CAAC,SAAS;QACX,CAAC,CAAC,IAAI;QACN,CAAC,CAAC;YACE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;YACtB,KAAK;SACN,CACN;SACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,0BAA0B,EAAE,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,SAAS,CAAC;YACrC,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;SACrD,CAAC,CAAC;QACH,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;QACvE,CAAC;IACH,CAAC;IACD,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7C,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAsB,CAAC;AAC1B,CAAC;AA4ID,SAAS,gBAAgB,CAAC,KAAoC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IACD,IACE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC1B,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QACvB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EACtB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
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.1",
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 () => {
@@ -1,4 +1,11 @@
1
- import { embed, embedMany, generateText, type ModelMessage } from "ai";
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: 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
- allChunks = await createChunkArgsBatch(
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 chunks = await createChunkArgsBatch(
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 createChunkArgs = await createChunkArgsBatch(
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: createChunkArgs,
909
+ chunks: result.chunks,
907
910
  }
908
911
  );
909
- batchOrder += createChunkArgs.length;
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: TextEmbeddingModel,
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
- return argsMaybeMissingEmbeddings.filter((a) => {
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 = {