@absolutejs/absolute 0.19.0-beta.489 → 0.19.0-beta.491

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.
@@ -2,11 +2,13 @@ export { ragChat, ragChat as ragPlugin } from './chat';
2
2
  export { createRAGHTMXConfig, createRAGHTMXWorkflowRenderConfig } from './htmxConfig';
3
3
  export { createRAGEmbeddingProvider, resolveRAGEmbeddingProvider, validateRAGEmbeddingDimensions } from './embedding';
4
4
  export { applyRAGReranking, createHeuristicRAGReranker, createRAGReranker, resolveRAGReranker } from './reranking';
5
+ export { applyRAGQueryTransform, createHeuristicRAGQueryTransform, createRAGQueryTransform, resolveRAGQueryTransform } from './queryTransforms';
6
+ export { buildRAGLexicalHaystack, fuseRAGQueryResults, resolveRAGHybridSearchOptions, scoreRAGLexicalMatch } from './lexical';
5
7
  export { alibabaEmbeddings, deepseekEmbeddings, geminiEmbeddings, googleEmbeddings, metaEmbeddings, mistralaiEmbeddings, moonshotEmbeddings, ollamaEmbeddings, openaiCompatibleEmbeddings, openaiEmbeddings, xaiEmbeddings } from './embeddingProviders';
6
8
  export { anthropicOCR, geminiOCR, ollamaOCR, ollamaTranscriber, openaiCompatibleOCR, openaiCompatibleTranscriber, openaiOCR, openaiTranscriber } from './extractorProviders';
7
9
  export { buildRAGUpsertInputFromDirectory, buildRAGUpsertInputFromDocuments, buildRAGUpsertInputFromUploads, createBuiltinArchiveExpander, createEmailExtractor, createEPUBExtractor, createLegacyDocumentExtractor, createRAGPDFOCRExtractor, createRAGArchiveExpander, createRAGArchiveFileExtractor, createOfficeDocumentExtractor, createPDFFileExtractor, createRAGFileExtractor, createRAGImageOCRExtractor, createRAGMediaFileExtractor, createRAGMediaTranscriber, createRAGOCRProvider, createTextFileExtractor, loadRAGDocumentFromURL, loadRAGDocumentUpload, loadRAGDocumentsFromUploads, buildRAGUpsertInputFromURLs, loadRAGDocumentFile, loadRAGDocumentsFromDirectory, loadRAGDocumentsFromURLs, prepareRAGDirectoryDocuments, prepareRAGDocument, prepareRAGDocumentFile, prepareRAGDocuments } from './ingestion';
8
10
  export { buildRAGAnswerWorkflowState, buildRAGCitations, buildRAGCitationReferenceMap, buildRAGGroundedAnswer, buildRAGGroundingReferences, buildRAGSourceGroups, buildRAGSourceSummaries, buildRAGStreamProgress as buildRAGTransportProgress, getLatestAssistantMessage, getLatestRAGSources, resolveRAGStreamStage } from './presentation';
9
- export { buildRAGEvaluationLeaderboard, buildRAGEvaluationResponse, compareRAGRerankers, createRAGEvaluationSuite, evaluateRAGCollection, executeDryRunRAGEvaluation, runRAGEvaluationSuite, summarizeRAGEvaluationCase, summarizeRAGRerankerComparison } from './quality';
11
+ export { buildRAGEvaluationLeaderboard, buildRAGEvaluationResponse, compareRAGRetrievalStrategies, compareRAGRerankers, createRAGEvaluationSuite, evaluateRAGCollection, executeDryRunRAGEvaluation, runRAGEvaluationSuite, summarizeRAGEvaluationCase, summarizeRAGRerankerComparison } from './quality';
10
12
  export type { RAGStreamProgress as RAGTransportProgress, RAGStreamProgressState as RAGTransportProgressState } from './presentation';
