@framers/agentos 0.1.156 → 0.1.158
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/README.md +554 -1914
- package/dist/api/agent.d.ts.map +1 -1
- package/dist/api/agent.js +11 -0
- package/dist/api/agent.js.map +1 -1
- package/dist/api/types.d.ts +15 -0
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js.map +1 -1
- package/dist/query-router/QueryRouter.d.ts.map +1 -1
- package/dist/query-router/QueryRouter.js.map +1 -1
- package/dist/query-router/types.d.ts +12 -0
- package/dist/query-router/types.d.ts.map +1 -1
- package/dist/query-router/types.js +1 -0
- package/dist/query-router/types.js.map +1 -1
- package/dist/rag/citation/CitationVerifier.d.ts +29 -0
- package/dist/rag/citation/CitationVerifier.d.ts.map +1 -0
- package/dist/rag/citation/CitationVerifier.js +116 -0
- package/dist/rag/citation/CitationVerifier.js.map +1 -0
- package/dist/rag/citation/cosine.d.ts +10 -0
- package/dist/rag/citation/cosine.d.ts.map +1 -0
- package/dist/rag/citation/cosine.js +21 -0
- package/dist/rag/citation/cosine.js.map +1 -0
- package/dist/rag/citation/index.d.ts +8 -0
- package/dist/rag/citation/index.d.ts.map +1 -0
- package/dist/rag/citation/index.js +7 -0
- package/dist/rag/citation/index.js.map +1 -0
- package/dist/rag/citation/types.d.ts +68 -0
- package/dist/rag/citation/types.d.ts.map +1 -0
- package/dist/rag/citation/types.js +9 -0
- package/dist/rag/citation/types.js.map +1 -0
- package/dist/rag/index.d.ts +2 -0
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +2 -0
- package/dist/rag/index.js.map +1 -1
- package/dist/rag/reranking/IRerankerService.d.ts +9 -0
- package/dist/rag/reranking/IRerankerService.d.ts.map +1 -1
- package/dist/rag/reranking/RerankerService.d.ts +12 -1
- package/dist/rag/reranking/RerankerService.d.ts.map +1 -1
- package/dist/rag/reranking/RerankerService.js +46 -0
- package/dist/rag/reranking/RerankerService.js.map +1 -1
- package/dist/rag/reranking/index.d.ts +2 -0
- package/dist/rag/reranking/index.d.ts.map +1 -1
- package/dist/rag/reranking/index.js +1 -0
- package/dist/rag/reranking/index.js.map +1 -1
- package/dist/rag/reranking/providers/LlmJudgeReranker.d.ts +55 -0
- package/dist/rag/reranking/providers/LlmJudgeReranker.d.ts.map +1 -0
- package/dist/rag/reranking/providers/LlmJudgeReranker.js +121 -0
- package/dist/rag/reranking/providers/LlmJudgeReranker.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Citation Verifier — decompose text into claims and verify
|
|
3
|
+
* each claim against sources using cosine similarity.
|
|
4
|
+
*
|
|
5
|
+
* Algorithm:
|
|
6
|
+
* 1. Extract claims (LLM decomposition or sentence splitting fallback)
|
|
7
|
+
* 2. Batch-embed all claims + source contents (one embedding call)
|
|
8
|
+
* 3. Compute cosine similarity matrix: claims × sources
|
|
9
|
+
* 4. Assign per-claim verdict based on best similarity score
|
|
10
|
+
* 5. Optional NLI contradiction check on "supported" claims
|
|
11
|
+
*
|
|
12
|
+
* @module agentos/rag/citation/CitationVerifier
|
|
13
|
+
*/
|
|
14
|
+
import { cosineSimilarity } from './cosine.js';
|
|
15
|
+
const DEFAULT_SUPPORT = 0.6;
|
|
16
|
+
const DEFAULT_UNVERIFIABLE = 0.3;
|
|
17
|
+
/** Core citation verification engine. */
|
|
18
|
+
export class CitationVerifier {
|
|
19
|
+
constructor(config) {
|
|
20
|
+
this.embedFn = config.embedFn;
|
|
21
|
+
this.supportThreshold = config.supportThreshold ?? DEFAULT_SUPPORT;
|
|
22
|
+
this.unverifiableThreshold = config.unverifiableThreshold ?? DEFAULT_UNVERIFIABLE;
|
|
23
|
+
this.nliFn = config.nliFn;
|
|
24
|
+
this.extractClaimsFn = config.extractClaims;
|
|
25
|
+
}
|
|
26
|
+
/** Verify claims in text against provided sources. */
|
|
27
|
+
async verify(text, sources) {
|
|
28
|
+
const claims = this.extractClaimsFn
|
|
29
|
+
? await this.extractClaimsFn(text)
|
|
30
|
+
: this.sentenceSplit(text);
|
|
31
|
+
if (claims.length === 0)
|
|
32
|
+
return this.emptyResult();
|
|
33
|
+
const allTexts = [...claims, ...sources.map(s => s.content)];
|
|
34
|
+
const allEmbeddings = await this.embedFn(allTexts);
|
|
35
|
+
const claimEmbeddings = allEmbeddings.slice(0, claims.length);
|
|
36
|
+
const sourceEmbeddings = allEmbeddings.slice(claims.length);
|
|
37
|
+
const verdicts = [];
|
|
38
|
+
for (let i = 0; i < claims.length; i++) {
|
|
39
|
+
let bestSim = 0;
|
|
40
|
+
let bestIdx = -1;
|
|
41
|
+
for (let j = 0; j < sources.length; j++) {
|
|
42
|
+
const sim = cosineSimilarity(claimEmbeddings[i], sourceEmbeddings[j]);
|
|
43
|
+
if (sim > bestSim) {
|
|
44
|
+
bestSim = sim;
|
|
45
|
+
bestIdx = j;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
let verdict;
|
|
49
|
+
if (bestSim >= this.supportThreshold) {
|
|
50
|
+
verdict = 'supported';
|
|
51
|
+
}
|
|
52
|
+
else if (bestSim < this.unverifiableThreshold) {
|
|
53
|
+
verdict = 'unverifiable';
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
verdict = 'weak';
|
|
57
|
+
}
|
|
58
|
+
if (verdict === 'supported' && this.nliFn && bestIdx >= 0) {
|
|
59
|
+
try {
|
|
60
|
+
const nli = await this.nliFn(sources[bestIdx].content, claims[i]);
|
|
61
|
+
if (nli.label === 'contradiction' && nli.score > 0.7) {
|
|
62
|
+
verdict = 'contradicted';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch { /* NLI failure — keep cosine verdict */ }
|
|
66
|
+
}
|
|
67
|
+
verdicts.push({
|
|
68
|
+
text: claims[i],
|
|
69
|
+
verdict,
|
|
70
|
+
confidence: bestSim,
|
|
71
|
+
sourceIndex: bestIdx >= 0 ? bestIdx : undefined,
|
|
72
|
+
sourceSnippet: bestIdx >= 0 ? sources[bestIdx].content.slice(0, 200) : undefined,
|
|
73
|
+
sourceRef: bestIdx >= 0 ? sources[bestIdx].url : undefined,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return this.aggregate(verdicts);
|
|
77
|
+
}
|
|
78
|
+
sentenceSplit(text) {
|
|
79
|
+
return text
|
|
80
|
+
.replace(/```[\s\S]*?```/g, '')
|
|
81
|
+
.split(/(?<=[.!?])\s+/)
|
|
82
|
+
.map(s => s.trim())
|
|
83
|
+
.filter(s => s.length > 15)
|
|
84
|
+
.filter(s => !s.startsWith('I think') && !s.startsWith('Maybe') && !s.startsWith('Perhaps'))
|
|
85
|
+
.filter(s => !s.endsWith('?'))
|
|
86
|
+
.filter(s => !s.startsWith('I hope') && !s.startsWith('Let me know') && !s.startsWith('Feel free'));
|
|
87
|
+
}
|
|
88
|
+
aggregate(verdicts) {
|
|
89
|
+
const total = verdicts.length;
|
|
90
|
+
const supported = verdicts.filter(v => v.verdict === 'supported').length;
|
|
91
|
+
const contradicted = verdicts.filter(v => v.verdict === 'contradicted').length;
|
|
92
|
+
const unverifiable = verdicts.filter(v => v.verdict === 'unverifiable').length;
|
|
93
|
+
const weak = verdicts.filter(v => v.verdict === 'weak').length;
|
|
94
|
+
return {
|
|
95
|
+
claims: verdicts,
|
|
96
|
+
overallGrounded: contradicted === 0,
|
|
97
|
+
supportedRatio: total > 0 ? supported / total : 1,
|
|
98
|
+
totalClaims: total,
|
|
99
|
+
supportedCount: supported,
|
|
100
|
+
contradictedCount: contradicted,
|
|
101
|
+
unverifiableCount: unverifiable,
|
|
102
|
+
weakCount: weak,
|
|
103
|
+
summary: total > 0
|
|
104
|
+
? `${supported}/${total} claims verified (${Math.round((supported / total) * 100)}%)`
|
|
105
|
+
: 'No verifiable claims found.',
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
emptyResult() {
|
|
109
|
+
return {
|
|
110
|
+
claims: [], overallGrounded: true, supportedRatio: 1,
|
|
111
|
+
totalClaims: 0, supportedCount: 0, contradictedCount: 0,
|
|
112
|
+
unverifiableCount: 0, weakCount: 0, summary: 'No verifiable claims found.',
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=CitationVerifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CitationVerifier.js","sourceRoot":"","sources":["../../../src/rag/citation/CitationVerifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Pure cosine similarity computation.
|
|
3
|
+
* @module agentos/rag/citation/cosine
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Compute cosine similarity between two vectors.
|
|
7
|
+
* Returns 0 if either vector has zero magnitude.
|
|
8
|
+
*/
|
|
9
|
+
export declare function cosineSimilarity(a: number[], b: number[]): number;
|
|
10
|
+
//# sourceMappingURL=cosine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cosine.d.ts","sourceRoot":"","sources":["../../../src/rag/citation/cosine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAWjE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Pure cosine similarity computation.
|
|
3
|
+
* @module agentos/rag/citation/cosine
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Compute cosine similarity between two vectors.
|
|
7
|
+
* Returns 0 if either vector has zero magnitude.
|
|
8
|
+
*/
|
|
9
|
+
export function cosineSimilarity(a, b) {
|
|
10
|
+
let dot = 0;
|
|
11
|
+
let magA = 0;
|
|
12
|
+
let magB = 0;
|
|
13
|
+
for (let i = 0; i < a.length; i++) {
|
|
14
|
+
dot += a[i] * b[i];
|
|
15
|
+
magA += a[i] * a[i];
|
|
16
|
+
magB += b[i] * b[i];
|
|
17
|
+
}
|
|
18
|
+
const denom = Math.sqrt(magA) * Math.sqrt(magB);
|
|
19
|
+
return denom === 0 ? 0 : dot / denom;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=cosine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cosine.js","sourceRoot":"","sources":["../../../src/rag/citation/cosine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Citation verification — claim decomposition + cosine similarity.
|
|
3
|
+
* @module agentos/rag/citation
|
|
4
|
+
*/
|
|
5
|
+
export { CitationVerifier } from './CitationVerifier.js';
|
|
6
|
+
export { cosineSimilarity } from './cosine.js';
|
|
7
|
+
export type { CitationVerifierConfig, ClaimVerdict, VerifiedResponse, VerificationSource, } from './types.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rag/citation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Citation verification — claim decomposition + cosine similarity.
|
|
3
|
+
* @module agentos/rag/citation
|
|
4
|
+
*/
|
|
5
|
+
export { CitationVerifier } from './CitationVerifier.js';
|
|
6
|
+
export { cosineSimilarity } from './cosine.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rag/citation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Types for the citation verification pipeline.
|
|
3
|
+
*
|
|
4
|
+
* Used by CitationVerifier (core) and verify_citations tool (extension).
|
|
5
|
+
*
|
|
6
|
+
* @module agentos/rag/citation/types
|
|
7
|
+
*/
|
|
8
|
+
/** Verdict for a single verified claim. */
|
|
9
|
+
export interface ClaimVerdict {
|
|
10
|
+
/** The atomic claim text. */
|
|
11
|
+
text: string;
|
|
12
|
+
/** Verification verdict. */
|
|
13
|
+
verdict: 'supported' | 'contradicted' | 'unverifiable' | 'weak';
|
|
14
|
+
/** Cosine similarity to best-matching source (0-1). */
|
|
15
|
+
confidence: number;
|
|
16
|
+
/** Index of the best-matching source in the input array. */
|
|
17
|
+
sourceIndex?: number;
|
|
18
|
+
/** The matching source fragment (truncated to 200 chars). */
|
|
19
|
+
sourceSnippet?: string;
|
|
20
|
+
/** Source URL or file path. */
|
|
21
|
+
sourceRef?: string;
|
|
22
|
+
/** True if this claim was verified via web search fallback. */
|
|
23
|
+
webVerified?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/** Aggregated verification result for a text. */
|
|
26
|
+
export interface VerifiedResponse {
|
|
27
|
+
/** Per-claim verification results. */
|
|
28
|
+
claims: ClaimVerdict[];
|
|
29
|
+
/** True if no claims are contradicted. */
|
|
30
|
+
overallGrounded: boolean;
|
|
31
|
+
/** Ratio of supported claims to total (0-1). */
|
|
32
|
+
supportedRatio: number;
|
|
33
|
+
/** Total claims extracted. */
|
|
34
|
+
totalClaims: number;
|
|
35
|
+
/** Counts by verdict type. */
|
|
36
|
+
supportedCount: number;
|
|
37
|
+
contradictedCount: number;
|
|
38
|
+
unverifiableCount: number;
|
|
39
|
+
weakCount: number;
|
|
40
|
+
/** Human-readable summary. */
|
|
41
|
+
summary: string;
|
|
42
|
+
}
|
|
43
|
+
/** A source document for verification. */
|
|
44
|
+
export interface VerificationSource {
|
|
45
|
+
/** Source text content. */
|
|
46
|
+
content: string;
|
|
47
|
+
/** Source title or heading. */
|
|
48
|
+
title?: string;
|
|
49
|
+
/** Source URL or file path. */
|
|
50
|
+
url?: string;
|
|
51
|
+
}
|
|
52
|
+
/** Configuration for CitationVerifier. */
|
|
53
|
+
export interface CitationVerifierConfig {
|
|
54
|
+
/** Batch embedding function: texts → embedding vectors. */
|
|
55
|
+
embedFn: (texts: string[]) => Promise<number[][]>;
|
|
56
|
+
/** Cosine similarity threshold for "supported". Default: 0.6 */
|
|
57
|
+
supportThreshold?: number;
|
|
58
|
+
/** Below this threshold, claim is "unverifiable". Default: 0.3 */
|
|
59
|
+
unverifiableThreshold?: number;
|
|
60
|
+
/** Optional NLI function for contradiction detection. */
|
|
61
|
+
nliFn?: (premise: string, hypothesis: string) => Promise<{
|
|
62
|
+
label: 'entailment' | 'contradiction' | 'neutral';
|
|
63
|
+
score: number;
|
|
64
|
+
}>;
|
|
65
|
+
/** Optional claim extractor. Falls back to sentence splitting. */
|
|
66
|
+
extractClaims?: (text: string) => Promise<string[]>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/rag/citation/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,OAAO,EAAE,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,MAAM,CAAC;IAChE,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,0CAA0C;IAC1C,eAAe,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,0CAA0C;AAC1C,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClD,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yDAAyD;IACzD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;QACvD,KAAK,EAAE,YAAY,GAAG,eAAe,GAAG,SAAS,CAAC;QAClD,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/rag/citation/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/dist/rag/index.d.ts
CHANGED
|
@@ -118,4 +118,6 @@ export { DockerDetector } from './setup/DockerDetector.js';
|
|
|
118
118
|
export { QdrantSetup } from './setup/QdrantSetup.js';
|
|
119
119
|
export { PostgresSetup } from './setup/PostgresSetup.js';
|
|
120
120
|
export type { SetupStatus, BackendStatus, SetupConfig, VectorStoreConfig, } from './setup/types.js';
|
|
121
|
+
export { CitationVerifier } from './citation/index.js';
|
|
122
|
+
export type { CitationVerifierConfig, ClaimVerdict, VerifiedResponse, VerificationSource } from './citation/index.js';
|
|
121
123
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/rag/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"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"}
|
package/dist/rag/index.js
CHANGED
|
@@ -142,4 +142,6 @@ export { MigrationEngine } from './migration/MigrationEngine.js';
|
|
|
142
142
|
export { DockerDetector } from './setup/DockerDetector.js';
|
|
143
143
|
export { QdrantSetup } from './setup/QdrantSetup.js';
|
|
144
144
|
export { PostgresSetup } from './setup/PostgresSetup.js';
|
|
145
|
+
// Citation verification
|
|
146
|
+
export { CitationVerifier } from './citation/index.js';
|
|
145
147
|
//# sourceMappingURL=index.js.map
|
package/dist/rag/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AA+CH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,mDAAmD;AACnD,OAAO,EACL,aAAa,EAKb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAA6B,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAiC,MAAM,uCAAuC,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAgC,MAAM,sCAAsC,CAAC;AAEvG,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAsB7E,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,sCAAsC;AACtC,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAA+B,MAAM,uBAAuB,CAAC;AACtF,OAAO,EACL,mCAAmC,GAEpC,MAAM,uBAAuB,CAAC;AAe/B,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAuE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,cAAc,EAAgD,MAAM,mBAAmB,CAAC;AAEjG,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,OAAO,EACL,eAAe,GAIhB,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,yEAAyE;AACzE,+EAA+E;AAE/E,OAAO,EACL,UAAU,GAKX,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAcxE,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAE/B,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,OAAO,EAAE,mBAAmB,EAAkC,MAAM,wCAAwC,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAUjE,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AA+CH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,mDAAmD;AACnD,OAAO,EACL,aAAa,EAKb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAA6B,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAiC,MAAM,uCAAuC,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAgC,MAAM,sCAAsC,CAAC;AAEvG,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAsB7E,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,sCAAsC;AACtC,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAA+B,MAAM,uBAAuB,CAAC;AACtF,OAAO,EACL,mCAAmC,GAEpC,MAAM,uBAAuB,CAAC;AAe/B,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAuE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,cAAc,EAAgD,MAAM,mBAAmB,CAAC;AAEjG,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,OAAO,EACL,eAAe,GAIhB,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,yEAAyE;AACzE,+EAA+E;AAE/E,OAAO,EACL,UAAU,GAKX,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAcxE,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAE/B,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,OAAO,EAAE,mBAAmB,EAAkC,MAAM,wCAAwC,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAUjE,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAQzD,wBAAwB;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -160,4 +160,13 @@ export interface RerankerServiceConfig {
|
|
|
160
160
|
/** Enable debug logging */
|
|
161
161
|
debug?: boolean;
|
|
162
162
|
}
|
|
163
|
+
/** A single stage in a reranker chain pipeline. */
|
|
164
|
+
export interface RerankChainStage {
|
|
165
|
+
/** Provider ID (e.g., 'local', 'cohere', 'llm-judge'). */
|
|
166
|
+
provider: string;
|
|
167
|
+
/** Max results to keep after this stage. */
|
|
168
|
+
topK: number;
|
|
169
|
+
/** Optional model override for this stage. */
|
|
170
|
+
model?: string;
|
|
171
|
+
}
|
|
163
172
|
//# sourceMappingURL=IRerankerService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IRerankerService.d.ts","sourceRoot":"","sources":["../../../src/rag/reranking/IRerankerService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IRerankerService.d.ts","sourceRoot":"","sources":["../../../src/rag/reranking/IRerankerService.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { ILogger } from '../../logging/ILogger';
|
|
8
8
|
import type { RagRetrievedChunk } from '../IRetrievalAugmentor';
|
|
9
|
-
import type { IRerankerProvider, RerankerInput, RerankerOutput, RerankerRequestConfig, RerankerServiceConfig, RerankerProviderConfig } from './IRerankerService';
|
|
9
|
+
import type { IRerankerProvider, RerankerInput, RerankerOutput, RerankerRequestConfig, RerankerServiceConfig, RerankChainStage, RerankerProviderConfig } from './IRerankerService';
|
|
10
10
|
/**
|
|
11
11
|
* Configuration for the RerankerService constructor.
|
|
12
12
|
*/
|
|
@@ -103,5 +103,16 @@ export declare class RerankerService {
|
|
|
103
103
|
* @returns Reranked chunks sorted by relevance
|
|
104
104
|
*/
|
|
105
105
|
rerankChunks(query: string, chunks: RagRetrievedChunk[], config?: Partial<RerankerRequestConfig>): Promise<RagRetrievedChunk[]>;
|
|
106
|
+
/**
|
|
107
|
+
* Run chunks through a multi-stage reranker pipeline.
|
|
108
|
+
* Each stage's output feeds into the next, narrowing the result set.
|
|
109
|
+
* Unavailable providers are silently skipped.
|
|
110
|
+
*
|
|
111
|
+
* @param query - The search query.
|
|
112
|
+
* @param chunks - Input chunks to rerank.
|
|
113
|
+
* @param chain - Ordered array of reranking stages.
|
|
114
|
+
* @returns Reranked chunks after all stages.
|
|
115
|
+
*/
|
|
116
|
+
rerankChain(query: string, chunks: RagRetrievedChunk[], chain: RerankChainStage[]): Promise<RagRetrievedChunk[]>;
|
|
106
117
|
}
|
|
107
118
|
//# sourceMappingURL=RerankerService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RerankerService.d.ts","sourceRoot":"","sources":["../../../src/rag/reranking/RerankerService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;gBAEtB,OAAO,EAAE,sBAAsB;IAU3C;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAK1D;;;;;OAKG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIrE;;;;;OAKG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAIhF;;;;OAIG;IACI,aAAa,IAAI,MAAM,EAAE;IAIhC;;;;;OAKG;IACU,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMtE;;;;;;;OAOG;IACU,MAAM,CACjB,KAAK,EAAE,aAAa,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC;IA2D1B;;;;;;;;;;OAUG;IACU,YAAY,CACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,iBAAiB,EAAE,EAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"RerankerService.d.ts","sourceRoot":"","sources":["../../../src/rag/reranking/RerankerService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;gBAEtB,OAAO,EAAE,sBAAsB;IAU3C;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAK1D;;;;;OAKG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIrE;;;;;OAKG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAIhF;;;;OAIG;IACI,aAAa,IAAI,MAAM,EAAE;IAIhC;;;;;OAKG;IACU,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMtE;;;;;;;OAOG;IACU,MAAM,CACjB,KAAK,EAAE,aAAa,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC;IA2D1B;;;;;;;;;;OAUG;IACU,YAAY,CACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,iBAAiB,EAAE,EAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA6C/B;;;;;;;;;OASG;IACU,WAAW,CACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,iBAAiB,EAAE,EAC3B,KAAK,EAAE,gBAAgB,EAAE,GACxB,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAyChC"}
|
|
@@ -190,5 +190,51 @@ export class RerankerService {
|
|
|
190
190
|
};
|
|
191
191
|
});
|
|
192
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Run chunks through a multi-stage reranker pipeline.
|
|
195
|
+
* Each stage's output feeds into the next, narrowing the result set.
|
|
196
|
+
* Unavailable providers are silently skipped.
|
|
197
|
+
*
|
|
198
|
+
* @param query - The search query.
|
|
199
|
+
* @param chunks - Input chunks to rerank.
|
|
200
|
+
* @param chain - Ordered array of reranking stages.
|
|
201
|
+
* @returns Reranked chunks after all stages.
|
|
202
|
+
*/
|
|
203
|
+
async rerankChain(query, chunks, chain) {
|
|
204
|
+
if (chunks.length === 0 || chain.length === 0)
|
|
205
|
+
return chunks;
|
|
206
|
+
let current = chunks;
|
|
207
|
+
const stagesRun = [];
|
|
208
|
+
for (const stage of chain) {
|
|
209
|
+
const provider = this.providers.get(stage.provider);
|
|
210
|
+
if (!provider) {
|
|
211
|
+
this.logger?.debug?.(`rerankChain: Provider '${stage.provider}' not registered — skipping stage`);
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const available = await provider.isAvailable();
|
|
216
|
+
if (!available) {
|
|
217
|
+
this.logger?.debug?.(`rerankChain: Provider '${stage.provider}' not available — skipping stage`);
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
current = await this.rerankChunks(query, current, {
|
|
221
|
+
providerId: stage.provider,
|
|
222
|
+
modelId: stage.model ?? '',
|
|
223
|
+
topN: stage.topK,
|
|
224
|
+
});
|
|
225
|
+
stagesRun.push(stage.provider);
|
|
226
|
+
}
|
|
227
|
+
catch (err) {
|
|
228
|
+
this.logger?.warn?.(`rerankChain: Stage '${stage.provider}' failed — continuing with previous results: ${err instanceof Error ? err.message : String(err)}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return current.map((chunk) => ({
|
|
232
|
+
...chunk,
|
|
233
|
+
metadata: {
|
|
234
|
+
...chunk.metadata,
|
|
235
|
+
_rerankerChainStages: stagesRun.join(','),
|
|
236
|
+
},
|
|
237
|
+
}));
|
|
238
|
+
}
|
|
193
239
|
}
|
|
194
240
|
//# sourceMappingURL=RerankerService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RerankerService.js","sourceRoot":"","sources":["../../../src/rag/reranking/RerankerService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"RerankerService.js","sourceRoot":"","sources":["../../../src/rag/reranking/RerankerService.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,4 +52,6 @@ export type { IRerankerProvider, RerankerInput, RerankerOutput, RerankerDocument
|
|
|
52
52
|
export { RerankerService, type RerankerServiceOptions } from './RerankerService';
|
|
53
53
|
export { CohereReranker, type CohereRerankerConfig, COHERE_RERANKER_MODELS, type CohereRerankerModel, } from './providers/CohereReranker';
|
|
54
54
|
export { LocalCrossEncoderReranker, type LocalCrossEncoderConfig, LOCAL_RERANKER_MODELS, type LocalRerankerModel, } from './providers/LocalCrossEncoderReranker';
|
|
55
|
+
export { LlmJudgeReranker, type LlmJudgeRerankerConfig, } from './providers/LlmJudgeReranker';
|
|
56
|
+
export type { RerankChainStage } from './IRerankerService';
|
|
55
57
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rag/reranking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAGH,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGjF,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,KAAK,mBAAmB,GACzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,KAAK,kBAAkB,GACxB,MAAM,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rag/reranking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAGH,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGjF,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,KAAK,mBAAmB,GACzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,KAAK,kBAAkB,GACxB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -53,4 +53,5 @@ export { RerankerService } from './RerankerService.js';
|
|
|
53
53
|
// Providers
|
|
54
54
|
export { CohereReranker, COHERE_RERANKER_MODELS, } from './providers/CohereReranker.js';
|
|
55
55
|
export { LocalCrossEncoderReranker, LOCAL_RERANKER_MODELS, } from './providers/LocalCrossEncoderReranker.js';
|
|
56
|
+
export { LlmJudgeReranker, } from './providers/LlmJudgeReranker.js';
|
|
56
57
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rag/reranking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAeH,eAAe;AACf,OAAO,EAAE,eAAe,EAA+B,MAAM,mBAAmB,CAAC;AAEjF,YAAY;AACZ,OAAO,EACL,cAAc,EAEd,sBAAsB,GAEvB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EAEzB,qBAAqB,GAEtB,MAAM,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rag/reranking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAeH,eAAe;AACf,OAAO,EAAE,eAAe,EAA+B,MAAM,mBAAmB,CAAC;AAEjF,YAAY;AACZ,OAAO,EACL,cAAc,EAEd,sBAAsB,GAEvB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EAEzB,qBAAqB,GAEtB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,gBAAgB,GAEjB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview LLM-as-Judge Reranker — two-phase hybrid reranking using LLM calls.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1: Batch pointwise scoring with a cheap model (gpt-4o-mini, haiku).
|
|
5
|
+
* Groups documents into batches of 10, asks LLM to score 0-10.
|
|
6
|
+
* Phase 2: Listwise final ranking with a synthesis model.
|
|
7
|
+
* Takes top-K from phase 1, asks LLM to rank by relevance.
|
|
8
|
+
*
|
|
9
|
+
* Cognitive science: Combines absolute judgment (pointwise) with comparative
|
|
10
|
+
* judgment (listwise) — mirrors how human expert reviewers evaluate documents.
|
|
11
|
+
*
|
|
12
|
+
* References:
|
|
13
|
+
* - Sun, W., et al. (2023). "Is ChatGPT Good at Search? Investigating Large
|
|
14
|
+
* Language Models as Re-Ranking Agents." arXiv:2304.09542
|
|
15
|
+
* - Qin, Z., et al. (2023). "Large Language Models are Effective Text Rankers
|
|
16
|
+
* with Pairwise Ranking Prompting." arXiv:2306.17563
|
|
17
|
+
*
|
|
18
|
+
* @module agentos/rag/reranking/providers/LlmJudgeReranker
|
|
19
|
+
*/
|
|
20
|
+
import type { IRerankerProvider, RerankerInput, RerankerOutput, RerankerRequestConfig } from '../IRerankerService.js';
|
|
21
|
+
/** Configuration for the LLM judge reranker. */
|
|
22
|
+
export interface LlmJudgeRerankerConfig {
|
|
23
|
+
/** LLM call function: (systemPrompt, userPrompt, model?) → response text. */
|
|
24
|
+
llmCallFn: (system: string, user: string, model?: string) => Promise<string>;
|
|
25
|
+
/** Model for batch pointwise scoring (cheap). Auto-detected if not set. */
|
|
26
|
+
scoringModel?: string;
|
|
27
|
+
/** Model for listwise final ranking (better). Agent's primary if not set. */
|
|
28
|
+
rankingModel?: string;
|
|
29
|
+
/** Max documents to process in phase 1. */
|
|
30
|
+
maxPointwiseDocuments?: number;
|
|
31
|
+
/** How many survive phase 1 into phase 2. */
|
|
32
|
+
pointwiseTopK?: number;
|
|
33
|
+
/** Timeout per LLM call in ms. */
|
|
34
|
+
timeoutMs?: number;
|
|
35
|
+
/** Batch size for pointwise scoring. */
|
|
36
|
+
batchSize?: number;
|
|
37
|
+
}
|
|
38
|
+
/** Two-phase LLM-based reranker: batch pointwise + listwise top-K. */
|
|
39
|
+
export declare class LlmJudgeReranker implements IRerankerProvider {
|
|
40
|
+
readonly providerId: "llm-judge";
|
|
41
|
+
private readonly llmCallFn;
|
|
42
|
+
private readonly scoringModel?;
|
|
43
|
+
private readonly rankingModel?;
|
|
44
|
+
private readonly maxPointwiseDocuments;
|
|
45
|
+
private readonly pointwiseTopK;
|
|
46
|
+
private readonly batchSize;
|
|
47
|
+
constructor(config: LlmJudgeRerankerConfig);
|
|
48
|
+
isAvailable(): Promise<boolean>;
|
|
49
|
+
rerank(input: RerankerInput, config: RerankerRequestConfig): Promise<RerankerOutput>;
|
|
50
|
+
/** Phase 1: Score documents in batches. */
|
|
51
|
+
private batchPointwiseScore;
|
|
52
|
+
/** Phase 2: Listwise ranking of top candidates. */
|
|
53
|
+
private listwiseRank;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=LlmJudgeReranker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LlmJudgeReranker.d.ts","sourceRoot":"","sources":["../../../../src/rag/reranking/providers/LlmJudgeReranker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,EAEtB,MAAM,wBAAwB,CAAC;AAEhC,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7E,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,sEAAsE;AACtE,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,SAAgB,UAAU,EAAG,WAAW,CAAU;IAElD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE,sBAAsB;IASpC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IAiC1F,2CAA2C;YAC7B,mBAAmB;IAsCjC,mDAAmD;YACrC,YAAY;CA+B3B"}
|