@convex-dev/rag 0.7.0 → 0.7.1

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.
@@ -1,19 +1,27 @@
1
1
  import { v } from "convex/values";
2
- import { action } from "./_generated/server.js";
2
+ import { action, internalQuery } from "./_generated/server.js";
3
3
  import { searchEmbeddings } from "./embeddings/index.js";
4
- import { numberedFiltersFromNamedFilters, vNamedFilter } from "./filters.js";
4
+ import { filterFieldsFromNumbers, numberedFiltersFromNamedFilters, vNamedFilter, } from "./filters.js";
5
5
  import { internal } from "./_generated/api.js";
6
- import { vEntry, vSearchResult, } from "../shared.js";
6
+ import { vEntry, vSearchResult, vSearchType, } from "../shared.js";
7
+ import { buildRanges } from "./chunks.js";
8
+ import { hybridRank } from "../client/hybridRank.js";
9
+ import { vVectorId } from "./embeddings/tables.js";
7
10
  export const search = action({
8
11
  args: {
9
12
  namespace: v.string(),
10
- embedding: v.array(v.number()),
13
+ embedding: v.optional(v.array(v.number())),
14
+ dimension: v.optional(v.number()),
11
15
  modelId: v.string(),
12
16
  // These are all OR'd together
13
17
  filters: v.array(vNamedFilter),
14
18
  limit: v.number(),
15
19
  vectorScoreThreshold: v.optional(v.number()),
16
20
  chunkContext: v.optional(v.object({ before: v.number(), after: v.number() })),
21
+ searchType: v.optional(vSearchType),
22
+ textQuery: v.optional(v.string()),
23
+ textWeight: v.optional(v.number()),
24
+ vectorWeight: v.optional(v.number()),
17
25
  },
18
26
  returns: v.object({
19
27
  results: v.array(vSearchResult),
@@ -21,41 +29,204 @@ export const search = action({
21
29
  }),
22
30
  handler: async (ctx, args) => {
23
31
  const { modelId, embedding, filters, limit } = args;
32
+ const dimension = embedding?.length ?? args.dimension;
33
+ if (!dimension) {
34
+ throw new Error("Either embedding or dimension must be provided to search.");
35
+ }
24
36
  const namespace = await ctx.runQuery(internal.namespaces.getCompatibleNamespace, {
25
37
  namespace: args.namespace,
26
38
  modelId,
27
- dimension: embedding.length,
39
+ dimension,
28
40
  filterNames: filters.map((f) => f.name),
29
41
  });
30
42
  if (!namespace) {
31
- console.debug(`No compatible namespace found for ${args.namespace} with model ${args.modelId} and dimension ${embedding.length} and filters ${filters.map((f) => f.name).join(", ")}.`);
43
+ console.debug(`No compatible namespace found for ${args.namespace} with model ${args.modelId} and dimension ${dimension} and filters ${filters.map((f) => f.name).join(", ")}.`);
32
44
  return {
33
45
  results: [],
34
46
  entries: [],
35
47
  };
36
48
  }
37
- const results = await searchEmbeddings(ctx, {
38
- embedding,
49
+ const chunkContext = args.chunkContext ?? { before: 0, after: 0 };
50
+ const numberedFilters = numberedFiltersFromNamedFilters(filters, namespace.filterNames);
51
+ const hasEmbedding = !!embedding;
52
+ const hasTextQuery = !!args.textQuery;
53
+ // Vector-only path: return results with cosine similarity scores.
54
+ if (hasEmbedding && !hasTextQuery) {
55
+ const vectorResults = await searchEmbeddings(ctx, {
56
+ embedding,
57
+ namespaceId: namespace._id,
58
+ filters: numberedFilters,
59
+ limit,
60
+ });
61
+ const threshold = args.vectorScoreThreshold ?? -1;
62
+ const aboveThreshold = vectorResults.filter((r) => r._score >= threshold);
63
+ // TODO: break this up if there are too many results
64
+ const { ranges, entries } = await ctx.runQuery(internal.chunks.getRangesOfChunks, {
65
+ embeddingIds: aboveThreshold.map((r) => r._id),
66
+ chunkContext,
67
+ });
68
+ return {
69
+ results: ranges
70
+ .map((r, i) => publicSearchResult(r, aboveThreshold[i]._score))
71
+ .filter((r) => r !== null),
72
+ entries: entries,
73
+ };
74
+ }
75
+ // Hybrid or text-only path: combine vector and text results with RRF.
76
+ let embeddingIds = [];
77
+ if (hasEmbedding) {
78
+ const vectorResults = await searchEmbeddings(ctx, {
79
+ embedding: embedding,
80
+ namespaceId: namespace._id,
81
+ filters: numberedFilters,
82
+ limit,
83
+ });
84
+ const threshold = args.vectorScoreThreshold ?? -1;
85
+ embeddingIds = vectorResults
86
+ .filter((r) => r._score >= threshold)
87
+ .map((r) => r._id);
88
+ }
89
+ if (!hasTextQuery) {
90
+ throw new Error("Search requires at least one of embedding or textQuery.");
91
+ }
92
+ const { ranges, entries, resultCount } = await ctx.runQuery(internal.search.textAndRanges, {
93
+ embeddingIds,
94
+ textQuery: args.textQuery,
39
95
  namespaceId: namespace._id,
40
- filters: numberedFiltersFromNamedFilters(filters, namespace.filterNames),
96
+ filters: numberedFilters,
41
97
  limit,
42
- });
43
- const threshold = args.vectorScoreThreshold ?? -1;
44
- const aboveThreshold = results.filter((r) => r._score >= threshold);
45
- const chunkContext = args.chunkContext ?? { before: 0, after: 0 };
46
- // TODO: break this up if there are too many results
47
- const { ranges, entries } = await ctx.runQuery(internal.chunks.getRangesOfChunks, {
48
- embeddingIds: aboveThreshold.map((r) => r._id),
98
+ vectorWeight: args.vectorWeight ?? 1,
99
+ textWeight: args.textWeight ?? 1,
49
100
  chunkContext,
50
101
  });
102
+ // Position-based scores (1.0 for first, decreasing linearly).
51
103
  return {
52
104
  results: ranges
53
- .map((r, i) => publicSearchResult(r, aboveThreshold[i]._score))
105
+ .map((r, i) => publicSearchResult(r, (resultCount - i) / resultCount))
54
106
  .filter((r) => r !== null),
55
107
  entries: entries,
56
108
  };
57
109
  },
58
110
  });
111
+ async function textSearchImpl(ctx, args) {
112
+ const toResults = (chunks) => chunks
113
+ .filter((chunk) => chunk.state.kind === "ready")
114
+ .map((chunk) => ({
115
+ chunkId: chunk._id,
116
+ entryId: chunk.entryId,
117
+ order: chunk.order,
118
+ }));
119
+ // No user filters — just filter by namespaceId.
120
+ if (args.filters.length === 0) {
121
+ const results = await ctx.db
122
+ .query("chunks")
123
+ .withSearchIndex("searchableText", (q) => q
124
+ .search("state.searchableText", args.query)
125
+ .eq("namespaceId", args.namespaceId))
126
+ .take(args.limit);
127
+ return toResults(results);
128
+ }
129
+ // OR across filter conditions: run one text search per filter and dedupe.
130
+ const seen = new Set();
131
+ const merged = [];
132
+ for (const filter of args.filters) {
133
+ const fields = filterFieldsFromNumbers(args.namespaceId, filter);
134
+ const results = await ctx.db
135
+ .query("chunks")
136
+ .withSearchIndex("searchableText", (q) => {
137
+ let query = q
138
+ .search("state.searchableText", args.query)
139
+ .eq("namespaceId", args.namespaceId);
140
+ for (const [field, value] of Object.entries(fields)) {
141
+ query = query.eq(field, value);
142
+ }
143
+ return query;
144
+ })
145
+ .take(args.limit);
146
+ for (const r of toResults(results)) {
147
+ if (!seen.has(r.chunkId)) {
148
+ seen.add(r.chunkId);
149
+ merged.push(r);
150
+ }
151
+ }
152
+ }
153
+ return merged.slice(0, args.limit);
154
+ }
155
+ export const textSearch = internalQuery({
156
+ args: {
157
+ query: v.string(),
158
+ namespaceId: v.id("namespaces"),
159
+ // Numbered filters, OR'd together (same semantics as vector search).
160
+ filters: v.array(v.any()),
161
+ limit: v.number(),
162
+ },
163
+ returns: v.array(v.object({
164
+ chunkId: v.id("chunks"),
165
+ entryId: v.id("entries"),
166
+ order: v.number(),
167
+ })),
168
+ handler: async (ctx, args) => {
169
+ return textSearchImpl(ctx, {
170
+ query: args.query,
171
+ namespaceId: args.namespaceId,
172
+ filters: args.filters,
173
+ limit: args.limit,
174
+ });
175
+ },
176
+ });
177
+ export const textAndRanges = internalQuery({
178
+ args: {
179
+ embeddingIds: v.array(vVectorId),
180
+ textQuery: v.string(),
181
+ namespaceId: v.id("namespaces"),
182
+ filters: v.array(v.any()),
183
+ limit: v.number(),
184
+ vectorWeight: v.number(),
185
+ textWeight: v.number(),
186
+ chunkContext: v.object({ before: v.number(), after: v.number() }),
187
+ },
188
+ returns: v.object({
189
+ ranges: v.array(v.union(v.null(), v.object({
190
+ entryId: v.id("entries"),
191
+ order: v.number(),
192
+ startOrder: v.number(),
193
+ content: v.array(v.object({
194
+ text: v.string(),
195
+ metadata: v.optional(v.record(v.string(), v.any())),
196
+ })),
197
+ }))),
198
+ entries: v.array(vEntry),
199
+ resultCount: v.number(),
200
+ }),
201
+ handler: async (ctx, args) => {
202
+ // 1. Map embedding IDs to chunk IDs.
203
+ const vectorChunkIds = (await Promise.all(args.embeddingIds.map(async (embeddingId) => {
204
+ const chunk = await ctx.db
205
+ .query("chunks")
206
+ .withIndex("embeddingId", (q) => q.eq("state.embeddingId", embeddingId))
207
+ .order("desc")
208
+ .first();
209
+ return chunk?._id ?? null;
210
+ }))).filter((id) => id !== null);
211
+ // 2. Run text search.
212
+ const textResults = await textSearchImpl(ctx, {
213
+ query: args.textQuery,
214
+ namespaceId: args.namespaceId,
215
+ filters: args.filters,
216
+ limit: args.limit,
217
+ });
218
+ const textChunkIds = textResults.map((r) => r.chunkId);
219
+ // 3. Merge using Reciprocal Rank Fusion.
220
+ const mergedChunkIds = hybridRank([vectorChunkIds, textChunkIds], { k: 10, weights: [args.vectorWeight, args.textWeight] }).slice(0, args.limit);
221
+ if (mergedChunkIds.length === 0) {
222
+ return { ranges: [], entries: [], resultCount: 0 };
223
+ }
224
+ // 4. Build ranges from merged chunk IDs.
225
+ const chunks = await Promise.all(mergedChunkIds.map((id) => ctx.db.get(id)));
226
+ const { ranges, entries } = await buildRanges(ctx, chunks, args.chunkContext);
227
+ return { ranges, entries, resultCount: mergedChunkIds.length };
228
+ },
229
+ });
59
230
  function publicSearchResult(r, score) {
60
231
  if (r === null) {
61
232
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/component/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/component/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAc,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAiB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,YAAY,GAEb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,GAGZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAqB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAsB,MAAM,wBAAwB,CAAC;AAEvE,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,8BAA8B;QAC9B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,oBAAoB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5C,YAAY,EAAE,CAAC,CAAC,QAAQ,CACtB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACpD;QACD,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QACnC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAClC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACrC;IACD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;KACzB,CAAC;IACF,OAAO,EAAE,KAAK,EACZ,GAAG,EACH,IAAI,EAIH,EAAE;QACH,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACpD,MAAM,SAAS,GAAG,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,QAAQ,CAClC,QAAQ,CAAC,UAAU,CAAC,sBAAsB,EAC1C;YACE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO;YACP,SAAS;YACT,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACxC,CACF,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,qCAAqC,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,OAAO,kBAAkB,SAAS,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClK,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,eAAe,GAAG,+BAA+B,CACrD,OAAO,EACP,SAAS,CAAC,WAAW,CACtB,CAAC;QAEF,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC;QACjC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAEtC,kEAAkE;QAClE,IAAI,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;gBAChD,SAAS;gBACT,WAAW,EAAE,SAAS,CAAC,GAAG;gBAC1B,OAAO,EAAE,eAAe;gBACxB,KAAK;aACN,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;YAClD,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;YAC1E,oDAAoD;YACpD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,QAAQ,CAC5C,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EACjC;gBACE,YAAY,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC9C,YAAY;aACb,CACF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,MAAM;qBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;qBAC9D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;gBAC5B,OAAO,EAAE,OAAiC;aAC3C,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,IAAI,YAAY,GAAoB,EAAE,CAAC;QACvC,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;gBAChD,SAAS,EAAE,SAAU;gBACrB,WAAW,EAAE,SAAS,CAAC,GAAG;gBAC1B,OAAO,EAAE,eAAe;gBACxB,KAAK;aACN,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;YAClD,YAAY,GAAG,aAAa;iBACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;iBACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,CAAC,QAAQ,CACzD,QAAQ,CAAC,MAAM,CAAC,aAAa,EAC7B;YACE,YAAY;YACZ,SAAS,EAAE,IAAI,CAAC,SAAU;YAC1B,WAAW,EAAE,SAAS,CAAC,GAAG;YAC1B,OAAO,EAAE,eAAe;YACxB,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;YACpC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;YAChC,YAAY;SACb,CACF,CAAC;QAEF,8DAA8D;QAC9D,OAAO;YACL,OAAO,EAAE,MAAM;iBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;iBACrE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;YAC5B,OAAO,EAAE,OAAiC;SAC3C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAQH,KAAK,UAAU,cAAc,CAC3B,GAAa,EACb,IAKC;IAED,MAAM,SAAS,GAAG,CAAC,MAAuB,EAAsB,EAAE,CAChE,MAAM;SACH,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;SAC/C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,OAAO,EAAE,KAAK,CAAC,GAAG;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC,CAAC;IAER,gDAAgD;IAChD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE;aACzB,KAAK,CAAC,QAAQ,CAAC;aACf,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CACvC,CAAC;aACE,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC;aAC1C,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CACvC;aACA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,0EAA0E;IAC1E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAgB,CAAC;IACrC,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE;aACzB,KAAK,CAAC,QAAQ,CAAC;aACf,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE;YACvC,IAAI,KAAK,GAAG,CAAC;iBACV,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC;iBAC1C,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,KAAK,GAAG,KAAK,CAAC,EAAE,CACd,KAAsD,EACtD,KAAK,CACN,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;IACtC,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;QAC/B,qEAAqE;QACrE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB;IACD,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC,CACH;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,OAAO,cAAc,CAAC,GAAG,EAAE;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAA2B;YACzC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;IACzC,IAAI,EAAE;QACJ,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;KAClE;IACD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,KAAK,CACL,CAAC,CAAC,IAAI,EAAE,EACR,CAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;YACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aACpD,CAAC,CACH;SACF,CAAC,CACH,CACF;QACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,qCAAqC;QACrC,MAAM,cAAc,GAAmB,CACrC,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE;iBACvB,KAAK,CAAC,QAAQ,CAAC;iBACf,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC,CACvC;iBACA,KAAK,CAAC,MAAM,CAAC;iBACb,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC;QAC5B,CAAC,CAAC,CACH,CACF,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAE9B,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;YAC5C,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAA2B;YACzC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,YAAY,GAAmB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEvE,yCAAyC;QACzC,MAAM,cAAc,GAAG,UAAU,CAC/B,CAAC,cAAc,EAAE,YAAY,CAAC,EAC9B,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CACzD,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QACrD,CAAC;QAED,yCAAyC;QACzC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAC3C,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAC3C,GAAG,EACH,MAAM,EACN,IAAI,CAAC,YAAY,CAClB,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,kBAAkB,CACzB,CAAoC,EACpC,KAAa;IAEb,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,GAAG,CAAC;QACJ,KAAK;QACL,OAAO,EAAE,CAAC,CAAC,OAA6B;KACzC,CAAC;AACJ,CAAC"}
package/dist/shared.d.ts CHANGED
@@ -40,6 +40,8 @@ export declare const vSearchResult: VObject<{
40
40
  score: import("convex/values").VFloat64<number, "required">;
41
41
  }, "required", "entryId" | "order" | "content" | "startOrder" | "score">;
42
42
  export type SearchResult = Infer<typeof vSearchResult>;
43
+ export declare const vSearchType: import("convex/values").VUnion<"text" | "vector" | "hybrid", [import("convex/values").VLiteral<"vector", "required">, import("convex/values").VLiteral<"text", "required">, import("convex/values").VLiteral<"hybrid", "required">], "required", never>;
44
+ export type SearchType = Infer<typeof vSearchType>;
43
45
  export declare const vStatus: import("convex/values").VUnion<"pending" | "ready" | "replaced", [import("convex/values").VLiteral<"pending", "required">, import("convex/values").VLiteral<"ready", "required">, import("convex/values").VLiteral<"replaced", "required">], "required", never>;
44
46
  export declare const vActiveStatus: import("convex/values").VUnion<"pending" | "ready", [import("convex/values").VLiteral<"pending", "required">, import("convex/values").VLiteral<"ready", "required">], "required", never>;
45
47
  export type Status = Infer<typeof vStatus>;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
package/dist/shared.js CHANGED
@@ -17,6 +17,7 @@ export const vSearchResult = v.object({
17
17
  startOrder: v.number(),
18
18
  score: v.number(),
19
19
  });
20
+ export const vSearchType = v.union(v.literal("vector"), v.literal("text"), v.literal("hybrid"));
20
21
  export const vStatus = v.union(v.literal("pending"), v.literal("ready"), v.literal("replaced"));
21
22
  export const vActiveStatus = v.union(v.literal("pending"), v.literal("ready"));
22
23
  export const statuses = vStatus.members.map((s) => s.value);
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.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.7.0",
10
+ "version": "0.7.1",
11
11
  "license": "Apache-2.0",
12
12
  "keywords": [
13
13
  "convex",
@@ -25,10 +25,11 @@
25
25
  "dev": "run-p -r 'dev:*'",
26
26
  "dev:backend": "convex dev --typecheck-components",
27
27
  "dev:frontend": "cd example && vite --clearScreen false",
28
- "dev:build": "chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'convex codegen --component-dir ./src/component && npm run build' --initial",
28
+ "dev:build": "chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial",
29
29
  "predev": "convex dev --skip-push",
30
- "clean": "rm -rf dist *.tsbuildinfo",
31
30
  "build": "tsc --project ./tsconfig.build.json",
31
+ "build:codegen": "npx convex codegen --component-dir ./src/component && npm run build",
32
+ "build:clean": "rm -rf dist *.tsbuildinfo && npm run build:codegen",
32
33
  "typecheck": "tsc --noEmit && tsc -p example && tsc -p example/convex",
33
34
  "lint": "eslint .",
34
35
  "all": "run-p -r 'dev:*' 'test:watch'",
@@ -36,10 +37,11 @@
36
37
  "test:watch": "vitest --typecheck --clearScreen false",
37
38
  "test:debug": "vitest --inspect-brk --no-file-parallelism",
38
39
  "test:coverage": "vitest run --coverage --coverage.reporter=text",
39
- "prepare": "npm run build",
40
- "alpha": "npm run clean && npm ci && run-p test lint typecheck && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags",
41
- "release": "npm run clean && npm ci && run-p test lint typecheck && npm version patch && npm publish && git push --tags",
42
- "version": "pbcopy <<<$npm_package_version; vim CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md"
40
+ "preversion": "npm ci && npm run build:clean && run-p test lint typecheck",
41
+ "prepublishOnly": "npm whoami || npm login",
42
+ "alpha": "npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags",
43
+ "release": "npm version patch && npm publish && git push --follow-tags",
44
+ "version": "vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md"
43
45
  },
44
46
  "files": [
45
47
  "dist",
@@ -77,9 +79,9 @@
77
79
  "convex-helpers": "^0.1.94"
78
80
  },
79
81
  "devDependencies": {
80
- "@ai-sdk/openai": "3.0.2",
82
+ "@ai-sdk/openai": "3.0.25",
81
83
  "@arethetypeswrong/cli": "0.18.2",
82
- "@convex-dev/workpool": "0.3.0",
84
+ "@convex-dev/workpool": "0.3.1",
83
85
  "@edge-runtime/vm": "5.0.0",
84
86
  "@eslint/eslintrc": "3.3.3",
85
87
  "@eslint/js": "9.39.2",
@@ -87,37 +89,37 @@
87
89
  "@tailwindcss/postcss": "4.1.18",
88
90
  "@tailwindcss/typography": "0.5.19",
89
91
  "@types/eslint-plugin-react-refresh": "0.4.0",
90
- "@types/node": "20.19.27",
91
- "@types/react": "19.2.7",
92
+ "@types/node": "20.19.31",
93
+ "@types/react": "19.2.10",
92
94
  "@types/react-dom": "19.2.3",
93
- "@typescript-eslint/eslint-plugin": "8.50.1",
94
- "@typescript-eslint/parser": "8.50.1",
95
- "@vitejs/plugin-react": "5.1.2",
96
- "ai": "6.0.39",
97
- "autoprefixer": "10.4.23",
95
+ "@typescript-eslint/eslint-plugin": "8.54.0",
96
+ "@typescript-eslint/parser": "8.54.0",
97
+ "@vitejs/plugin-react": "5.1.3",
98
+ "ai": "6.0.68",
99
+ "autoprefixer": "10.4.24",
98
100
  "chokidar-cli": "3.0.0",
99
- "convex": "1.31.2",
100
- "convex-helpers": "0.1.108",
101
+ "convex": "1.31.7",
102
+ "convex-helpers": "0.1.111",
101
103
  "convex-test": "0.0.41",
102
104
  "cpy-cli": "6.0.0",
103
105
  "eslint": "9.39.2",
104
106
  "eslint-plugin-react": "7.37.5",
105
107
  "eslint-plugin-react-hooks": "7.0.1",
106
- "eslint-plugin-react-refresh": "0.4.26",
107
- "globals": "17.0.0",
108
+ "eslint-plugin-react-refresh": "0.5.0",
109
+ "globals": "17.3.0",
108
110
  "npm-run-all2": "8.0.4",
109
- "pdfjs-dist": "5.4.449",
110
- "pkg-pr-new": "0.0.62",
111
+ "pdfjs-dist": "5.4.624",
112
+ "pkg-pr-new": "0.0.63",
111
113
  "postcss": "8.5.6",
112
- "prettier": "3.7.4",
113
- "react": "19.2.3",
114
- "react-dom": "19.2.3",
114
+ "prettier": "3.8.1",
115
+ "react": "19.2.4",
116
+ "react-dom": "19.2.4",
115
117
  "react-markdown": "10.1.0",
116
118
  "tailwindcss": "4.1.18",
117
119
  "typescript": "5.9.3",
118
- "typescript-eslint": "8.50.1",
119
- "vite": "7.3.0",
120
- "vitest": "4.0.16"
120
+ "typescript-eslint": "8.54.0",
121
+ "vite": "7.3.1",
122
+ "vitest": "4.0.18"
121
123
  },
122
124
  "types": "./dist/client/index.d.ts",
123
125
  "module": "./dist/client/index.js"
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Rank results from multiple results, e.g. from vector search and text search.
3
- * Uses the "Recriprocal Rank Fusion" algorithm.
3
+ * Uses the "Reciprocal Rank Fusion" algorithm.
4
4
  * @param sortedResults The results arrays ordered by most important first.
5
5
  */
6
6
  export function hybridRank<T extends string>(
@@ -34,6 +34,7 @@ import {
34
34
  vEntryId,
35
35
  vNamespaceId,
36
36
  vOnCompleteArgs,
37
+ vSearchType,
37
38
  type Chunk,
38
39
  type ChunkerAction,
39
40
  type CreateChunkArgs,
@@ -46,12 +47,13 @@ import {
46
47
  type OnCompleteNamespace,
47
48
  type SearchEntry,
48
49
  type SearchResult,
50
+ type SearchType,
49
51
  type Status,
50
52
  } from "../shared.js";
51
53
  import { defaultChunker } from "./defaultChunker.js";
52
54
 
53
55
  export { hybridRank } from "./hybridRank.js";
54
- export { defaultChunker, vEntryId, vNamespaceId };
56
+ export { defaultChunker, vEntryId, vNamespaceId, vSearchType };
55
57
  export type {
56
58
  ChunkerAction,
57
59
  Entry,
@@ -61,6 +63,7 @@ export type {
61
63
  OnCompleteNamespace,
62
64
  SearchEntry,
63
65
  SearchResult,
66
+ SearchType,
64
67
  Status,
65
68
  };
66
69
 
@@ -388,29 +391,56 @@ export class RAG<
388
391
  limit = DEFAULT_SEARCH_LIMIT,
389
392
  chunkContext = { before: 0, after: 0 },
390
393
  vectorScoreThreshold,
394
+ searchType = "vector",
395
+ textWeight,
396
+ vectorWeight,
391
397
  } = args;
392
- let embedding: number[];
398
+
399
+ const needsEmbedding = searchType !== "text";
400
+ let needsTextQuery = searchType !== "vector";
401
+
402
+ if (needsTextQuery && Array.isArray(args.query)) {
403
+ if (searchType === "text") {
404
+ throw new Error('searchType "text" requires a string query.');
405
+ }
406
+ console.warn(
407
+ `searchType "${searchType}" requires a string query. Falling back to vector-only search for embedding array queries.`,
408
+ );
409
+ needsTextQuery = false;
410
+ }
411
+
412
+ let embedding: number[] | undefined;
393
413
  let usage: EmbeddingModelUsage = { tokens: 0 };
394
- if (Array.isArray(args.query)) {
395
- embedding = args.query;
396
- } else {
397
- const embedResult = await embed({
398
- model: this.options.textEmbeddingModel,
399
- value: args.query,
400
- });
401
- embedding = embedResult.embedding;
402
- usage = embedResult.usage;
414
+ if (needsEmbedding) {
415
+ if (Array.isArray(args.query)) {
416
+ embedding = args.query;
417
+ } else {
418
+ const embedResult = await embed({
419
+ model: this.options.textEmbeddingModel,
420
+ value: args.query,
421
+ });
422
+ embedding = embedResult.embedding;
423
+ usage = embedResult.usage;
424
+ }
403
425
  }
426
+
427
+ const textQuery =
428
+ needsTextQuery && typeof args.query === "string" ? args.query : undefined;
429
+
404
430
  const { results, entries } = await ctx.runAction(
405
431
  this.component.search.search,
406
432
  {
407
433
  embedding,
434
+ dimension: this.options.embeddingDimension,
408
435
  namespace,
409
436
  modelId: getModelId(this.options.textEmbeddingModel),
410
437
  filters,
411
438
  limit,
412
439
  vectorScoreThreshold,
413
440
  chunkContext,
441
+ textQuery,
442
+ textWeight,
443
+ vectorWeight,
414
444
  },
415
445
  );
416
446
  const entriesWithTexts = entries.map((e) => {
@@ -984,20 +1014,20 @@ async function createChunkArgsBatch(
984
1014
  embedding?: number[];
985
1015
  })[] = chunks.map((chunk) => {
986
1016
  if (typeof chunk === "string") {
987
- return { content: { text: chunk } };
1017
+ return { content: { text: chunk }, searchableText: chunk };
988
1018
  } else if ("text" in chunk) {
989
1019
  const { text, metadata, keywords: searchableText } = chunk;
990
1020
  return {
991
1021
  content: { text, metadata },
992
1022
  embedding: chunk.embedding,
993
- searchableText,
1023
+ searchableText: searchableText ?? text,
994
1024
  };
995
1025
  } else if ("pageContent" in chunk) {
996
1026
  const { pageContent: text, metadata, keywords: searchableText } = chunk;
997
1027
  return {
998
1028
  content: { text, metadata },
999
1029
  embedding: chunk.embedding,
1000
- searchableText,
1030
+ searchableText: searchableText ?? text,
1001
1031
  };
1002
1032
  } else {
1003
1033
  throw new Error("Invalid chunk: " + JSON.stringify(chunk));
@@ -1049,8 +1079,10 @@ type LangChainChunk = {
1049
1079
  export type InputChunk =
1050
1080
  | string
1051
1081
  | ((MastraChunk | LangChainChunk) & {
1052
- // Space-delimited keywords to text search on.
1053
- // TODO: implement text search
1082
+ /**
1083
+ * Text to use for full-text search. Defaults to the chunk's text content.
1084
+ * Provide a custom value to control what text is searchable.
1085
+ */
1054
1086
  keywords?: string;
1055
1087
  // In the future we can add per-chunk metadata if it's useful.
1056
1088
  // importance?: Importance;
@@ -1169,6 +1201,34 @@ type SearchOptions<FitlerSchemas extends Record<string, Value>> = {
1169
1201
  * The minimum score to return a result.
1170
1202
  */
1171
1203
  vectorScoreThreshold?: number;
1204
+ /**
1205
+ * The search mode to use.
1206
+ * - "vector": Vector similarity search only (default). Returns cosine
1207
+ * similarity scores.
1208
+ * - "text": Full-text search only. No embedding is computed. Returns
1209
+ * position-based scores.
1210
+ * - "hybrid": Combines vector and full-text search using Reciprocal Rank
1211
+ * Fusion. Returns position-based scores (1.0 for top result, decreasing
1212
+ * linearly).
1213
+ *
1214
+ * Text and hybrid modes require the query to be a string (not an embedding
1215
+ * array).
1216
+ */
1217
+ searchType?: SearchType;
1218
+ /**
1219
+ * Weight for text search results in hybrid ranking (RRF).
1220
+ * Higher values give more influence to text search matches.
1221
+ * Only used when searchType is "hybrid".
1222
+ * Default: 1
1223
+ */
1224
+ textWeight?: number;
1225
+ /**
1226
+ * Weight for vector search results in hybrid ranking (RRF).
1227
+ * Higher values give more influence to vector search matches.
1228
+ * Only used when searchType is "hybrid".
1229
+ * Default: 1
1230
+ */
1231
+ vectorWeight?: number;
1172
1232
  };
1173
1233
 
1174
1234
  function getModelCategory(model: string | { provider: string }) {