@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 +5 -4
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +22 -9
- 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 +26 -10
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, 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":"AAAA,OAAO,EAGL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,
|
|
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"}
|
package/dist/client/index.js
CHANGED
|
@@ -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
|
@@ -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
|
-
|
|
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
|
|
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
|
|
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:
|
|
909
|
+
chunks: result.chunks,
|
|
897
910
|
}
|
|
898
911
|
);
|
|
899
|
-
batchOrder +=
|
|
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
|
-
|
|
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 = {
|