@absolutejs/absolute 0.19.0-beta.531 → 0.19.0-beta.532
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/client/index.js +143 -43
- package/dist/ai/client/index.js.map +3 -3
- package/dist/ai/index.js +143 -43
- package/dist/ai/index.js.map +3 -3
- package/dist/react/ai/index.js +143 -43
- package/dist/react/ai/index.js.map +3 -3
- package/dist/svelte/ai/index.js +143 -43
- package/dist/svelte/ai/index.js.map +3 -3
- package/dist/types/ai.d.ts +16 -0
- package/dist/vue/ai/index.js +143 -43
- package/dist/vue/ai/index.js.map +3 -3
- package/package.json +7 -7
package/dist/ai/index.js
CHANGED
|
@@ -5291,6 +5291,114 @@ var buildRAGAnswerGroundingEvaluationLeaderboard = (runs) => {
|
|
|
5291
5291
|
totalCases: run.response.totalCases
|
|
5292
5292
|
}));
|
|
5293
5293
|
};
|
|
5294
|
+
var buildTraceStageCounts = (traces) => {
|
|
5295
|
+
const counts = {};
|
|
5296
|
+
for (const trace of traces) {
|
|
5297
|
+
for (const step of trace.steps) {
|
|
5298
|
+
counts[step.stage] = (counts[step.stage] ?? 0) + 1;
|
|
5299
|
+
}
|
|
5300
|
+
}
|
|
5301
|
+
return counts;
|
|
5302
|
+
};
|
|
5303
|
+
var roundTraceAverage = (value, total) => total > 0 ? Number((value / total).toFixed(2)) : 0;
|
|
5304
|
+
var summarizeRetrievalTraces = (traces) => {
|
|
5305
|
+
if (traces.length === 0) {
|
|
5306
|
+
return;
|
|
5307
|
+
}
|
|
5308
|
+
const totalCases = traces.length;
|
|
5309
|
+
const modeSet = new Set;
|
|
5310
|
+
let vectorCases = 0;
|
|
5311
|
+
let lexicalCases = 0;
|
|
5312
|
+
let transformedCases = 0;
|
|
5313
|
+
let variantCases = 0;
|
|
5314
|
+
let finalCountSum = 0;
|
|
5315
|
+
let vectorCountSum = 0;
|
|
5316
|
+
let lexicalCountSum = 0;
|
|
5317
|
+
let candidateTopKSum = 0;
|
|
5318
|
+
let lexicalTopKSum = 0;
|
|
5319
|
+
for (const trace of traces) {
|
|
5320
|
+
modeSet.add(trace.mode);
|
|
5321
|
+
if (trace.runVector) {
|
|
5322
|
+
vectorCases += 1;
|
|
5323
|
+
}
|
|
5324
|
+
if (trace.runLexical) {
|
|
5325
|
+
lexicalCases += 1;
|
|
5326
|
+
}
|
|
5327
|
+
if (trace.transformedQuery !== trace.query) {
|
|
5328
|
+
transformedCases += 1;
|
|
5329
|
+
}
|
|
5330
|
+
if (trace.variantQueries.length > 0) {
|
|
5331
|
+
variantCases += 1;
|
|
5332
|
+
}
|
|
5333
|
+
finalCountSum += trace.resultCounts.final;
|
|
5334
|
+
vectorCountSum += trace.resultCounts.vector;
|
|
5335
|
+
lexicalCountSum += trace.resultCounts.lexical;
|
|
5336
|
+
candidateTopKSum += trace.candidateTopK;
|
|
5337
|
+
lexicalTopKSum += trace.lexicalTopK;
|
|
5338
|
+
}
|
|
5339
|
+
return {
|
|
5340
|
+
averageCandidateTopK: roundTraceAverage(candidateTopKSum, totalCases),
|
|
5341
|
+
averageFinalCount: roundTraceAverage(finalCountSum, totalCases),
|
|
5342
|
+
averageLexicalCount: roundTraceAverage(lexicalCountSum, totalCases),
|
|
5343
|
+
averageLexicalTopK: roundTraceAverage(lexicalTopKSum, totalCases),
|
|
5344
|
+
averageVectorCount: roundTraceAverage(vectorCountSum, totalCases),
|
|
5345
|
+
lexicalCases,
|
|
5346
|
+
modes: Array.from(modeSet),
|
|
5347
|
+
stageCounts: buildTraceStageCounts(traces),
|
|
5348
|
+
totalCases,
|
|
5349
|
+
transformedCases,
|
|
5350
|
+
variantCases,
|
|
5351
|
+
vectorCases
|
|
5352
|
+
};
|
|
5353
|
+
};
|
|
5354
|
+
var evaluateRAGCollectionCases = async ({
|
|
5355
|
+
collection,
|
|
5356
|
+
input,
|
|
5357
|
+
defaultTopK = DEFAULT_TOP_K2,
|
|
5358
|
+
rerank,
|
|
5359
|
+
includeTrace = false
|
|
5360
|
+
}) => {
|
|
5361
|
+
if (input.dryRun) {
|
|
5362
|
+
return executeDryRunRAGEvaluation(input, defaultTopK).map((caseResult) => ({
|
|
5363
|
+
caseResult,
|
|
5364
|
+
trace: undefined
|
|
5365
|
+
}));
|
|
5366
|
+
}
|
|
5367
|
+
return Promise.all(input.cases.map(async (caseInput, caseIndex) => {
|
|
5368
|
+
const startedAt = Date.now();
|
|
5369
|
+
const mode = resolveEvaluationMode(caseInput);
|
|
5370
|
+
const query = caseInput.query.trim();
|
|
5371
|
+
const expectedIds = normalizeExpectedIds(mode === "chunkId" ? caseInput.expectedChunkIds ?? [] : mode === "source" ? caseInput.expectedSources ?? [] : caseInput.expectedDocumentIds ?? []);
|
|
5372
|
+
const topK = typeof caseInput.topK === "number" ? caseInput.topK : typeof input.topK === "number" ? input.topK : defaultTopK;
|
|
5373
|
+
const searchInput = {
|
|
5374
|
+
filter: typeof caseInput.filter === "object" ? caseInput.filter : input.filter,
|
|
5375
|
+
model: caseInput.model ?? input.model,
|
|
5376
|
+
query,
|
|
5377
|
+
rerank,
|
|
5378
|
+
scoreThreshold: typeof caseInput.scoreThreshold === "number" ? caseInput.scoreThreshold : input.scoreThreshold,
|
|
5379
|
+
topK
|
|
5380
|
+
};
|
|
5381
|
+
const searchOutcome = includeTrace ? await collection.searchWithTrace(searchInput) : {
|
|
5382
|
+
results: await collection.search(searchInput),
|
|
5383
|
+
trace: undefined
|
|
5384
|
+
};
|
|
5385
|
+
const sources = buildSources(searchOutcome.results);
|
|
5386
|
+
const elapsedMs = Date.now() - startedAt;
|
|
5387
|
+
const retrievedIds = normalizeExpectedIds(sources.map((source) => extractExpectedId(source, mode)));
|
|
5388
|
+
return {
|
|
5389
|
+
caseResult: summarizeRAGEvaluationCase({
|
|
5390
|
+
caseIndex,
|
|
5391
|
+
caseInput: { ...caseInput, topK },
|
|
5392
|
+
elapsedMs,
|
|
5393
|
+
expectedIds,
|
|
5394
|
+
mode,
|
|
5395
|
+
query,
|
|
5396
|
+
retrievedIds
|
|
5397
|
+
}),
|
|
5398
|
+
trace: searchOutcome.trace
|
|
5399
|
+
};
|
|
5400
|
+
}));
|
|
5401
|
+
};
|
|
5294
5402
|
var buildRAGAnswerGroundingCaseDifficultyLeaderboard = (entries) => {
|
|
5295
5403
|
const grouped = new Map;
|
|
5296
5404
|
for (const entry of entries) {
|
|
@@ -5926,17 +6034,20 @@ var compareRAGRerankers = async ({
|
|
|
5926
6034
|
defaultTopK = DEFAULT_TOP_K2
|
|
5927
6035
|
}) => {
|
|
5928
6036
|
const entries = await Promise.all(rerankers.map(async (candidate) => {
|
|
5929
|
-
const
|
|
6037
|
+
const evaluated = await evaluateRAGCollectionCases({
|
|
5930
6038
|
collection,
|
|
5931
6039
|
defaultTopK,
|
|
5932
6040
|
input: suite.input,
|
|
6041
|
+
includeTrace: true,
|
|
5933
6042
|
rerank: candidate.rerank
|
|
5934
6043
|
});
|
|
6044
|
+
const response = buildRAGEvaluationResponse(evaluated.map((entry) => entry.caseResult));
|
|
5935
6045
|
return {
|
|
5936
6046
|
label: candidate.label ?? candidate.id,
|
|
5937
6047
|
providerName: typeof candidate.rerank === "function" ? undefined : candidate.rerank?.providerName,
|
|
5938
6048
|
response,
|
|
5939
|
-
rerankerId: candidate.id
|
|
6049
|
+
rerankerId: candidate.id,
|
|
6050
|
+
traceSummary: summarizeRetrievalTraces(evaluated.map((entry) => entry.trace).filter((trace) => Boolean(trace)))
|
|
5940
6051
|
};
|
|
5941
6052
|
}));
|
|
5942
6053
|
const leaderboard = buildRAGEvaluationLeaderboard(entries.map((entry) => ({
|
|
@@ -5991,25 +6102,37 @@ var compareRAGRetrievalStrategies = async ({
|
|
|
5991
6102
|
defaultTopK = DEFAULT_TOP_K2
|
|
5992
6103
|
}) => {
|
|
5993
6104
|
const entries = await Promise.all(retrievals.map(async (candidate) => {
|
|
5994
|
-
const
|
|
6105
|
+
const tracedCollection = {
|
|
6106
|
+
...collection,
|
|
6107
|
+
search: (input) => collection.search({
|
|
6108
|
+
...input,
|
|
6109
|
+
queryTransform: candidate.queryTransform ?? input.queryTransform,
|
|
6110
|
+
rerank: candidate.rerank ?? input.rerank,
|
|
6111
|
+
retrieval: candidate.retrieval ?? input.retrieval
|
|
6112
|
+
}),
|
|
6113
|
+
searchWithTrace: (input) => collection.searchWithTrace({
|
|
6114
|
+
...input,
|
|
6115
|
+
queryTransform: candidate.queryTransform ?? input.queryTransform,
|
|
6116
|
+
rerank: candidate.rerank ?? input.rerank,
|
|
6117
|
+
retrieval: candidate.retrieval ?? input.retrieval
|
|
6118
|
+
})
|
|
6119
|
+
};
|
|
6120
|
+
const evaluated = await evaluateRAGCollectionCases({
|
|
5995
6121
|
collection: {
|
|
5996
|
-
...
|
|
5997
|
-
search: (input) => collection.search({
|
|
5998
|
-
...input,
|
|
5999
|
-
queryTransform: candidate.queryTransform ?? input.queryTransform,
|
|
6000
|
-
rerank: candidate.rerank ?? input.rerank,
|
|
6001
|
-
retrieval: candidate.retrieval ?? input.retrieval
|
|
6002
|
-
})
|
|
6122
|
+
...tracedCollection
|
|
6003
6123
|
},
|
|
6004
6124
|
defaultTopK,
|
|
6005
6125
|
input: suite.input,
|
|
6126
|
+
includeTrace: true,
|
|
6006
6127
|
rerank: candidate.rerank
|
|
6007
6128
|
});
|
|
6129
|
+
const response = buildRAGEvaluationResponse(evaluated.map((entry) => entry.caseResult));
|
|
6008
6130
|
return {
|
|
6009
6131
|
label: candidate.label ?? candidate.id,
|
|
6010
6132
|
response,
|
|
6011
6133
|
retrievalId: candidate.id,
|
|
6012
|
-
retrievalMode: resolveRetrievalMode(candidate)
|
|
6134
|
+
retrievalMode: resolveRetrievalMode(candidate),
|
|
6135
|
+
traceSummary: summarizeRetrievalTraces(evaluated.map((entry) => entry.trace).filter((trace) => Boolean(trace)))
|
|
6013
6136
|
};
|
|
6014
6137
|
}));
|
|
6015
6138
|
const leaderboard = buildRAGEvaluationLeaderboard(entries.map((entry) => ({
|
|
@@ -6036,37 +6159,14 @@ var evaluateRAGCollection = async ({
|
|
|
6036
6159
|
defaultTopK = DEFAULT_TOP_K2,
|
|
6037
6160
|
rerank
|
|
6038
6161
|
}) => {
|
|
6039
|
-
|
|
6040
|
-
|
|
6041
|
-
|
|
6042
|
-
|
|
6043
|
-
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
const topK = typeof caseInput.topK === "number" ? caseInput.topK : typeof input.topK === "number" ? input.topK : defaultTopK;
|
|
6048
|
-
const searchResults = await collection.search({
|
|
6049
|
-
filter: typeof caseInput.filter === "object" ? caseInput.filter : input.filter,
|
|
6050
|
-
model: caseInput.model ?? input.model,
|
|
6051
|
-
query,
|
|
6052
|
-
rerank,
|
|
6053
|
-
scoreThreshold: typeof caseInput.scoreThreshold === "number" ? caseInput.scoreThreshold : input.scoreThreshold,
|
|
6054
|
-
topK
|
|
6055
|
-
});
|
|
6056
|
-
const sources = buildSources(searchResults);
|
|
6057
|
-
const elapsedMs = Date.now() - startedAt;
|
|
6058
|
-
const retrievedIds = normalizeExpectedIds(sources.map((source) => extractExpectedId(source, mode)));
|
|
6059
|
-
return summarizeRAGEvaluationCase({
|
|
6060
|
-
caseIndex,
|
|
6061
|
-
caseInput: { ...caseInput, topK },
|
|
6062
|
-
elapsedMs,
|
|
6063
|
-
expectedIds,
|
|
6064
|
-
mode,
|
|
6065
|
-
query,
|
|
6066
|
-
retrievedIds
|
|
6067
|
-
});
|
|
6068
|
-
}));
|
|
6069
|
-
return buildRAGEvaluationResponse(evaluated);
|
|
6162
|
+
const evaluated = await evaluateRAGCollectionCases({
|
|
6163
|
+
collection,
|
|
6164
|
+
defaultTopK,
|
|
6165
|
+
includeTrace: false,
|
|
6166
|
+
input,
|
|
6167
|
+
rerank
|
|
6168
|
+
});
|
|
6169
|
+
return buildRAGEvaluationResponse(evaluated.map((entry) => entry.caseResult));
|
|
6070
6170
|
};
|
|
6071
6171
|
var executeDryRunRAGEvaluation = (input, defaultTopK = DEFAULT_TOP_K2) => input.cases.map((caseInput, caseIndex) => {
|
|
6072
6172
|
const mode = resolveEvaluationMode(caseInput);
|
|
@@ -11303,5 +11403,5 @@ export {
|
|
|
11303
11403
|
aiChat
|
|
11304
11404
|
};
|
|
11305
11405
|
|
|
11306
|
-
//# debugId=
|
|
11406
|
+
//# debugId=3553069554C7849B64756E2164756E21
|
|
11307
11407
|
//# sourceMappingURL=index.js.map
|