@absolutejs/absolute 0.19.0-beta.466 → 0.19.0-beta.467

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/dist/ai/index.js CHANGED
@@ -2113,6 +2113,71 @@ var aiChat = (config) => {
2113
2113
  init_constants();
2114
2114
  import { Elysia as Elysia2 } from "elysia";
2115
2115
 
2116
+ // src/ai/rag/reranking.ts
2117
+ var tokenize = (value) => value.toLowerCase().split(/[^a-z0-9]+/i).map((token) => token.trim()).filter((token) => token.length > 1);
2118
+ var scoreHeuristicMatch = (queryTokens, result) => {
2119
+ if (queryTokens.length === 0) {
2120
+ return result.score;
2121
+ }
2122
+ const haystack = tokenize([result.title, result.source, result.chunkText].filter(Boolean).join(" "));
2123
+ const haystackSet = new Set(haystack);
2124
+ const overlap = queryTokens.filter((token) => haystackSet.has(token)).length;
2125
+ const overlapBoost = overlap / queryTokens.length;
2126
+ return result.score + overlapBoost;
2127
+ };
2128
+ var createRAGReranker = (options) => ({
2129
+ defaultModel: options.defaultModel,
2130
+ providerName: options.providerName,
2131
+ rerank: options.rerank
2132
+ });
2133
+ var resolveRAGReranker = (reranker) => {
2134
+ if (!reranker) {
2135
+ return null;
2136
+ }
2137
+ if (typeof reranker === "function") {
2138
+ return {
2139
+ defaultModel: undefined,
2140
+ providerName: undefined,
2141
+ rerank: reranker
2142
+ };
2143
+ }
2144
+ return reranker;
2145
+ };
2146
+ var applyRAGReranking = async ({
2147
+ input,
2148
+ reranker
2149
+ }) => {
2150
+ const resolved = resolveRAGReranker(reranker);
2151
+ if (!resolved) {
2152
+ return input.results;
2153
+ }
2154
+ const effectiveModel = input.model ?? resolved.defaultModel;
2155
+ return Promise.resolve(resolved.rerank({
2156
+ ...input,
2157
+ model: effectiveModel
2158
+ }));
2159
+ };
2160
+ var createHeuristicRAGReranker = (options = {}) => createRAGReranker({
2161
+ defaultModel: options.defaultModel ?? "absolute-heuristic-reranker",
2162
+ providerName: options.providerName ?? "absolute_heuristic",
2163
+ rerank: ({ query, results }) => {
2164
+ const queryTokens = tokenize(query);
2165
+ return [...results].map((result, index) => ({
2166
+ index,
2167
+ result,
2168
+ score: scoreHeuristicMatch(queryTokens, result)
2169
+ })).sort((left, right) => {
2170
+ if (right.score !== left.score) {
2171
+ return right.score - left.score;
2172
+ }
2173
+ return left.index - right.index;
2174
+ }).map(({ result, score }) => ({
2175
+ ...result,
2176
+ score
2177
+ }));
2178
+ }
2179
+ });
2180
+
2116
2181
  // src/ai/rag/embedding.ts
2117
2182
  var isEmbeddingProvider = (value) => typeof value === "object" && value !== null && typeof value.embed === "function";
2118
2183
  var createRAGEmbeddingProvider = (options) => options;
@@ -2629,8 +2694,10 @@ var createRAGCollection = (options) => {
2629
2694
  scoreThreshold: input.scoreThreshold,
2630
2695
  topK
2631
2696
  };
2632
- const rerank = input.rerank ?? options.rerank;
2633
- const reranked = await Promise.resolve(typeof rerank === "function" ? rerank(rerankInput) : results);
2697
+ const reranked = await applyRAGReranking({
2698
+ input: rerankInput,
2699
+ reranker: input.rerank ?? options.rerank
2700
+ });
2634
2701
  const limited = reranked.slice(0, topK);
2635
2702
  if (typeof input.scoreThreshold !== "number") {
2636
2703
  return limited;
@@ -5264,6 +5331,7 @@ export {
5264
5331
  serializeAIMessage,
5265
5332
  searchDocuments,
5266
5333
  resolveRAGStreamStage,
5334
+ resolveRAGReranker,
5267
5335
  resolveRAGEmbeddingProvider,
5268
5336
  resolveAbsoluteSQLiteVecExtensionPath,
5269
5337
  resolveAbsoluteSQLiteVec,
@@ -5306,6 +5374,7 @@ export {
5306
5374
  deepseek,
5307
5375
  createSQLiteRAGStore,
5308
5376
  createRAGVector,
5377
+ createRAGReranker,
5309
5378
  createRAGHTMXWorkflowRenderConfig,
5310
5379
  createRAGHTMXConfig,
5311
5380
  createRAGEmbeddingProvider,
@@ -5313,6 +5382,7 @@ export {
5313
5382
  createRAGClient,
5314
5383
  createMemoryStore,
5315
5384
  createInMemoryRAGStore,
5385
+ createHeuristicRAGReranker,
5316
5386
  createConversationManager,
5317
5387
  buildRAGUpsertInputFromUploads,
5318
5388
  buildRAGUpsertInputFromURLs,
@@ -5323,10 +5393,11 @@ export {
5323
5393
  buildRAGSourceGroups,
5324
5394
  buildRAGCitations,
5325
5395
  buildRAGCitationReferenceMap,
5396
+ applyRAGReranking,
5326
5397
  alibabaEmbeddings,
5327
5398
  alibaba,
5328
5399
  aiChat
5329
5400
  };
5330
5401
 
5331
- //# debugId=203D3517263A2F8764756E2164756E21
5402
+ //# debugId=7E07B2598537EE7A64756E2164756E21
5332
5403
  //# sourceMappingURL=index.js.map