11
13
  export { createRAGCollection, ingestDocuments, ingestRAGDocuments, searchDocuments } from './collection';
12
14
  export { createInMemoryRAGStore } from './adapters/inMemory';
@@ -16,5 +18,5 @@ export { createRAGVector, normalizeVector, querySimilarity } from './adapters/ut
16
18
  export type { GeminiEmbeddingsConfig, OllamaEmbeddingsConfig, OpenAICompatibleEmbeddingsConfig, OpenAIEmbeddingsConfig } from './embeddingProviders';
17
19
  export type { AnthropicOCRConfig, GeminiOCRConfig, OllamaOCRConfig, OllamaTranscriptionConfig, OpenAICompatibleOCRConfig, OpenAICompatibleTranscriptionConfig, OpenAIOCRConfig, OpenAITranscriptionConfig } from './extractorProviders';
18
20
  export type { NativeSQLiteRAGStoreOptions, SQLiteRAGStoreOptions } from './adapters/sqlite';
19
- export type { AIHTMXRenderConfig, RAGAnswerWorkflowState, RAGBackendCapabilities, RAGCitation, RAGCitationReferenceMap, RAGGroundedAnswer, RAGGroundedAnswerPart, RAGGroundingReference, RAGChunkingOptions, RAGChunkingStrategy, RAGDocumentChunk, RAGDocumentChunkPreview, RAGArchiveEntry, RAGArchiveExpander, RAGArchiveExpansionResult, RAGExtractedFileDocument, RAGFileExtractionInput, RAGFileExtractor, RAGPDFOCRExtractorOptions, RAGDocumentFileInput, RAGDirectoryIngestInput, RAGDocumentIngestInput, RAGDocumentUploadIngestInput, RAGDocumentUploadInput, RAGDocumentUrlIngestInput, RAGDocumentUrlInput, RAGEmbeddingFunction, RAGEmbeddingInput, RAGEmbeddingProvider, RAGEmbeddingProviderLike, RAGBackendDescriptor, RAGCollection, RAGCollectionSearchParams, RAGContentFormat, RAGEvaluationCase, RAGEvaluationCaseResult, RAGEvaluationLeaderboardEntry, RAGEvaluationInput, RAGEvaluationResponse, RAGEvaluationSummary, RAGEvaluationSuite, RAGEvaluationSuiteRun, RAGHTMXConfig, RAGHTMXWorkflowRenderConfig, RAGIngestDocument, RAGIngestResponse, RAGIndexedDocument, RAGMediaTranscriber, RAGMediaTranscriptSegment, RAGMediaTranscriptionResult, RAGMutationResponse, RAGOCRProvider, RAGOCRResult, RAGQueryInput, RAGQueryResult, RAGPreparedDocument, RAGReranker, RAGRerankerCandidate, RAGRerankerComparison, RAGRerankerComparisonEntry, RAGRerankerComparisonSummary, RAGRerankerInput, RAGRerankerProvider, RAGRerankerProviderLike, RAGSearchRequest, RAGSource, RAGSourceGroup, RAGSourceSummary, RAGSQLiteNativeDiagnostics, RAGStatusResponse, RAGUpsertInput, RAGVectorStore, RAGVectorStoreStatus, SQLiteVecResolution } from './types';
21
+ export type { AIHTMXRenderConfig, RAGAnswerWorkflowState, RAGBackendCapabilities, RAGCitation, RAGCitationReferenceMap, RAGGroundedAnswer, RAGGroundedAnswerPart, RAGGroundingReference, RAGChunkingOptions, RAGChunkingStrategy, RAGDocumentChunk, RAGDocumentChunkPreview, RAGArchiveEntry, RAGArchiveExpander, RAGArchiveExpansionResult, RAGExtractedFileDocument, RAGFileExtractionInput, RAGFileExtractor, RAGPDFOCRExtractorOptions, RAGDocumentFileInput, RAGDirectoryIngestInput, RAGDocumentIngestInput, RAGDocumentUploadIngestInput, RAGDocumentUploadInput, RAGDocumentUrlIngestInput, RAGDocumentUrlInput, RAGEmbeddingFunction, RAGEmbeddingInput, RAGEmbeddingProvider, RAGEmbeddingProviderLike, RAGBackendDescriptor, RAGCollection, RAGCollectionSearchParams, RAGContentFormat, RAGEvaluationCase, RAGEvaluationCaseResult, RAGEvaluationLeaderboardEntry, RAGEvaluationInput, RAGEvaluationResponse, RAGEvaluationSummary, RAGEvaluationSuite, RAGEvaluationSuiteRun, RAGRetrievalCandidate, RAGRetrievalComparison, RAGRetrievalComparisonEntry, RAGRetrievalComparisonSummary, RAGHTMXConfig, RAGHTMXWorkflowRenderConfig, RAGIngestDocument, RAGIngestResponse, RAGIndexedDocument, RAGHybridFusionMode, RAGHybridRetrievalMode, RAGHybridSearchOptions, RAGMediaTranscriber, RAGMediaTranscriptSegment, RAGMediaTranscriptionResult, RAGMutationResponse, RAGLexicalQueryInput, RAGOCRProvider, RAGOCRResult, RAGQueryInput, RAGQueryResult, RAGQueryTransformInput, RAGQueryTransformProvider, RAGQueryTransformProviderLike, RAGQueryTransformResult, RAGQueryTransformer, RAGPreparedDocument, RAGReranker, RAGRerankerCandidate, RAGRerankerComparison, RAGRerankerComparisonEntry, RAGRerankerComparisonSummary, RAGRerankerInput, RAGRerankerProvider, RAGRerankerProviderLike, RAGSearchRequest, RAGSource, RAGSourceGroup, RAGSourceSummary, RAGSQLiteNativeDiagnostics, RAGStatusResponse, RAGUpsertInput, RAGVectorStore, RAGVectorStoreStatus, SQLiteVecResolution } from './types';
20
22
  export type { RAGPostgresNativeDiagnostics } from '../../../types/ai';
