@vivantel/virage-reranker-cross-encoder 0.1.20 → 0.1.22

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.
@@ -4,11 +4,17 @@ export interface CrossEncoderRerankerOptions {
4
4
  model?: string;
5
5
  /** Number of results to return after re-ranking. Defaults to 5. */
6
6
  topK?: number;
7
+ /**
8
+ * Minimum sigmoid-calibrated relevance score (0–1) to include in results.
9
+ * Results below this threshold are dropped. Default: 0 (no filtering).
10
+ */
11
+ minScore?: number;
7
12
  }
8
13
  export declare class CrossEncoderReranker implements Reranker {
9
14
  readonly name = "cross-encoder";
10
15
  private readonly modelId;
11
16
  private readonly defaultTopK;
17
+ private readonly minScore;
12
18
  private _pipeline;
13
19
  constructor(options?: CrossEncoderRerankerOptions);
14
20
  private getPipeline;
@@ -1 +1 @@
1
- {"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,WAAW,2BAA2B;IAC1C,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,qBAAa,oBAAqB,YAAW,QAAQ;IACnD,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,SAAS,CAA2B;gBAEhC,OAAO,GAAE,2BAAgC;YAKvC,WAAW;IAUnB,MAAM,CACV,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,kBAAkB,EAAE,EAChC,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAgCjC"}
1
+ {"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,WAAW,2BAA2B;IAC1C,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAUD,qBAAa,oBAAqB,YAAW,QAAQ;IACnD,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,SAAS,CAA2B;gBAEhC,OAAO,GAAE,2BAAgC;YAMvC,WAAW;IAUnB,MAAM,CACV,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,kBAAkB,EAAE,EAChC,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAkDjC"}
package/dist/reranker.js CHANGED
@@ -2,17 +2,19 @@ export class CrossEncoderReranker {
2
2
  name = "cross-encoder";
3
3
  modelId;
4
4
  defaultTopK;
5
+ minScore;
5
6
  _pipeline = null;
6
7
  constructor(options = {}) {
7
8
  this.modelId = options.model ?? "Xenova/ms-marco-MiniLM-L-6-v2";
8
9
  this.defaultTopK = options.topK ?? 5;
10
+ this.minScore = options.minScore ?? 0;
9
11
  }
10
12
  async getPipeline() {
11
13
  if (!this._pipeline) {
12
14
  const { pipeline } = await import("@huggingface/transformers");
13
- this._pipeline = await pipeline("text-classification", this.modelId, {
15
+ this._pipeline = (await pipeline("text-classification", this.modelId, {
14
16
  dtype: "fp32",
15
- });
17
+ }));
16
18
  }
17
19
  return this._pipeline;
18
20
  }
@@ -25,25 +27,38 @@ export class CrossEncoderReranker {
25
27
  text: query,
26
28
  text_pair: c.content,
27
29
  }));
28
- const outputs = await pipe._call(inputs);
29
- return candidates
30
- .map((c, i) => {
30
+ // Request raw logits (no sigmoid/softmax) so scores are not saturated at 1.0
31
+ // for all inputs. The ms-marco cross-encoder produces logits in roughly [-10, 10];
32
+ // normalizing within the batch gives meaningful relative similarities.
33
+ const outputs = await pipe._call(inputs, {
34
+ function_to_apply: "none",
35
+ });
36
+ // Extract raw logit for each candidate
37
+ const indexed = candidates.map((c, i) => {
31
38
  const result = Array.isArray(outputs) ? outputs[i] : undefined;
32
- const rawResult = Array.isArray(result) ? result[0] : result;
33
- const typed = rawResult;
34
- let score;
35
- if (typed?.score !== undefined) {
36
- // For 2-class relevance models: LABEL_1 = relevant, LABEL_0 = not-relevant.
37
- // The pipeline returns the top label; if LABEL_0 wins we invert to get relevance.
38
- score = typed.label === "LABEL_0" ? 1 - typed.score : typed.score;
39
- }
40
- return {
41
- ...c,
42
- similarity: score ?? c.similarity,
43
- };
44
- })
45
- .sort((a, b) => b.similarity - a.similarity)
46
- .slice(0, k);
39
+ const raw = Array.isArray(result) ? result[0] : result;
40
+ const typed = raw;
41
+ return { c, logit: typed?.score };
42
+ });
43
+ // If the pipeline returned no usable scores, preserve original order and similarities
44
+ if (!indexed.some((x) => x.logit !== undefined)) {
45
+ return candidates.slice(0, k).map((c) => ({ ...c }));
46
+ }
47
+ // Sort by logit descending (higher raw score = more relevant)
48
+ indexed.sort((a, b) => (b.logit ?? b.c.similarity) - (a.logit ?? a.c.similarity));
49
+ const top = indexed.slice(0, k);
50
+ // Apply sigmoid to convert raw logits to calibrated relevance probabilities.
51
+ // sigmoid(logit) ≈ P(relevant | query, doc) for ms-marco cross-encoders:
52
+ // logit +8 ~100%, logit +2 → ~88%, logit -2 → ~12%, logit -8 → ~0%
53
+ // This gives absolute scores so irrelevant queries don't saturate at 100%.
54
+ const sigmoid = (x) => 1 / (1 + Math.exp(-x));
55
+ const scored = top.map((x) => ({
56
+ ...x.c,
57
+ similarity: x.logit !== undefined ? sigmoid(x.logit) : x.c.similarity,
58
+ }));
59
+ return this.minScore > 0
60
+ ? scored.filter((r) => r.similarity >= this.minScore)
61
+ : scored;
47
62
  }
