@oomkapwn/enquire-mcp 2.10.0 → 2.12.0
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/CHANGELOG.md +157 -0
- package/README.md +13 -6
- package/dist/doctor.d.ts +54 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +369 -0
- package/dist/doctor.js.map +1 -0
- package/dist/eval.d.ts +117 -0
- package/dist/eval.d.ts.map +1 -0
- package/dist/eval.js +266 -0
- package/dist/eval.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +207 -1
- package/dist/index.js.map +1 -1
- package/docs/api.md +3 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/eval.d.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { FtsIndex } from "./fts5.js";
|
|
2
|
+
import type { Vault } from "./vault.js";
|
|
3
|
+
/** A single evaluation query — relevant doc paths are the ground truth. */
|
|
4
|
+
export interface EvalQuery {
|
|
5
|
+
/** Query text fed to obsidian_search. */
|
|
6
|
+
query: string;
|
|
7
|
+
/**
|
|
8
|
+
* Vault-relative paths considered relevant. Order doesn't matter — we
|
|
9
|
+
* only need the set membership. Paths are matched against
|
|
10
|
+
* `SearchHybridHit.path` exactly.
|
|
11
|
+
*/
|
|
12
|
+
relevant: string[];
|
|
13
|
+
/** Optional human-readable id for logging / reports. */
|
|
14
|
+
id?: string;
|
|
15
|
+
}
|
|
16
|
+
/** Per-query scores. */
|
|
17
|
+
export interface EvalQueryScore {
|
|
18
|
+
id: string;
|
|
19
|
+
query: string;
|
|
20
|
+
/** Normalized Discounted Cumulative Gain @ K. */
|
|
21
|
+
ndcg_at_k: number;
|
|
22
|
+
/** Recall @ K — fraction of relevant docs in top-K. */
|
|
23
|
+
recall_at_k: number;
|
|
24
|
+
/** Mean Reciprocal Rank — 1/rank of first relevant; 0 if none in top-K. */
|
|
25
|
+
mrr: number;
|
|
26
|
+
/** Number of relevant docs found anywhere in the top-K. */
|
|
27
|
+
hits_relevant: number;
|
|
28
|
+
/** Total relevant docs in the ground truth. */
|
|
29
|
+
hits_total_relevant: number;
|
|
30
|
+
/** Latency for this query in milliseconds. */
|
|
31
|
+
latency_ms: number;
|
|
32
|
+
}
|
|
33
|
+
/** Aggregate evaluation result. */
|
|
34
|
+
export interface EvalResult {
|
|
35
|
+
/** Configuration label — useful for the matrix mode. */
|
|
36
|
+
label: string;
|
|
37
|
+
k: number;
|
|
38
|
+
query_count: number;
|
|
39
|
+
/** Per-query scores. */
|
|
40
|
+
per_query: EvalQueryScore[];
|
|
41
|
+
/** Mean NDCG@K across all queries. */
|
|
42
|
+
mean_ndcg: number;
|
|
43
|
+
/** Mean Recall@K across all queries. */
|
|
44
|
+
mean_recall: number;
|
|
45
|
+
/** Mean Reciprocal Rank across all queries. */
|
|
46
|
+
mean_mrr: number;
|
|
47
|
+
/** Mean latency in milliseconds. */
|
|
48
|
+
mean_latency_ms: number;
|
|
49
|
+
/** Total run wall time. */
|
|
50
|
+
total_wall_ms: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* NDCG@K with binary relevance.
|
|
54
|
+
*
|
|
55
|
+
* DCG@K = sum_{i=1..K} rel_i / log2(i + 1)
|
|
56
|
+
* IdealDCG@K = sum_{i=1..min(K, |relevant|)} 1 / log2(i + 1)
|
|
57
|
+
* NDCG@K = DCG@K / IdealDCG@K
|
|
58
|
+
*
|
|
59
|
+
* Returns 0 when `relevant` is empty (no ground truth → undefined ratio).
|
|
60
|
+
*/
|
|
61
|
+
export declare function ndcgAtK(retrievedPaths: string[], relevant: ReadonlySet<string>, k: number): number;
|
|
62
|
+
/** Recall @ K = |retrieved ∩ relevant| / |relevant|. */
|
|
63
|
+
export declare function recallAtK(retrievedPaths: string[], relevant: ReadonlySet<string>, k: number): number;
|
|
64
|
+
/** Mean Reciprocal Rank — 1/rank of first relevant; 0 if none in top-K. */
|
|
65
|
+
export declare function reciprocalRank(retrievedPaths: string[], relevant: ReadonlySet<string>, k: number): number;
|
|
66
|
+
/**
|
|
67
|
+
* Read a JSONL file of EvalQuery objects. Tolerates blank lines and
|
|
68
|
+
* comments (lines starting with `//`). Throws on invalid JSON or
|
|
69
|
+
* missing required fields.
|
|
70
|
+
*/
|
|
71
|
+
export declare function readQueriesJsonl(file: string): Promise<EvalQuery[]>;
|
|
72
|
+
export interface RunEvalOptions {
|
|
73
|
+
vault: Vault;
|
|
74
|
+
queries: readonly EvalQuery[];
|
|
75
|
+
ftsIndex: FtsIndex | null;
|
|
76
|
+
embedFile: string;
|
|
77
|
+
k?: number;
|
|
78
|
+
/** Label for the result — useful when running multiple configurations. */
|
|
79
|
+
label?: string;
|
|
80
|
+
/** Pass-through to searchHybrid (e.g. graph_boost, min_signals). */
|
|
81
|
+
searchOpts?: {
|
|
82
|
+
graph_boost?: boolean;
|
|
83
|
+
min_signals?: number;
|
|
84
|
+
embedding_model?: string;
|
|
85
|
+
};
|
|
86
|
+
/** Optional reranker config — pass-through to searchHybrid. */
|
|
87
|
+
reranker?: {
|
|
88
|
+
alias?: string;
|
|
89
|
+
topN?: number;
|
|
90
|
+
};
|
|
91
|
+
/** Test-only DI for mocking the reranker. */
|
|
92
|
+
rerankerOverride?: {
|
|
93
|
+
score(query: string, passages: readonly string[]): Promise<number[]>;
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Run obsidian_search across a set of evaluation queries and compute
|
|
98
|
+
* NDCG@K, Recall@K, MRR. Returns a fully-populated EvalResult.
|
|
99
|
+
*
|
|
100
|
+
* `embedFile` may be a non-existent path — embeddings simply won't
|
|
101
|
+
* contribute (graceful degradation matches `searchHybrid` behavior).
|
|
102
|
+
*/
|
|
103
|
+
export declare function runEval(opts: RunEvalOptions): Promise<EvalResult>;
|
|
104
|
+
/**
|
|
105
|
+
* Render an EvalResult as a pretty CLI table. ANSI-colored when stdout
|
|
106
|
+
* is a TTY, plain text otherwise (so `enquire eval | tee report.txt`
|
|
107
|
+
* stays readable).
|
|
108
|
+
*/
|
|
109
|
+
export declare function formatEvalResult(result: EvalResult, opts?: {
|
|
110
|
+
perQuery?: boolean;
|
|
111
|
+
}): string;
|
|
112
|
+
/**
|
|
113
|
+
* Render multiple EvalResults side-by-side as a comparison matrix. Used
|
|
114
|
+
* by `enquire eval --matrix` to A/B several configurations in one run.
|
|
115
|
+
*/
|
|
116
|
+
export declare function formatEvalMatrix(results: readonly EvalResult[]): string;
|
|
117
|
+
//# sourceMappingURL=eval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
|
package/dist/eval.js
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
// Retrieval-quality evaluation harness for enquire-mcp.
|
|
2
|
+
//
|
|
3
|
+
// v2.12.0 — closes the "you can't tune what you can't measure" gap. Before
|
|
4
|
+
// this, anyone trying to A/B test retrieval changes (graph_boost on/off,
|
|
5
|
+
// reranker on/off, different limit / min_signals values) had to write a
|
|
6
|
+
// custom script. Now there's a first-class subcommand:
|
|
7
|
+
//
|
|
8
|
+
// enquire-mcp eval --vault <path> --queries <file>
|
|
9
|
+
// Reads JSONL queries with known-relevant doc paths, runs
|
|
10
|
+
// `obsidian_search` for each, computes NDCG@10 + Recall@10 + MRR,
|
|
11
|
+
// reports per-query + aggregate scores. Pretty table by default,
|
|
12
|
+
// `--json` for machine-readable output, `--matrix` to A/B several
|
|
13
|
+
// flag combinations side-by-side in one run.
|
|
14
|
+
//
|
|
15
|
+
// Standard IR metrics (Manning et al, "Introduction to Information
|
|
16
|
+
// Retrieval", Chapter 8):
|
|
17
|
+
// • NDCG@K (Normalized Discounted Cumulative Gain) — penalizes
|
|
18
|
+
// relevant docs found low in the ranking; 1.0 is perfect, 0.0 is
|
|
19
|
+
// worst. Best for graded relevance + position-aware comparison.
|
|
20
|
+
// • Recall@K — fraction of relevant docs found in top-K. Best for
|
|
21
|
+
// "did we surface ANY relevant content?" measurement.
|
|
22
|
+
// • MRR (Mean Reciprocal Rank) — 1/rank of the first relevant doc.
|
|
23
|
+
// Best for "did we put SOMETHING relevant near the top?"
|
|
24
|
+
//
|
|
25
|
+
// We treat the user's `relevant` paths as binary-relevance ground truth
|
|
26
|
+
// (each listed path is gain=1, others are gain=0) since most users won't
|
|
27
|
+
// label graded relevance. The DCG formula simplifies to
|
|
28
|
+
// sum(rel_i / log2(i + 1)) where rel_i ∈ {0, 1}. NDCG normalizes by the
|
|
29
|
+
// ideal DCG = sum(1 / log2(i + 1)) for i in [1, |relevant|].
|
|
30
|
+
//
|
|
31
|
+
// "Only enquire-mcp has this": no other Obsidian-MCP ships a built-in
|
|
32
|
+
// retrieval evaluation harness. This makes Karpathy-style LLM Wiki users
|
|
33
|
+
// systematically tune their hybrid retrieval — measure first, then
|
|
34
|
+
// adjust graph_boost / reranker / min_signals based on real numbers
|
|
35
|
+
// over their real corpus.
|
|
36
|
+
import { promises as fs } from "node:fs";
|
|
37
|
+
import { searchHybrid } from "./tools.js";
|
|
38
|
+
/**
|
|
39
|
+
* NDCG@K with binary relevance.
|
|
40
|
+
*
|
|
41
|
+
* DCG@K = sum_{i=1..K} rel_i / log2(i + 1)
|
|
42
|
+
* IdealDCG@K = sum_{i=1..min(K, |relevant|)} 1 / log2(i + 1)
|
|
43
|
+
* NDCG@K = DCG@K / IdealDCG@K
|
|
44
|
+
*
|
|
45
|
+
* Returns 0 when `relevant` is empty (no ground truth → undefined ratio).
|
|
46
|
+
*/
|
|
47
|
+
export function ndcgAtK(retrievedPaths, relevant, k) {
|
|
48
|
+
if (relevant.size === 0)
|
|
49
|
+
return 0;
|
|
50
|
+
let dcg = 0;
|
|
51
|
+
for (let i = 0; i < Math.min(k, retrievedPaths.length); i++) {
|
|
52
|
+
const path = retrievedPaths[i];
|
|
53
|
+
if (path && relevant.has(path)) {
|
|
54
|
+
dcg += 1 / Math.log2(i + 2); // i+2 because i is 0-indexed; rank = i+1, log2(rank+1)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
let idealDcg = 0;
|
|
58
|
+
for (let i = 0; i < Math.min(k, relevant.size); i++) {
|
|
59
|
+
idealDcg += 1 / Math.log2(i + 2);
|
|
60
|
+
}
|
|
61
|
+
return idealDcg > 0 ? dcg / idealDcg : 0;
|
|
62
|
+
}
|
|
63
|
+
/** Recall @ K = |retrieved ∩ relevant| / |relevant|. */
|
|
64
|
+
export function recallAtK(retrievedPaths, relevant, k) {
|
|
65
|
+
if (relevant.size === 0)
|
|
66
|
+
return 0;
|
|
67
|
+
let hits = 0;
|
|
68
|
+
for (let i = 0; i < Math.min(k, retrievedPaths.length); i++) {
|
|
69
|
+
const path = retrievedPaths[i];
|
|
70
|
+
if (path && relevant.has(path))
|
|
71
|
+
hits += 1;
|
|
72
|
+
}
|
|
73
|
+
return hits / relevant.size;
|
|
74
|
+
}
|
|
75
|
+
/** Mean Reciprocal Rank — 1/rank of first relevant; 0 if none in top-K. */
|
|
76
|
+
export function reciprocalRank(retrievedPaths, relevant, k) {
|
|
77
|
+
for (let i = 0; i < Math.min(k, retrievedPaths.length); i++) {
|
|
78
|
+
const path = retrievedPaths[i];
|
|
79
|
+
if (path && relevant.has(path))
|
|
80
|
+
return 1 / (i + 1);
|
|
81
|
+
}
|
|
82
|
+
return 0;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Read a JSONL file of EvalQuery objects. Tolerates blank lines and
|
|
86
|
+
* comments (lines starting with `//`). Throws on invalid JSON or
|
|
87
|
+
* missing required fields.
|
|
88
|
+
*/
|
|
89
|
+
export async function readQueriesJsonl(file) {
|
|
90
|
+
const raw = await fs.readFile(file, "utf8");
|
|
91
|
+
const queries = [];
|
|
92
|
+
let lineNum = 0;
|
|
93
|
+
for (const line of raw.split("\n")) {
|
|
94
|
+
lineNum += 1;
|
|
95
|
+
const trimmed = line.trim();
|
|
96
|
+
if (trimmed.length === 0 || trimmed.startsWith("//"))
|
|
97
|
+
continue;
|
|
98
|
+
try {
|
|
99
|
+
const parsed = JSON.parse(trimmed);
|
|
100
|
+
if (typeof parsed.query !== "string" || parsed.query.length === 0) {
|
|
101
|
+
throw new Error(`line ${lineNum}: missing or empty 'query' field`);
|
|
102
|
+
}
|
|
103
|
+
if (!Array.isArray(parsed.relevant) || parsed.relevant.some((p) => typeof p !== "string")) {
|
|
104
|
+
throw new Error(`line ${lineNum}: 'relevant' must be an array of vault-relative path strings`);
|
|
105
|
+
}
|
|
106
|
+
queries.push({
|
|
107
|
+
query: parsed.query,
|
|
108
|
+
relevant: parsed.relevant,
|
|
109
|
+
...(parsed.id ? { id: parsed.id } : {})
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
114
|
+
throw new Error(`enquire eval: failed to parse queries file at line ${lineNum} — ${msg}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return queries;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Run obsidian_search across a set of evaluation queries and compute
|
|
121
|
+
* NDCG@K, Recall@K, MRR. Returns a fully-populated EvalResult.
|
|
122
|
+
*
|
|
123
|
+
* `embedFile` may be a non-existent path — embeddings simply won't
|
|
124
|
+
* contribute (graceful degradation matches `searchHybrid` behavior).
|
|
125
|
+
*/
|
|
126
|
+
export async function runEval(opts) {
|
|
127
|
+
const k = opts.k ?? 10;
|
|
128
|
+
const totalT0 = Date.now();
|
|
129
|
+
const perQuery = [];
|
|
130
|
+
for (let i = 0; i < opts.queries.length; i++) {
|
|
131
|
+
const q = opts.queries[i];
|
|
132
|
+
if (!q)
|
|
133
|
+
continue;
|
|
134
|
+
const id = q.id ?? `q${i + 1}`;
|
|
135
|
+
const relevantSet = new Set(q.relevant);
|
|
136
|
+
const t0 = Date.now();
|
|
137
|
+
let hits = [];
|
|
138
|
+
try {
|
|
139
|
+
const result = await searchHybrid(opts.vault, {
|
|
140
|
+
query: q.query,
|
|
141
|
+
limit: k,
|
|
142
|
+
...(opts.searchOpts?.graph_boost !== undefined ? { graph_boost: opts.searchOpts.graph_boost } : {}),
|
|
143
|
+
...(opts.searchOpts?.min_signals !== undefined ? { min_signals: opts.searchOpts.min_signals } : {}),
|
|
144
|
+
...(opts.searchOpts?.embedding_model ? { embedding_model: opts.searchOpts.embedding_model } : {})
|
|
145
|
+
}, {
|
|
146
|
+
ftsIndex: opts.ftsIndex,
|
|
147
|
+
embedFile: opts.embedFile,
|
|
148
|
+
...(opts.reranker ? { reranker: opts.reranker } : {}),
|
|
149
|
+
...(opts.rerankerOverride ? { rerankerOverride: opts.rerankerOverride } : {})
|
|
150
|
+
});
|
|
151
|
+
hits = result.matches;
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
// Per-query isolation — one bad query doesn't sink the whole eval.
|
|
155
|
+
// The query's scores will all be 0 and we keep going.
|
|
156
|
+
process.stderr.write(`enquire eval: query "${q.query.slice(0, 60)}" failed — ${err instanceof Error ? err.message : String(err)}\n`);
|
|
157
|
+
}
|
|
158
|
+
const latency = Date.now() - t0;
|
|
159
|
+
const retrievedPaths = hits.map((h) => h.path);
|
|
160
|
+
const ndcg = ndcgAtK(retrievedPaths, relevantSet, k);
|
|
161
|
+
const recall = recallAtK(retrievedPaths, relevantSet, k);
|
|
162
|
+
const mrr = reciprocalRank(retrievedPaths, relevantSet, k);
|
|
163
|
+
let hitsRelevant = 0;
|
|
164
|
+
for (const p of retrievedPaths.slice(0, k)) {
|
|
165
|
+
if (relevantSet.has(p))
|
|
166
|
+
hitsRelevant += 1;
|
|
167
|
+
}
|
|
168
|
+
perQuery.push({
|
|
169
|
+
id,
|
|
170
|
+
query: q.query,
|
|
171
|
+
ndcg_at_k: round(ndcg),
|
|
172
|
+
recall_at_k: round(recall),
|
|
173
|
+
mrr: round(mrr),
|
|
174
|
+
hits_relevant: hitsRelevant,
|
|
175
|
+
hits_total_relevant: relevantSet.size,
|
|
176
|
+
latency_ms: latency
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
const meanNdcg = mean(perQuery.map((p) => p.ndcg_at_k));
|
|
180
|
+
const meanRecall = mean(perQuery.map((p) => p.recall_at_k));
|
|
181
|
+
const meanMrr = mean(perQuery.map((p) => p.mrr));
|
|
182
|
+
const meanLatency = mean(perQuery.map((p) => p.latency_ms));
|
|
183
|
+
return {
|
|
184
|
+
label: opts.label ?? "default",
|
|
185
|
+
k,
|
|
186
|
+
query_count: perQuery.length,
|
|
187
|
+
per_query: perQuery,
|
|
188
|
+
mean_ndcg: round(meanNdcg),
|
|
189
|
+
mean_recall: round(meanRecall),
|
|
190
|
+
mean_mrr: round(meanMrr),
|
|
191
|
+
mean_latency_ms: Math.round(meanLatency),
|
|
192
|
+
total_wall_ms: Date.now() - totalT0
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function mean(xs) {
|
|
196
|
+
if (xs.length === 0)
|
|
197
|
+
return 0;
|
|
198
|
+
let s = 0;
|
|
199
|
+
for (const x of xs)
|
|
200
|
+
s += x;
|
|
201
|
+
return s / xs.length;
|
|
202
|
+
}
|
|
203
|
+
function round(x) {
|
|
204
|
+
return Math.round(x * 10000) / 10000;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Render an EvalResult as a pretty CLI table. ANSI-colored when stdout
|
|
208
|
+
* is a TTY, plain text otherwise (so `enquire eval | tee report.txt`
|
|
209
|
+
* stays readable).
|
|
210
|
+
*/
|
|
211
|
+
export function formatEvalResult(result, opts = {}) {
|
|
212
|
+
const isTty = process.stdout.isTTY === true;
|
|
213
|
+
const bold = (s) => (isTty ? `\x1b[1m${s}\x1b[0m` : s);
|
|
214
|
+
const dim = (s) => (isTty ? `\x1b[2m${s}\x1b[0m` : s);
|
|
215
|
+
const lines = [];
|
|
216
|
+
lines.push(bold(`enquire eval — ${result.label}`));
|
|
217
|
+
lines.push(` ${result.query_count} queries · k=${result.k} · wall=${result.total_wall_ms}ms`);
|
|
218
|
+
lines.push("");
|
|
219
|
+
if (opts.perQuery) {
|
|
220
|
+
lines.push(bold("per query:"));
|
|
221
|
+
lines.push(" id ndcg@k recall@k mrr hits latency");
|
|
222
|
+
for (const p of result.per_query) {
|
|
223
|
+
lines.push(` ${p.id.padEnd(15)} ${p.ndcg_at_k.toFixed(4)} ${p.recall_at_k.toFixed(4)} ${p.mrr.toFixed(4)} ${`${p.hits_relevant}/${p.hits_total_relevant}`.padEnd(6)} ${p.latency_ms}ms`);
|
|
224
|
+
}
|
|
225
|
+
lines.push("");
|
|
226
|
+
}
|
|
227
|
+
lines.push(bold("aggregate:"));
|
|
228
|
+
lines.push(` mean NDCG@${result.k} = ${result.mean_ndcg.toFixed(4)}`);
|
|
229
|
+
lines.push(` mean Recall@${result.k} = ${result.mean_recall.toFixed(4)}`);
|
|
230
|
+
lines.push(` mean MRR = ${result.mean_mrr.toFixed(4)}`);
|
|
231
|
+
lines.push(` mean latency = ${result.mean_latency_ms}ms ${dim("(per query)")}`);
|
|
232
|
+
return lines.join("\n");
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Render multiple EvalResults side-by-side as a comparison matrix. Used
|
|
236
|
+
* by `enquire eval --matrix` to A/B several configurations in one run.
|
|
237
|
+
*/
|
|
238
|
+
export function formatEvalMatrix(results) {
|
|
239
|
+
if (results.length === 0)
|
|
240
|
+
return "(no results)";
|
|
241
|
+
const isTty = process.stdout.isTTY === true;
|
|
242
|
+
const bold = (s) => (isTty ? `\x1b[1m${s}\x1b[0m` : s);
|
|
243
|
+
const lines = [];
|
|
244
|
+
lines.push(bold(`enquire eval matrix (${results.length} configs)`));
|
|
245
|
+
lines.push("");
|
|
246
|
+
// Column header.
|
|
247
|
+
const labelWidth = Math.max(...results.map((r) => r.label.length), 8) + 2;
|
|
248
|
+
const header = `${"label".padEnd(labelWidth)}NDCG@${results[0]?.k ?? 10} Recall@${results[0]?.k ?? 10} MRR latency`;
|
|
249
|
+
lines.push(bold(header));
|
|
250
|
+
// Rows.
|
|
251
|
+
for (const r of results) {
|
|
252
|
+
lines.push(`${r.label.padEnd(labelWidth)}${r.mean_ndcg.toFixed(4)} ${r.mean_recall.toFixed(4)} ${r.mean_mrr.toFixed(4)} ${r.mean_latency_ms}ms`);
|
|
253
|
+
}
|
|
254
|
+
// Best-config callout.
|
|
255
|
+
let best = results[0];
|
|
256
|
+
if (best) {
|
|
257
|
+
for (const r of results) {
|
|
258
|
+
if (r.mean_ndcg > best.mean_ndcg)
|
|
259
|
+
best = r;
|
|
260
|
+
}
|
|
261
|
+
lines.push("");
|
|
262
|
+
lines.push(`best NDCG@${best.k}: ${bold(best.label)} (${best.mean_ndcg.toFixed(4)})`);
|
|
263
|
+
}
|
|
264
|
+
return lines.join("\n");
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=eval.js.map
|
package/dist/eval.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAMtF,OAAO,EAAkC,QAAQ,EAAE,MAAM,WAAW,CAAC;AAyCrE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;mCAE+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;8EAC0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAcD,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAMtF,OAAO,EAAkC,QAAQ,EAAE,MAAM,WAAW,CAAC;AAyCrE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;mCAE+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;8EAC0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAcD,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA0kBnC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAkE/E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,GAAG,SAAS,CA8F9E;AAED,iBAAe,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD5D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAY1D;AAy9DD,iBAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAM3D;AAsCD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC"}
|