@@ -0,0 +1,36 @@
1
+ import type { RAGHybridFusionMode, RAGHybridRetrievalMode, RAGHybridSearchOptions, RAGQueryResult } from '../../../types/ai';
2
+ export declare const buildRAGLexicalHaystack: (result: {
3
+ title?: string;
4
+ source?: string;
5
+ chunkText: string;
6
+ metadata?: Record<string, unknown>;
7
+ }) => string;
8
+ export declare const scoreRAGLexicalMatch: (query: string, result: {
9
+ title?: string;
10
+ source?: string;
11
+ chunkText: string;
12
+ metadata?: Record<string, unknown>;
13
+ }) => number;
14
+ export declare const fuseRAGQueryResults: ({ fusion, fusionConstant, lexical, lexicalWeight, vector, vectorWeight }: {
15
+ vector?: RAGQueryResult[];
16
+ lexical?: RAGQueryResult[];
17
+ fusion?: RAGHybridFusionMode;
18
+ fusionConstant?: number;
19
+ lexicalWeight?: number;
20
+ vectorWeight?: number;
21
+ }) => {
22
+ score: number;
23
+ chunkId: string;
24
+ chunkText: string;
25
+ title?: string;
26
+ source?: string;
27
+ metadata?: Record<string, unknown>;
28
+ }[];
29
+ export declare const resolveRAGHybridSearchOptions: (retrieval: RAGHybridSearchOptions | RAGHybridRetrievalMode | undefined) => {
30
+ fusion: RAGHybridFusionMode;
31
+ fusionConstant: number;
32
+ lexicalTopK: number | undefined;
33
+ lexicalWeight: number;
34
+ mode: RAGHybridRetrievalMode;
35
+ vectorWeight: number;
36
+ };
@@ -1,4 +1,4 @@
1
- import type { RAGCollection, RAGEvaluationCase, RAGEvaluationCaseResult, RAGEvaluationInput, RAGEvaluationLeaderboardEntry, RAGEvaluationResponse, RAGEvaluationSuite, RAGEvaluationSuiteRun, RAGRerankerCandidate, RAGRerankerComparison, RAGRerankerComparisonEntry, RAGRerankerComparisonSummary, RAGRerankerProviderLike } from '../../../types/ai';
1
+ import type { RAGCollection, RAGEvaluationCase, RAGEvaluationCaseResult, RAGEvaluationInput, RAGEvaluationLeaderboardEntry, RAGEvaluationResponse, RAGEvaluationSuite, RAGEvaluationSuiteRun, RAGRetrievalCandidate, RAGRetrievalComparison, RAGRetrievalComparisonEntry, RAGRetrievalComparisonSummary, RAGRerankerCandidate, RAGRerankerComparison, RAGRerankerComparisonEntry, RAGRerankerComparisonSummary, RAGRerankerProviderLike } from '../../../types/ai';
2
2
  export declare const buildRAGEvaluationLeaderboard: (runs: RAGEvaluationSuiteRun[]) => RAGEvaluationLeaderboardEntry[];
