@absolutejs/absolute 0.19.0-beta.531 → 0.19.0-beta.533
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 +180 -45
- package/dist/ai/client/index.js.map +3 -3
- package/dist/ai/index.js +180 -45
- package/dist/ai/index.js.map +3 -3
- package/dist/angular/index.js +2 -2
- package/dist/angular/index.js.map +1 -1
- package/dist/angular/server.js +2 -2
- package/dist/angular/server.js.map +1 -1
- package/dist/build.js +2 -2
- package/dist/build.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/react/ai/index.js +180 -45
- package/dist/react/ai/index.js.map +3 -3
- package/dist/src/vue/ai/useRAG.d.ts +48 -0
- package/dist/src/vue/ai/useRAGEvaluate.d.ts +48 -0
- package/dist/svelte/ai/index.js +180 -45
- package/dist/svelte/ai/index.js.map +3 -3
- package/dist/types/ai.d.ts +30 -0
- package/dist/vue/ai/index.js +180 -45
- package/dist/vue/ai/index.js.map +3 -3
- package/package.json +7 -7
package/dist/ai/index.js
CHANGED
|
@@ -5291,6 +5291,131 @@ 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 diffTraceStageCounts = ({
|
|
5304
|
+
current,
|
|
5305
|
+
previous
|
|
5306
|
+
}) => {
|
|
5307
|
+
const next = {};
|
|
5308
|
+
const stages = new Set([
|
|
5309
|
+
...Object.keys(current),
|
|
5310
|
+
...Object.keys(previous)
|
|
5311
|
+
]);
|
|
5312
|
+
for (const stage of stages) {
|
|
5313
|
+
const delta = (current[stage] ?? 0) - (previous[stage] ?? 0);
|
|
5314
|
+
if (delta !== 0) {
|
|
5315
|
+
next[stage] = delta;
|
|
5316
|
+
}
|
|
5317
|
+
}
|
|
5318
|
+
return next;
|
|
5319
|
+
};
|
|
5320
|
+
var roundTraceAverage = (value, total) => total > 0 ? Number((value / total).toFixed(2)) : 0;
|
|
5321
|
+
var summarizeRetrievalTraces = (traces) => {
|
|
5322
|
+
if (traces.length === 0) {
|
|
5323
|
+
return;
|
|
5324
|
+
}
|
|
5325
|
+
const totalCases = traces.length;
|
|
5326
|
+
const modeSet = new Set;
|
|
5327
|
+
let vectorCases = 0;
|
|
5328
|
+
let lexicalCases = 0;
|
|
5329
|
+
let transformedCases = 0;
|
|
5330
|
+
let variantCases = 0;
|
|
5331
|
+
let finalCountSum = 0;
|
|
5332
|
+
let vectorCountSum = 0;
|
|
5333
|
+
let lexicalCountSum = 0;
|
|
5334
|
+
let candidateTopKSum = 0;
|
|
5335
|
+
let lexicalTopKSum = 0;
|
|
5336
|
+
for (const trace of traces) {
|
|
5337
|
+
modeSet.add(trace.mode);
|
|
5338
|
+
if (trace.runVector) {
|
|
5339
|
+
vectorCases += 1;
|
|
5340
|
+
}
|
|
5341
|
+
if (trace.runLexical) {
|
|
5342
|
+
lexicalCases += 1;
|
|
5343
|
+
}
|
|
5344
|
+
if (trace.transformedQuery !== trace.query) {
|
|
5345
|
+
transformedCases += 1;
|
|
5346
|
+
}
|
|
5347
|
+
if (trace.variantQueries.length > 0) {
|
|
5348
|
+
variantCases += 1;
|
|
5349
|
+
}
|
|
5350
|
+
finalCountSum += trace.resultCounts.final;
|
|
5351
|
+
vectorCountSum += trace.resultCounts.vector;
|
|
5352
|
+
lexicalCountSum += trace.resultCounts.lexical;
|
|
5353
|
+
candidateTopKSum += trace.candidateTopK;
|
|
5354
|
+
lexicalTopKSum += trace.lexicalTopK;
|
|
5355
|
+
}
|
|
5356
|
+
return {
|
|
5357
|
+
averageCandidateTopK: roundTraceAverage(candidateTopKSum, totalCases),
|
|
5358
|
+
averageFinalCount: roundTraceAverage(finalCountSum, totalCases),
|
|
5359
|
+
averageLexicalCount: roundTraceAverage(lexicalCountSum, totalCases),
|
|
5360
|
+
averageLexicalTopK: roundTraceAverage(lexicalTopKSum, totalCases),
|
|
5361
|
+
averageVectorCount: roundTraceAverage(vectorCountSum, totalCases),
|
|
5362
|
+
lexicalCases,
|
|
5363
|
+
modes: Array.from(modeSet),
|
|
5364
|
+
stageCounts: buildTraceStageCounts(traces),
|
|
5365
|
+
totalCases,
|
|
5366
|
+
transformedCases,
|
|
5367
|
+
variantCases,
|
|
5368
|
+
vectorCases
|
|
5369
|
+
};
|
|
5370
|
+
};
|
|
5371
|
+
var evaluateRAGCollectionCases = async ({
|
|
5372
|
+
collection,
|
|
5373
|
+
input,
|
|
5374
|
+
defaultTopK = DEFAULT_TOP_K2,
|
|
5375
|
+
rerank,
|
|
5376
|
+
includeTrace = false
|
|
5377
|
+
}) => {
|
|
5378
|
+
if (input.dryRun) {
|
|
5379
|
+
return executeDryRunRAGEvaluation(input, defaultTopK).map((caseResult) => ({
|
|
5380
|
+
caseResult,
|
|
5381
|
+
trace: undefined
|
|
5382
|
+
}));
|
|
5383
|
+
}
|
|
5384
|
+
return Promise.all(input.cases.map(async (caseInput, caseIndex) => {
|
|
5385
|
+
const startedAt = Date.now();
|
|
5386
|
+
const mode = resolveEvaluationMode(caseInput);
|
|
5387
|
+
const query = caseInput.query.trim();
|
|
5388
|
+
const expectedIds = normalizeExpectedIds(mode === "chunkId" ? caseInput.expectedChunkIds ?? [] : mode === "source" ? caseInput.expectedSources ?? [] : caseInput.expectedDocumentIds ?? []);
|
|
5389
|
+
const topK = typeof caseInput.topK === "number" ? caseInput.topK : typeof input.topK === "number" ? input.topK : defaultTopK;
|
|
5390
|
+
const searchInput = {
|
|
5391
|
+
filter: typeof caseInput.filter === "object" ? caseInput.filter : input.filter,
|
|
5392
|
+
model: caseInput.model ?? input.model,
|
|
5393
|
+
query,
|
|
5394
|
+
rerank,
|
|
5395
|
+
scoreThreshold: typeof caseInput.scoreThreshold === "number" ? caseInput.scoreThreshold : input.scoreThreshold,
|
|
5396
|
+
topK
|
|
5397
|
+
};
|
|
5398
|
+
const searchOutcome = includeTrace ? await collection.searchWithTrace(searchInput) : {
|
|
5399
|
+
results: await collection.search(searchInput),
|
|
5400
|
+
trace: undefined
|
|
5401
|
+
};
|
|
5402
|
+
const sources = buildSources(searchOutcome.results);
|
|
5403
|
+
const elapsedMs = Date.now() - startedAt;
|
|
5404
|
+
const retrievedIds = normalizeExpectedIds(sources.map((source) => extractExpectedId(source, mode)));
|
|
5405
|
+
return {
|
|
5406
|
+
caseResult: summarizeRAGEvaluationCase({
|
|
5407
|
+
caseIndex,
|
|
5408
|
+
caseInput: { ...caseInput, topK },
|
|
5409
|
+
elapsedMs,
|
|
5410
|
+
expectedIds,
|
|
5411
|
+
mode,
|
|
5412
|
+
query,
|
|
5413
|
+
retrievedIds
|
|
5414
|
+
}),
|
|
5415
|
+
trace: searchOutcome.trace
|
|
5416
|
+
};
|
|
5417
|
+
}));
|
|
5418
|
+
};
|
|
5294
5419
|
var buildRAGAnswerGroundingCaseDifficultyLeaderboard = (entries) => {
|
|
5295
5420
|
const grouped = new Map;
|
|
5296
5421
|
for (const entry of entries) {
|
|
@@ -5576,6 +5701,22 @@ var buildRAGEvaluationRunDiff = ({
|
|
|
5576
5701
|
passingRate: current.response.passingRate - (previous?.response.passingRate ?? 0),
|
|
5577
5702
|
partialCases: current.response.summary.partialCases - (previous?.response.summary.partialCases ?? 0)
|
|
5578
5703
|
},
|
|
5704
|
+
traceSummaryDelta: current.traceSummary || previous?.traceSummary ? {
|
|
5705
|
+
averageCandidateTopK: (current.traceSummary?.averageCandidateTopK ?? 0) - (previous?.traceSummary?.averageCandidateTopK ?? 0),
|
|
5706
|
+
averageFinalCount: (current.traceSummary?.averageFinalCount ?? 0) - (previous?.traceSummary?.averageFinalCount ?? 0),
|
|
5707
|
+
averageLexicalCount: (current.traceSummary?.averageLexicalCount ?? 0) - (previous?.traceSummary?.averageLexicalCount ?? 0),
|
|
5708
|
+
averageLexicalTopK: (current.traceSummary?.averageLexicalTopK ?? 0) - (previous?.traceSummary?.averageLexicalTopK ?? 0),
|
|
5709
|
+
averageVectorCount: (current.traceSummary?.averageVectorCount ?? 0) - (previous?.traceSummary?.averageVectorCount ?? 0),
|
|
5710
|
+
lexicalCases: (current.traceSummary?.lexicalCases ?? 0) - (previous?.traceSummary?.lexicalCases ?? 0),
|
|
5711
|
+
modesChanged: (current.traceSummary?.modes ?? []).join("|") !== (previous?.traceSummary?.modes ?? []).join("|"),
|
|
5712
|
+
stageCounts: diffTraceStageCounts({
|
|
5713
|
+
current: current.traceSummary?.stageCounts ?? {},
|
|
5714
|
+
previous: previous?.traceSummary?.stageCounts ?? {}
|
|
5715
|
+
}),
|
|
5716
|
+
transformedCases: (current.traceSummary?.transformedCases ?? 0) - (previous?.traceSummary?.transformedCases ?? 0),
|
|
5717
|
+
variantCases: (current.traceSummary?.variantCases ?? 0) - (previous?.traceSummary?.variantCases ?? 0),
|
|
5718
|
+
vectorCases: (current.traceSummary?.vectorCases ?? 0) - (previous?.traceSummary?.vectorCases ?? 0)
|
|
5719
|
+
} : undefined,
|
|
5579
5720
|
unchangedCases
|
|
5580
5721
|
};
|
|
5581
5722
|
};
|
|
@@ -5926,17 +6067,20 @@ var compareRAGRerankers = async ({
|
|
|
5926
6067
|
defaultTopK = DEFAULT_TOP_K2
|
|
5927
6068
|
}) => {
|
|
5928
6069
|
const entries = await Promise.all(rerankers.map(async (candidate) => {
|
|
5929
|
-
const
|
|
6070
|
+
const evaluated = await evaluateRAGCollectionCases({
|
|
5930
6071
|
collection,
|
|
5931
6072
|
defaultTopK,
|
|
5932
6073
|
input: suite.input,
|
|
6074
|
+
includeTrace: true,
|
|
5933
6075
|
rerank: candidate.rerank
|
|
5934
6076
|
});
|
|
6077
|
+
const response = buildRAGEvaluationResponse(evaluated.map((entry) => entry.caseResult));
|
|
5935
6078
|
return {
|
|
5936
6079
|
label: candidate.label ?? candidate.id,
|
|
5937
6080
|
providerName: typeof candidate.rerank === "function" ? undefined : candidate.rerank?.providerName,
|
|
5938
6081
|
response,
|
|
5939
|
-
rerankerId: candidate.id
|
|
6082
|
+
rerankerId: candidate.id,
|
|
6083
|
+
traceSummary: summarizeRetrievalTraces(evaluated.map((entry) => entry.trace).filter((trace) => Boolean(trace)))
|
|
5940
6084
|
};
|
|
5941
6085
|
}));
|
|
5942
6086
|
const leaderboard = buildRAGEvaluationLeaderboard(entries.map((entry) => ({
|
|
@@ -5946,7 +6090,8 @@ var compareRAGRerankers = async ({
|
|
|
5946
6090
|
label: entry.label,
|
|
5947
6091
|
response: entry.response,
|
|
5948
6092
|
startedAt: 0,
|
|
5949
|
-
suiteId: suite.id
|
|
6093
|
+
suiteId: suite.id,
|
|
6094
|
+
traceSummary: entry.traceSummary
|
|
5950
6095
|
})));
|
|
5951
6096
|
return {
|
|
5952
6097
|
entries,
|
|
@@ -5991,25 +6136,37 @@ var compareRAGRetrievalStrategies = async ({
|
|
|
5991
6136
|
defaultTopK = DEFAULT_TOP_K2
|
|
5992
6137
|
}) => {
|
|
5993
6138
|
const entries = await Promise.all(retrievals.map(async (candidate) => {
|
|
5994
|
-
const
|
|
6139
|
+
const tracedCollection = {
|
|
6140
|
+
...collection,
|
|
6141
|
+
search: (input) => collection.search({
|
|
6142
|
+
...input,
|
|
6143
|
+
queryTransform: candidate.queryTransform ?? input.queryTransform,
|
|
6144
|
+
rerank: candidate.rerank ?? input.rerank,
|
|
6145
|
+
retrieval: candidate.retrieval ?? input.retrieval
|
|
6146
|
+
}),
|
|
6147
|
+
searchWithTrace: (input) => collection.searchWithTrace({
|
|
6148
|
+
...input,
|
|
6149
|
+
queryTransform: candidate.queryTransform ?? input.queryTransform,
|
|
6150
|
+
rerank: candidate.rerank ?? input.rerank,
|
|
6151
|
+
retrieval: candidate.retrieval ?? input.retrieval
|
|
6152
|
+
})
|
|
6153
|
+
};
|
|
6154
|
+
const evaluated = await evaluateRAGCollectionCases({
|
|
5995
6155
|
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
|
-
})
|
|
6156
|
+
...tracedCollection
|
|
6003
6157
|
},
|
|
6004
6158
|
defaultTopK,
|
|
6005
6159
|
input: suite.input,
|
|
6160
|
+
includeTrace: true,
|
|
6006
6161
|
rerank: candidate.rerank
|
|
6007
6162
|
});
|
|
6163
|
+
const response = buildRAGEvaluationResponse(evaluated.map((entry) => entry.caseResult));
|
|
6008
6164
|
return {
|
|
6009
6165
|
label: candidate.label ?? candidate.id,
|
|
6010
6166
|
response,
|
|
6011
6167
|
retrievalId: candidate.id,
|
|
6012
|
-
retrievalMode: resolveRetrievalMode(candidate)
|
|
6168
|
+
retrievalMode: resolveRetrievalMode(candidate),
|
|
6169
|
+
traceSummary: summarizeRetrievalTraces(evaluated.map((entry) => entry.trace).filter((trace) => Boolean(trace)))
|
|
6013
6170
|
};
|
|
6014
6171
|
}));
|
|
6015
6172
|
const leaderboard = buildRAGEvaluationLeaderboard(entries.map((entry) => ({
|
|
@@ -6019,7 +6176,8 @@ var compareRAGRetrievalStrategies = async ({
|
|
|
6019
6176
|
label: entry.label,
|
|
6020
6177
|
response: entry.response,
|
|
6021
6178
|
startedAt: 0,
|
|
6022
|
-
suiteId: suite.id
|
|
6179
|
+
suiteId: suite.id,
|
|
6180
|
+
traceSummary: entry.traceSummary
|
|
6023
6181
|
})));
|
|
6024
6182
|
return {
|
|
6025
6183
|
entries,
|
|
@@ -6036,37 +6194,14 @@ var evaluateRAGCollection = async ({
|
|
|
6036
6194
|
defaultTopK = DEFAULT_TOP_K2,
|
|
6037
6195
|
rerank
|
|
6038
6196
|
}) => {
|
|
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);
|
|
6197
|
+
const evaluated = await evaluateRAGCollectionCases({
|
|
6198
|
+
collection,
|
|
6199
|
+
defaultTopK,
|
|
6200
|
+
includeTrace: false,
|
|
6201
|
+
input,
|
|
6202
|
+
rerank
|
|
6203
|
+
});
|
|
6204
|
+
return buildRAGEvaluationResponse(evaluated.map((entry) => entry.caseResult));
|
|
6070
6205
|
};
|
|
6071
6206
|
var executeDryRunRAGEvaluation = (input, defaultTopK = DEFAULT_TOP_K2) => input.cases.map((caseInput, caseIndex) => {
|
|
6072
6207
|
const mode = resolveEvaluationMode(caseInput);
|
|
@@ -11303,5 +11438,5 @@ export {
|
|
|
11303
11438
|
aiChat
|
|
11304
11439
|
};
|
|
11305
11440
|
|
|
11306
|
-
//# debugId=
|
|
11441
|
+
//# debugId=5129E1811D01124064756E2164756E21
|
|
11307
11442
|
//# sourceMappingURL=index.js.map
|