48
63
  }
49
64
  //# sourceMappingURL=reranker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reranker.js","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAG,eAAe,CAAC;IAEf,OAAO,CAAS;IAChB,WAAW,CAAS;IAC7B,SAAS,GAAsB,IAAI,CAAC;IAE5C,YAAY,UAAuC,EAAE;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,+BAA+B,CAAC;QAChE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,GAAG,MAAM,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,EAAE;gBACnE,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,SAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,UAAgC,EAChC,IAAa;QAEb,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;QAEnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC,CAAC,OAAO;SACrB,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAY,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAElD,OAAO,UAAU;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACZ,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7D,MAAM,KAAK,GAAG,SAED,CAAC;YACd,IAAI,KAAyB,CAAC;YAC9B,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,4EAA4E;gBAC5E,kFAAkF;gBAClF,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YACpE,CAAC;YACD,OAAO;gBACL,GAAG,CAAC;gBACJ,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC,UAAU;aAClC,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;aAC3C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"reranker.js","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"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"}
@@ -20,28 +20,80 @@ describe("CrossEncoderReranker", () => {
20
20
  expect(result).toEqual([]);
21
21
  expect(mockCall).not.toHaveBeenCalled();
22
22
  });
23
- it("reorders candidates by pipeline score descending", async () => {
23
+ it("requests raw logits via function_to_apply: none", async () => {
24
+ const reranker = new CrossEncoderReranker();
25
+ mockCall.mockResolvedValue([[{ score: 5.2 }]]);
26
+ await reranker.rerank("q", [makeCandidate("a", "text")]);
27
+ expect(mockCall).toHaveBeenCalledWith(expect.any(Array), {
28
+ function_to_apply: "none",
29
+ });
30
+ });
31
+ it("reorders candidates by raw logit descending", async () => {
24
32
  const reranker = new CrossEncoderReranker();
25
33
  const candidates = [
26
34
  makeCandidate("a", "low relevance", 0.8),
27
35
  makeCandidate("b", "high relevance", 0.3),
28
36
  makeCandidate("c", "medium relevance", 0.5),
29
37
  ];
30
- // LABEL_1 = relevant; higher score means more relevant
38
+ // Raw logits (not sigmoid/softmax) — higher = more relevant
31
39
  mockCall.mockResolvedValue([
32
- [{ label: "LABEL_1", score: 0.1 }],
33
- [{ label: "LABEL_1", score: 0.9 }],
34
- [{ label: "LABEL_1", score: 0.5 }],
40
+ [{ score: -3.0 }], // a: not relevant
41
+ [{ score: 8.5 }], // b: highly relevant
42
+ [{ score: 2.1 }], // c: somewhat relevant
35
43
  ]);
36
44
  const result = await reranker.rerank("query", candidates);
37
45
  expect(result.map((r) => r.id)).toEqual(["b", "c", "a"]);
38
46
  });
39
- it("replaces similarity with pipeline score", async () => {
47
+ it("calibrates scores via sigmoid so higher logit → higher similarity", async () => {
48
+ const reranker = new CrossEncoderReranker();
49
+ const candidates = [
50
+ makeCandidate("a", "low", 0.8),
51
+ makeCandidate("b", "high", 0.3),
52
+ makeCandidate("c", "mid", 0.5),
53
+ ];
54
+ mockCall.mockResolvedValue([
55
+ [{ score: 0.1 }], // a: sigmoid(0.1) ≈ 0.525
56
+ [{ score: 0.9 }], // b: sigmoid(0.9) ≈ 0.711
57
+ [{ score: 0.5 }], // c: sigmoid(0.5) ≈ 0.622
58
+ ]);
59
+ const result = await reranker.rerank("query", candidates);
60
+ // Order: b > c > a
61
+ expect(result[0].id).toBe("b");
62
+ expect(result[1].id).toBe("c");
63
+ expect(result[2].id).toBe("a");
64
+ // Scores are sigmoid-calibrated, not min-max normalized
65
+ expect(result[0].similarity).toBeCloseTo(1 / (1 + Math.exp(-0.9)), 5);
66
+ expect(result[1].similarity).toBeCloseTo(1 / (1 + Math.exp(-0.5)), 5);
67
+ expect(result[2].similarity).toBeCloseTo(1 / (1 + Math.exp(-0.1)), 5);
68
+ });
69
+ it("single result gets sigmoid-calibrated similarity (not forced to 1)", async () => {
40
70
  const reranker = new CrossEncoderReranker();
41
71
  const candidates = [makeCandidate("x", "some content", 0.5)];
42
- mockCall.mockResolvedValue([[{ label: "LABEL_1", score: 0.77 }]]);
72
+ mockCall.mockResolvedValue([[{ score: 7.3 }]]);
43
73
  const result = await reranker.rerank("query", candidates);
44
- expect(result[0].similarity).toBe(0.77);
74
+ // sigmoid(7.3)0.9993 — very high but not exactly 1
75
+ expect(result[0].similarity).toBeCloseTo(1 / (1 + Math.exp(-7.3)), 5);
76
+ expect(result[0].similarity).toBeGreaterThan(0.99);
77
+ });
78
+ it("assigns near-zero similarity to highly negative logit", async () => {
79
+ const reranker = new CrossEncoderReranker();
80
+ const candidates = [makeCandidate("x", "irrelevant content", 0.5)];
81
+ mockCall.mockResolvedValue([[{ score: -8 }]]);
82
+ const result = await reranker.rerank("query", candidates);
83
+ // sigmoid(-8) ≈ 0.000335 — clearly not relevant
84
+ expect(result[0].similarity).toBeLessThan(0.01);
85
+ });
86
+ it("filters results below minScore threshold", async () => {
87
+ const reranker = new CrossEncoderReranker({ minScore: 0.5 });
88
+ const candidates = [
89
+ makeCandidate("a", "relevant", 0.8),
90
+ makeCandidate("b", "irrelevant", 0.3),
91
+ ];
92
+ // sigmoid(2) ≈ 0.88, sigmoid(-2) ≈ 0.12 — only "a" passes minScore 0.5
93
+ mockCall.mockResolvedValue([[{ score: 2 }], [{ score: -2 }]]);
94
+ const result = await reranker.rerank("query", candidates);
95
+ expect(result).toHaveLength(1);
96
+ expect(result[0].id).toBe("a");
45
97
  });
46
98
  it("respects topK from constructor", async () => {
47
99
  const reranker = new CrossEncoderReranker({ topK: 2 });
@@ -51,9 +103,9 @@ describe("CrossEncoderReranker", () => {
51
103
  makeCandidate("c", "c"),
52
104
  ];
53
105
  mockCall.mockResolvedValue([
54
- [{ label: "LABEL_0", score: 0.9 }],
55
- [{ label: "LABEL_0", score: 0.8 }],
56
- [{ label: "LABEL_0", score: 0.7 }],
106
+ [{ score: 9.0 }],
107
+ [{ score: 8.0 }],
108
+ [{ score: 7.0 }],
57
109
  ]);
58
110
  const result = await reranker.rerank("query", candidates);
59
111
  expect(result).toHaveLength(2);
@@ -66,27 +118,27 @@ describe("CrossEncoderReranker", () => {
66
118
  makeCandidate("c", "c"),
67
119
  ];
68
120
  mockCall.mockResolvedValue([
69
- [{ label: "LABEL_0", score: 0.9 }],
70
- [{ label: "LABEL_0", score: 0.8 }],
71
- [{ label: "LABEL_0", score: 0.7 }],
121
+ [{ score: 9.0 }],
122
+ [{ score: 8.0 }],
123
+ [{ score: 7.0 }],
72
124
  ]);
73
125
  const result = await reranker.rerank("query", candidates, 1);
74
126
  expect(result).toHaveLength(1);
75
127
  });
76
128
  it("lazily initialises and caches the pipeline across calls", async () => {
77
129
  const reranker = new CrossEncoderReranker();
78
- mockCall.mockResolvedValue([[{ label: "LABEL_0", score: 0.5 }]]);
130
+ mockCall.mockResolvedValue([[{ score: 0.5 }]]);
79
131
  await reranker.rerank("q1", [makeCandidate("a", "text")]);
80
132
  await reranker.rerank("q2", [makeCandidate("b", "text")]);
81
133
  expect(mockPipelineFactory).toHaveBeenCalledTimes(1);
82
134
  });
83
135
  it("forwards custom model to the pipeline factory", async () => {
84
136
  const reranker = new CrossEncoderReranker({ model: "custom/model-v1" });
85
- mockCall.mockResolvedValue([[{ label: "LABEL_0", score: 0.5 }]]);
137
+ mockCall.mockResolvedValue([[{ score: 0.5 }]]);
86
138
  await reranker.rerank("q", [makeCandidate("a", "text")]);
87
139
  expect(mockPipelineFactory).toHaveBeenCalledWith("text-classification", "custom/model-v1", { dtype: "fp32" });
88
140
  });
89
- it("falls back to original similarity when pipeline output is not an array", async () => {
141
+ it("preserves original similarity when pipeline returns no scores", async () => {
90
142
  const reranker = new CrossEncoderReranker();
91
143
  const candidates = [makeCandidate("a", "content", 0.42)];
92
144
  mockCall.mockResolvedValue("unexpected non-array");
@@ -1 +1 @@
1
- {"version":3,"file":"reranker.test.js","sourceRoot":"","sources":["../src/reranker.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reranker.test.js","sourceRoot":"","sources":["../src/reranker.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACzB,MAAM,mBAAmB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE3E,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,QAAQ,EAAE,mBAAmB;CAC9B,CAAC,CAAC,CAAC;AAEJ,SAAS,aAAa,CACpB,EAAU,EACV,OAAe,EACf,UAAU,GAAG,GAAG;IAEhB,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrB,mBAAmB,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/C,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACvD,iBAAiB,EAAE,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG;YACjB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,CAAC;YACxC,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC;YACzC,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,CAAC;SAC5C,CAAC;QACF,4DAA4D;QAC5D,QAAQ,CAAC,iBAAiB,CAAC;YACzB,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,kBAAkB;YACrC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,qBAAqB;YACvC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,uBAAuB;SAC1C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG;YACjB,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC;YAC9B,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC;YAC/B,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC;SAC/B,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC;YACzB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,0BAA0B;YAC5C,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,0BAA0B;YAC5C,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,0BAA0B;SAC7C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,mBAAmB;QACnB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,wDAAwD;QACxD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7D,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,sDAAsD;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC;QACnE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,gDAAgD;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG;YACjB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC;YACnC,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC;SACtC,CAAC;QACF,uEAAuE;QACvE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG;YACjB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;YACvB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;YACvB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;SACxB,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC;YACzB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YAChB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YAChB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG;YACjB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;YACvB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;YACvB,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;SACxB,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC;YACzB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YAChB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YAChB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/C,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAE1D,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACxE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/C,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C,qBAAqB,EACrB,iBAAiB,EACjB,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,QAAQ,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,IAAI,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAyB,CAAC;QACrE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vivantel/virage-reranker-cross-encoder",
3
- "version": "0.1.20",
3
+ "version": "0.1.22",
4
4
  "description": "Local cross-encoder re-ranker for Virage (ONNX, no API key required)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -46,7 +46,7 @@
46
46
  "@vivantel/virage-core": "*"
47
47
  },
48
48
  "devDependencies": {
49
- "@vivantel/virage-core": "0.2.42",
49
+ "@vivantel/virage-core": "0.2.44",
50
50
  "@types/node": "^25.9.3",
51
51
  "typescript": "^6.0.3",
52
52
  "vitest": "^4.1.9"