3
3
  export declare const buildRAGEvaluationResponse: (cases: RAGEvaluationCaseResult[]) => RAGEvaluationResponse;
4
4
  export declare const compareRAGRerankers: ({ collection, suite, rerankers, defaultTopK }: {
@@ -7,6 +7,12 @@ export declare const compareRAGRerankers: ({ collection, suite, rerankers, defau
7
7
  rerankers: RAGRerankerCandidate[];
8
8
  defaultTopK?: number;
9
9
  }) => Promise<RAGRerankerComparison>;
10
+ export declare const compareRAGRetrievalStrategies: ({ collection, suite, retrievals, defaultTopK }: {
11
+ collection: RAGCollection;
12
+ suite: RAGEvaluationSuite;
13
+ retrievals: RAGRetrievalCandidate[];
14
+ defaultTopK?: number;
15
+ }) => Promise<RAGRetrievalComparison>;
10
16
  export declare const createRAGEvaluationSuite: (suite: RAGEvaluationSuite) => RAGEvaluationSuite;
11
17
  export declare const evaluateRAGCollection: ({ collection, input, defaultTopK, rerank }: {
12
18
  collection: RAGCollection;
@@ -39,3 +45,4 @@ export declare const summarizeRAGEvaluationCase: ({ caseIndex, caseInput, query,
39
45
  elapsedMs: number;
40
46
  }) => RAGEvaluationCaseResult;
41
47
  export declare const summarizeRAGRerankerComparison: (entries: RAGRerankerComparisonEntry[]) => RAGRerankerComparisonSummary;
48
+ export declare const summarizeRAGRetrievalComparison: (entries: RAGRetrievalComparisonEntry[]) => RAGRetrievalComparisonSummary;
@@ -0,0 +1,17 @@
1
+ import type { RAGQueryTransformInput, RAGQueryTransformProvider, RAGQueryTransformProviderLike, RAGQueryTransformResult, RAGQueryTransformer } from '../../../types/ai';
2
+ export type CreateRAGQueryTransformOptions = {
3
+ transform: RAGQueryTransformer;
4
+ defaultModel?: string;
5
+ providerName?: string;
6
+ };
7
+ export type HeuristicRAGQueryTransformOptions = {
8
+ defaultModel?: string;
9
+ providerName?: string;
10
+ };
11
+ export declare const createHeuristicRAGQueryTransform: (options?: HeuristicRAGQueryTransformOptions) => RAGQueryTransformProvider;
12
+ export declare const createRAGQueryTransform: (options: CreateRAGQueryTransformOptions) => RAGQueryTransformProvider;
13
+ export declare const resolveRAGQueryTransform: (queryTransform: RAGQueryTransformProviderLike | undefined) => RAGQueryTransformProvider | null;
14
+ export declare const applyRAGQueryTransform: ({ input, queryTransform }: {
15
+ input: RAGQueryTransformInput;
16
+ queryTransform?: RAGQueryTransformProviderLike;
17
+ }) => Promise<RAGQueryTransformResult>;
@@ -1,5 +1,5 @@
1
1
  import type { RAGDocumentChunk, RAGQueryInput, RAGQueryResult, RAGUpsertInput } from '../../../types/ai';
2
- export type { AIHTMXRenderConfig, RAGAnswerWorkflowState, RAGBackendCapabilities, RAGCitation, RAGCitationReferenceMap, RAGGroundedAnswer, RAGGroundedAnswerPart, RAGGroundingReference, RAGChunkingOptions, RAGChunkingStrategy, RAGCollection, RAGCollectionSearchParams, RAGContentFormat, RAGHTMXConfig, RAGDocumentChunk, RAGDocumentChunkPreview, RAGArchiveEntry, RAGArchiveExpander, RAGArchiveExpansionResult, RAGExtractedFileDocument, RAGFileExtractionInput, RAGFileExtractor, RAGPDFOCRExtractorOptions, RAGDirectoryIngestInput, RAGDocumentFileInput, RAGDocumentIngestInput, RAGDocumentUploadIngestInput, RAGDocumentUploadInput, RAGEmbeddingFunction, RAGEmbeddingInput, RAGEmbeddingProvider, RAGEmbeddingProviderLike, RAGBackendDescriptor, RAGHTMXWorkflowRenderConfig, RAGIngestDocument, RAGIndexedDocument, RAGMediaTranscriber, RAGMediaTranscriptSegment, RAGMediaTranscriptionResult, RAGDocumentUrlInput, RAGDocumentUrlIngestInput, RAGOCRProvider, RAGOCRResult, RAGPreparedDocument, RAGSource, RAGSourceGroup, RAGSourceSummary, RAGIngestResponse, RAGMutationResponse, RAGPostgresNativeDiagnostics, RAGQueryInput, RAGQueryResult, RAGSearchRequest, RAGSQLiteNativeDiagnostics, RAGStatusResponse, RAGStreamStage, RAGEvaluationCase, RAGEvaluationCaseResult, RAGEvaluationLeaderboardEntry, RAGEvaluationInput, RAGEvaluationResponse, RAGEvaluationSummary, RAGEvaluationSuite, RAGEvaluationSuiteRun, RAGUpsertInput, RAGVectorStore, RAGVectorStoreStatus, SQLiteVecResolution } from '../../../types/ai';
2
+ export type { AIHTMXRenderConfig, RAGAnswerWorkflowState, RAGBackendCapabilities, RAGCitation, RAGCitationReferenceMap, RAGGroundedAnswer, RAGGroundedAnswerPart, RAGGroundingReference, RAGChunkingOptions, RAGChunkingStrategy, RAGCollection, RAGCollectionSearchParams, RAGContentFormat, RAGHTMXConfig, RAGHybridFusionMode, RAGHybridRetrievalMode, RAGHybridSearchOptions, RAGDocumentChunk, RAGDocumentChunkPreview, RAGArchiveEntry, RAGArchiveExpander, RAGArchiveExpansionResult, RAGExtractedFileDocument, RAGFileExtractionInput, RAGFileExtractor, RAGPDFOCRExtractorOptions, RAGDirectoryIngestInput, RAGDocumentFileInput, RAGDocumentIngestInput, RAGDocumentUploadIngestInput, RAGDocumentUploadInput, RAGEmbeddingFunction, RAGEmbeddingInput, RAGEmbeddingProvider, RAGEmbeddingProviderLike, RAGBackendDescriptor, RAGHTMXWorkflowRenderConfig, RAGIngestDocument, RAGIndexedDocument, RAGMediaTranscriber, RAGMediaTranscriptSegment, RAGMediaTranscriptionResult, RAGLexicalQueryInput, RAGDocumentUrlInput, RAGDocumentUrlIngestInput, RAGOCRProvider, RAGOCRResult, RAGPreparedDocument, RAGSource, RAGSourceGroup, RAGSourceSummary, RAGIngestResponse, RAGMutationResponse, RAGPostgresNativeDiagnostics, RAGQueryInput, RAGQueryResult, RAGQueryTransformInput, RAGQueryTransformProvider, RAGQueryTransformProviderLike, RAGQueryTransformResult, RAGQueryTransformer, RAGSearchRequest, RAGSQLiteNativeDiagnostics, RAGStatusResponse, RAGStreamStage, RAGEvaluationCase, RAGEvaluationCaseResult, RAGEvaluationLeaderboardEntry, RAGEvaluationInput, RAGEvaluationResponse, RAGEvaluationSummary, RAGEvaluationSuite, RAGEvaluationSuiteRun, RAGRetrievalCandidate, RAGRetrievalComparison, RAGRetrievalComparisonEntry, RAGRetrievalComparisonSummary, RAGUpsertInput, RAGVectorStore, RAGVectorStoreStatus, SQLiteVecResolution } from '../../../types/ai';
3
3
  export type InternalRAGStoredChunk = RAGDocumentChunk & {
4
4
  vector: number[];
5
5
  sourceId: string;
@@ -731,13 +731,41 @@ export declare const useRAG: (path: string, options?: UseRAGOptions) => {
731
731
  filter?: Record<string, unknown> | undefined;
732
732
  query: string;
733
733
  topK?: number | undefined;
734
+ candidateTopK?: number | undefined;
734
735
  scoreThreshold?: number | undefined;
736
+ queryTransform?: import("../..").RAGQueryTransformer | {
737
+ transform: import("../..").RAGQueryTransformer;
738
+ defaultModel?: string | undefined;
739
+ providerName?: string | undefined;
740
+ } | undefined;
741
+ retrieval?: import("../..").RAGHybridRetrievalMode | {
742
+ mode?: import("../..").RAGHybridRetrievalMode | undefined;
743
+ lexicalTopK?: number | undefined;
744
+ fusion?: import("../..").RAGHybridFusionMode | undefined;
745
+ fusionConstant?: number | undefined;
746
+ lexicalWeight?: number | undefined;
747
+ vectorWeight?: number | undefined;
748
+ } | undefined;
735
749
  model?: string | undefined;
736
750
  } | null, import("../..").RAGSearchRequest | {
737
751
  filter?: Record<string, unknown> | undefined;
738
752
  query: string;
739
753
  topK?: number | undefined;
754
+ candidateTopK?: number | undefined;
740
755
  scoreThreshold?: number | undefined;
756
+ queryTransform?: import("../..").RAGQueryTransformer | {
757
+ transform: import("../..").RAGQueryTransformer;
758
+ defaultModel?: string | undefined;
759
+ providerName?: string | undefined;
760
+ } | undefined;
761
+ retrieval?: import("../..").RAGHybridRetrievalMode | {
762
+ mode?: import("../..").RAGHybridRetrievalMode | undefined;
763
+ lexicalTopK?: number | undefined;
764
+ fusion?: import("../..").RAGHybridFusionMode | undefined;
765
+ fusionConstant?: number | undefined;
766
+ lexicalWeight?: number | undefined;
767
+ vectorWeight?: number | undefined;
768
+ } | undefined;
741
769
  model?: string | undefined;
742
770
  } | null>;
743
771
  reset: () => void;
@@ -7,13 +7,41 @@ export declare const useRAGSearch: (path: string) => {
7
7
  filter?: Record<string, unknown> | undefined;
8
8
  query: string;
9
9
  topK?: number | undefined;
10
+ candidateTopK?: number | undefined;
10
11
  scoreThreshold?: number | undefined;
12
+ queryTransform?: import("../..").RAGQueryTransformer | {
13
+ transform: import("../..").RAGQueryTransformer;
14
+ defaultModel?: string | undefined;
15
+ providerName?: string | undefined;
16
+ } | undefined;
17
+ retrieval?: import("../..").RAGHybridRetrievalMode | {
18
+ mode?: import("../..").RAGHybridRetrievalMode | undefined;
19
+ lexicalTopK?: number | undefined;
20
+ fusion?: import("../..").RAGHybridFusionMode | undefined;
21
+ fusionConstant?: number | undefined;
22
+ lexicalWeight?: number | undefined;
23
+ vectorWeight?: number | undefined;
24
+ } | undefined;
11
25
  model?: string | undefined;
12
26
  } | null, RAGSearchRequest | {
13
27
  filter?: Record<string, unknown> | undefined;
14
28
  query: string;
15
29
  topK?: number | undefined;
30
+ candidateTopK?: number | undefined;
16
31
  scoreThreshold?: number | undefined;
32
+ queryTransform?: import("../..").RAGQueryTransformer | {
33
+ transform: import("../..").RAGQueryTransformer;
34
+ defaultModel?: string | undefined;
35
+ providerName?: string | undefined;
36
+ } | undefined;
37
+ retrieval?: import("../..").RAGHybridRetrievalMode | {
38
+ mode?: import("../..").RAGHybridRetrievalMode | undefined;
39
+ lexicalTopK?: number | undefined;
40
+ fusion?: import("../..").RAGHybridFusionMode | undefined;
41
+ fusionConstant?: number | undefined;
42
+ lexicalWeight?: number | undefined;
43
+ vectorWeight?: number | undefined;
44
+ } | undefined;
17
45
  model?: string | undefined;
18
46
  } | null>;
19
47
  reset: () => void;
@@ -1591,6 +1591,79 @@ var compareRAGRerankers = async ({
1591
1591
  suiteLabel: suite.label ?? suite.id
1592
1592
  };
1593
1593
  };
1594
+ var summarizeEvaluationResponseComparison = (entries, idKey) => {
1595
+ if (entries.length === 0) {
1596
+ return {};
1597
+ }
1598
+ const byPassingRate = [...entries].sort((left, right) => {
1599
+ if (right.response.passingRate !== left.response.passingRate) {
1600
+ return right.response.passingRate - left.response.passingRate;
1601
+ }
1602
+ if (right.response.summary.averageF1 !== left.response.summary.averageF1) {
1603
+ return right.response.summary.averageF1 - left.response.summary.averageF1;
1604
+ }
1605
+ return left.response.summary.averageLatencyMs - right.response.summary.averageLatencyMs;
1606
+ });
1607
+ const byAverageF1 = [...entries].sort((left, right) => right.response.summary.averageF1 - left.response.summary.averageF1);
1608
+ const byLatency = [...entries].sort((left, right) => left.response.summary.averageLatencyMs - right.response.summary.averageLatencyMs);
1609
+ const getId = (entry) => typeof entry[idKey] === "string" ? entry[idKey] : undefined;
1610
+ return {
1611
+ bestByAverageF1: getId(byAverageF1[0]),
1612
+ bestByPassingRate: getId(byPassingRate[0]),
1613
+ fastest: getId(byLatency[0])
1614
+ };
1615
+ };
1616
+ var resolveRetrievalMode = (candidate) => {
1617
+ if (!candidate.retrieval) {
1618
+ return "vector";
1619
+ }
1620
+ return typeof candidate.retrieval === "string" ? candidate.retrieval : candidate.retrieval.mode ?? "vector";
1621
+ };
1622
+ var compareRAGRetrievalStrategies = async ({
1623
+ collection,
1624
+ suite,
1625
+ retrievals,
1626
+ defaultTopK = DEFAULT_TOP_K
1627
+ }) => {
1628
+ const entries = await Promise.all(retrievals.map(async (candidate) => {
1629
+ const response = await evaluateRAGCollection({
1630
+ collection: {
1631
+ ...collection,
1632
+ search: (input) => collection.search({
1633
+ ...input,
1634
+ queryTransform: candidate.queryTransform ?? input.queryTransform,
1635
+ rerank: candidate.rerank ?? input.rerank,
1636
+ retrieval: candidate.retrieval ?? input.retrieval
1637
+ })
1638
+ },
1639
+ defaultTopK,
1640
+ input: suite.input,
1641
+ rerank: candidate.rerank
1642
+ });
1643
+ return {
1644
+ label: candidate.label ?? candidate.id,
1645
+ response,
1646
+ retrievalId: candidate.id,
1647
+ retrievalMode: resolveRetrievalMode(candidate)
1648
+ };
1649
+ }));
1650
+ const leaderboard = buildRAGEvaluationLeaderboard(entries.map((entry) => ({
1651
+ elapsedMs: entry.response.elapsedMs,
1652
+ finishedAt: 0,
1653
+ id: entry.retrievalId,
1654
+ label: entry.label,
1655
+ response: entry.response,
1656
+ startedAt: 0,
1657
+ suiteId: suite.id
1658
+ })));
1659
+ return {
1660
+ entries,
1661
+ leaderboard,
1662
+ summary: summarizeRAGRetrievalComparison(entries),
1663
+ suiteId: suite.id,
1664
+ suiteLabel: suite.label ?? suite.id
1665
+ };
1666
+ };
1594
1667
  var createRAGEvaluationSuite = (suite) => suite;
1595
1668
  var evaluateRAGCollection = async ({
1596
1669
  collection,
@@ -1719,26 +1792,9 @@ var summarizeRAGEvaluationCase = ({
1719
1792
  };
1720
1793
  };
1721
1794
  var summarizeRAGRerankerComparison = (entries) => {
1722
- if (entries.length === 0) {
1723
- return {};
1724
- }
1725
- const byPassingRate = [...entries].sort((left, right) => {
1726
- if (right.response.passingRate !== left.response.passingRate) {
1727
- return right.response.passingRate - left.response.passingRate;
1728
- }
1729
- if (right.response.summary.averageF1 !== left.response.summary.averageF1) {
1730
- return right.response.summary.averageF1 - left.response.summary.averageF1;
1731
- }
1732
- return left.response.summary.averageLatencyMs - right.response.summary.averageLatencyMs;
1733
- });
1734
- const byAverageF1 = [...entries].sort((left, right) => right.response.summary.averageF1 - left.response.summary.averageF1);
1735
- const byLatency = [...entries].sort((left, right) => left.response.summary.averageLatencyMs - right.response.summary.averageLatencyMs);
1736
- return {
1737
- bestByAverageF1: byAverageF1[0]?.rerankerId,
1738
- bestByPassingRate: byPassingRate[0]?.rerankerId,
1739
- fastest: byLatency[0]?.rerankerId
1740
- };
1795
+ return summarizeEvaluationResponseComparison(entries, "rerankerId");
1741
1796
  };
1797
+ var summarizeRAGRetrievalComparison = (entries) => summarizeEvaluationResponseComparison(entries, "retrievalId");
1742
1798
 
1743
1799
  // src/svelte/ai/createRAGEvaluate.ts
1744
1800
  var createRAGEvaluate = (path) => {
@@ -2387,5 +2443,5 @@ export {
2387
2443
  createAIStream
2388
2444
  };
2389
2445
 
2390
- //# debugId=FDF747349DE0BEC864756E2164756E21
2446
+ //# debugId=65C6A24C0063194364756E2164756E21
2391
2447
  //# sourceMappingURL=index.js.map