@vivantel/virage-reranker-cross-encoder 0.1.20 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/reranker.d.ts.map +1 -1
- package/dist/reranker.js +30 -20
- package/dist/reranker.js.map +1 -1
- package/dist/reranker.test.js +43 -17
- package/dist/reranker.test.js.map +1 -1
- package/package.json +2 -2
package/dist/reranker.d.ts.map
CHANGED
|
@@ -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;
|
|
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;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,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;CA8CjC"}
|
package/dist/reranker.js
CHANGED
|
@@ -10,9 +10,9 @@ export class CrossEncoderReranker {
|
|
|
10
10
|
async getPipeline() {
|
|
11
11
|
if (!this._pipeline) {
|
|
12
12
|
const { pipeline } = await import("@huggingface/transformers");
|
|
13
|
-
this._pipeline = await pipeline("text-classification", this.modelId, {
|
|
13
|
+
this._pipeline = (await pipeline("text-classification", this.modelId, {
|
|
14
14
|
dtype: "fp32",
|
|
15
|
-
});
|
|
15
|
+
}));
|
|
16
16
|
}
|
|
17
17
|
return this._pipeline;
|
|
18
18
|
}
|
|
@@ -25,25 +25,35 @@ export class CrossEncoderReranker {
|
|
|
25
25
|
text: query,
|
|
26
26
|
text_pair: c.content,
|
|
27
27
|
}));
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
// Request raw logits (no sigmoid/softmax) so scores are not saturated at 1.0
|
|
29
|
+
// for all inputs. The ms-marco cross-encoder produces logits in roughly [-10, 10];
|
|
30
|
+
// normalizing within the batch gives meaningful relative similarities.
|
|
31
|
+
const outputs = await pipe._call(inputs, {
|
|
32
|
+
function_to_apply: "none",
|
|
33
|
+
});
|
|
34
|
+
// Extract raw logit for each candidate
|
|
35
|
+
const indexed = candidates.map((c, i) => {
|
|
31
36
|
const result = Array.isArray(outputs) ? outputs[i] : undefined;
|
|
32
|
-
const
|
|
33
|
-
const typed =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
const raw = Array.isArray(result) ? result[0] : result;
|
|
38
|
+
const typed = raw;
|
|
39
|
+
return { c, logit: typed?.score };
|
|
40
|
+
});
|
|
41
|
+
// If the pipeline returned no usable scores, preserve original order and similarities
|
|
42
|
+
if (!indexed.some((x) => x.logit !== undefined)) {
|
|
43
|
+
return candidates.slice(0, k).map((c) => ({ ...c }));
|
|
44
|
+
}
|
|
45
|
+
// Sort by logit descending (higher raw score = more relevant)
|
|
46
|
+
indexed.sort((a, b) => (b.logit ?? b.c.similarity) - (a.logit ?? a.c.similarity));
|
|
47
|
+
const top = indexed.slice(0, k);
|
|
48
|
+
// Min-max normalize logits to [0, 1] for display, preserving ranking order
|
|
49
|
+
const logits = top.map((x) => x.logit ?? x.c.similarity);
|
|
50
|
+
const min = Math.min(...logits);
|
|
51
|
+
const max = Math.max(...logits);
|
|
52
|
+
const range = max - min;
|
|
53
|
+
return top.map((x, i) => ({
|
|
54
|
+
...x.c,
|
|
55
|
+
similarity: range > 1e-9 ? (logits[i] - min) / range : 1,
|
|
56
|
+
}));
|
|
47
57
|
}
|
|
48
58
|
}
|
|
49
59
|
//# sourceMappingURL=reranker.js.map
|
package/dist/reranker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reranker.js","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reranker.js","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"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"}
|
package/dist/reranker.test.js
CHANGED
|
@@ -20,28 +20,54 @@ describe("CrossEncoderReranker", () => {
|
|
|
20
20
|
expect(result).toEqual([]);
|
|
21
21
|
expect(mockCall).not.toHaveBeenCalled();
|
|
22
22
|
});
|
|
23
|
-
it("
|
|
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
|
-
//
|
|
38
|
+
// Raw logits (not sigmoid/softmax) — higher = more relevant
|
|
31
39
|
mockCall.mockResolvedValue([
|
|
32
|
-
[{
|
|
33
|
-
[{
|
|
34
|
-
[{
|
|
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("
|
|
47
|
+
it("normalizes scores to [0, 1] via min-max within the batch", 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
|
|
56
|
+
[{ score: 0.9 }], // b
|
|
57
|
+
[{ score: 0.5 }], // c
|
|
58
|
+
]);
|
|
59
|
+
const result = await reranker.rerank("query", candidates);
|
|
60
|
+
// b=top → 1.0, c=mid → (0.5-0.1)/(0.9-0.1)=0.5, a=bottom → 0
|
|
61
|
+
expect(result[0].similarity).toBeCloseTo(1.0);
|
|
62
|
+
expect(result[1].similarity).toBeCloseTo(0.5);
|
|
63
|
+
expect(result[2].similarity).toBeCloseTo(0.0);
|
|
64
|
+
});
|
|
65
|
+
it("single result gets similarity 1 (no range to normalize)", async () => {
|
|
40
66
|
const reranker = new CrossEncoderReranker();
|
|
41
67
|
const candidates = [makeCandidate("x", "some content", 0.5)];
|
|
42
|
-
mockCall.mockResolvedValue([[{
|
|
68
|
+
mockCall.mockResolvedValue([[{ score: 7.3 }]]);
|
|
43
69
|
const result = await reranker.rerank("query", candidates);
|
|
44
|
-
expect(result[0].similarity).toBe(
|
|
70
|
+
expect(result[0].similarity).toBe(1);
|
|
45
71
|
});
|
|
46
72
|
it("respects topK from constructor", async () => {
|
|
47
73
|
const reranker = new CrossEncoderReranker({ topK: 2 });
|
|
@@ -51,9 +77,9 @@ describe("CrossEncoderReranker", () => {
|
|
|
51
77
|
makeCandidate("c", "c"),
|
|
52
78
|
];
|
|
53
79
|
mockCall.mockResolvedValue([
|
|
54
|
-
[{
|
|
55
|
-
[{
|
|
56
|
-
[{
|
|
80
|
+
[{ score: 9.0 }],
|
|
81
|
+
[{ score: 8.0 }],
|
|
82
|
+
[{ score: 7.0 }],
|
|
57
83
|
]);
|
|
58
84
|
const result = await reranker.rerank("query", candidates);
|
|
59
85
|
expect(result).toHaveLength(2);
|
|
@@ -66,27 +92,27 @@ describe("CrossEncoderReranker", () => {
|
|
|
66
92
|
makeCandidate("c", "c"),
|
|
67
93
|
];
|
|
68
94
|
mockCall.mockResolvedValue([
|
|
69
|
-
[{
|
|
70
|
-
[{
|
|
71
|
-
[{
|
|
95
|
+
[{ score: 9.0 }],
|
|
96
|
+
[{ score: 8.0 }],
|
|
97
|
+
[{ score: 7.0 }],
|
|
72
98
|
]);
|
|
73
99
|
const result = await reranker.rerank("query", candidates, 1);
|
|
74
100
|
expect(result).toHaveLength(1);
|
|
75
101
|
});
|
|
76
102
|
it("lazily initialises and caches the pipeline across calls", async () => {
|
|
77
103
|
const reranker = new CrossEncoderReranker();
|
|
78
|
-
mockCall.mockResolvedValue([[{
|
|
104
|
+
mockCall.mockResolvedValue([[{ score: 0.5 }]]);
|
|
79
105
|
await reranker.rerank("q1", [makeCandidate("a", "text")]);
|
|
80
106
|
await reranker.rerank("q2", [makeCandidate("b", "text")]);
|
|
81
107
|
expect(mockPipelineFactory).toHaveBeenCalledTimes(1);
|
|
82
108
|
});
|
|
83
109
|
it("forwards custom model to the pipeline factory", async () => {
|
|
84
110
|
const reranker = new CrossEncoderReranker({ model: "custom/model-v1" });
|
|
85
|
-
mockCall.mockResolvedValue([[{
|
|
111
|
+
mockCall.mockResolvedValue([[{ score: 0.5 }]]);
|
|
86
112
|
await reranker.rerank("q", [makeCandidate("a", "text")]);
|
|
87
113
|
expect(mockPipelineFactory).toHaveBeenCalledWith("text-classification", "custom/model-v1", { dtype: "fp32" });
|
|
88
114
|
});
|
|
89
|
-
it("
|
|
115
|
+
it("preserves original similarity when pipeline returns no scores", async () => {
|
|
90
116
|
const reranker = new CrossEncoderReranker();
|
|
91
117
|
const candidates = [makeCandidate("a", "content", 0.42)];
|
|
92
118
|
mockCall.mockResolvedValue("unexpected non-array");
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,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,IAAI;YACtB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI;YACtB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,6DAA6D;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,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,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,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.
|
|
3
|
+
"version": "0.1.21",
|
|
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.
|
|
49
|
+
"@vivantel/virage-core": "0.2.43",
|
|
50
50
|
"@types/node": "^25.9.3",
|
|
51
51
|
"typescript": "^6.0.3",
|
|
52
52
|
"vitest": "^4.1.9"
|