Skip to content

Commit ba2daf2

Browse files
committed
feat: add reranker module configurations
1 parent 03d711f commit ba2daf2

5 files changed

Lines changed: 235 additions & 5 deletions

File tree

src/main/java/io/weaviate/client6/v1/api/collections/Reranker.java

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,20 @@
1414
import com.google.gson.stream.JsonWriter;
1515

1616
import io.weaviate.client6.v1.api.collections.rerankers.CohereReranker;
17+
import io.weaviate.client6.v1.api.collections.rerankers.JinaAiReranker;
18+
import io.weaviate.client6.v1.api.collections.rerankers.NvidiaReranker;
19+
import io.weaviate.client6.v1.api.collections.rerankers.TransformersReranker;
20+
import io.weaviate.client6.v1.api.collections.rerankers.VoyageAiReranker;
1721
import io.weaviate.client6.v1.internal.ObjectBuilder;
22+
import io.weaviate.client6.v1.internal.TaggedUnion;
1823
import io.weaviate.client6.v1.internal.json.JsonEnum;
1924

20-
public interface Reranker {
25+
public interface Reranker extends TaggedUnion<Reranker.Kind, Object> {
2126
public enum Kind implements JsonEnum<Kind> {
27+
JINAAI("reranker-jinaai"),
28+
VOYAGEAI("reranker-voyageai"),
29+
NVIDIA("reranker-nvidia"),
30+
TRANSFORMERS("reranker-transformers"),
2231
COHERE("reranker-cohere");
2332

2433
private static final Map<String, Kind> jsonValueMap = JsonEnum.collectNames(Kind.values());
@@ -38,10 +47,6 @@ public static Kind valueOfJson(String jsonValue) {
3847
}
3948
}
4049

41-
Kind _kind();
42-
43-
Object _self();
44-
4550
/** Configure a default Cohere reranker module. */
4651
public static Reranker cohere() {
4752
return CohereReranker.of();
@@ -56,6 +61,53 @@ public static Reranker cohere(Function<CohereReranker.Builder, ObjectBuilder<Coh
5661
return CohereReranker.of(fn);
5762
}
5863

64+
/** Configure a default JinaAI reranker module. */
65+
public static Reranker jinaai() {
66+
return JinaAiReranker.of();
67+
}
68+
69+
/**
70+
* Configure a JinaAI reranker module.
71+
*
72+
* @param fn Lambda expression for optional parameters.
73+
*/
74+
public static Reranker jinaai(Function<JinaAiReranker.Builder, ObjectBuilder<JinaAiReranker>> fn) {
75+
return JinaAiReranker.of(fn);
76+
}
77+
78+
/** Configure a default VoyageAI reranker module. */
79+
public static Reranker voyageai() {
80+
return VoyageAiReranker.of();
81+
}
82+
83+
/**
84+
* Configure a VoyageAI reranker module.
85+
*
86+
* @param fn Lambda expression for optional parameters.
87+
*/
88+
public static Reranker voyageai(Function<VoyageAiReranker.Builder, ObjectBuilder<VoyageAiReranker>> fn) {
89+
return VoyageAiReranker.of(fn);
90+
}
91+
92+
/** Configure a default Nvidia reranker module. */
93+
public static Reranker nvidia() {
94+
return NvidiaReranker.of();
95+
}
96+
97+
/**
98+
* Configure a Nvidia reranker module.
99+
*
100+
* @param fn Lambda expression for optional parameters.
101+
*/
102+
public static Reranker nvidia(Function<NvidiaReranker.Builder, ObjectBuilder<NvidiaReranker>> fn) {
103+
return NvidiaReranker.of(fn);
104+
}
105+
106+
/** Configure a default Transformers reranker module. */
107+
public static Reranker transformers() {
108+
return new TransformersReranker();
109+
}
110+
59111
public static enum CustomTypeAdapterFactory implements TypeAdapterFactory {
60112
INSTANCE;
61113

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package io.weaviate.client6.v1.api.collections.rerankers;
2+
3+
import java.util.function.Function;
4+
5+
import com.google.gson.annotations.SerializedName;
6+
7+
import io.weaviate.client6.v1.api.collections.Reranker;
8+
import io.weaviate.client6.v1.internal.ObjectBuilder;
9+
10+
public record JinaAiReranker(
11+
@SerializedName("model") String model) implements Reranker {
12+
13+
public static final String BASE_MULTILINGUAL_V1 = "jina-reranker-v2-base-multilingual";
14+
public static final String BASE_ENGLISH_V1 = "jina-reranker-v1-base-en";
15+
public static final String TURBO_ENGLISH_V1 = "jina-reranker-v1-turbo-en";
16+
public static final String TINY_ENGLISH_V1 = "jina-reranker-v1-tiny-en";
17+
public static final String COLBERT_ENGLISH_V1 = "jina-colbert-v1-en";
18+
19+
@Override
20+
public Kind _kind() {
21+
return Reranker.Kind.JINAAI;
22+
}
23+
24+
@Override
25+
public Object _self() {
26+
return this;
27+
}
28+
29+
public static JinaAiReranker of() {
30+
return of(ObjectBuilder.identity());
31+
}
32+
33+
public static JinaAiReranker of(Function<Builder, ObjectBuilder<JinaAiReranker>> fn) {
34+
return fn.apply(new Builder()).build();
35+
}
36+
37+
public JinaAiReranker(Builder builder) {
38+
this(builder.model);
39+
}
40+
41+
public static class Builder implements ObjectBuilder<JinaAiReranker> {
42+
private String model;
43+
44+
public Builder model(String model) {
45+
this.model = model;
46+
return this;
47+
}
48+
49+
@Override
50+
public JinaAiReranker build() {
51+
return new JinaAiReranker(this);
52+
}
53+
}
54+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package io.weaviate.client6.v1.api.collections.rerankers;
2+
3+
import java.util.function.Function;
4+
5+
import com.google.gson.annotations.SerializedName;
6+
7+
import io.weaviate.client6.v1.api.collections.Reranker;
8+
import io.weaviate.client6.v1.internal.ObjectBuilder;
9+
10+
public record NvidiaReranker(
11+
@SerializedName("model") String model,
12+
@SerializedName("baseUrl") String baseUrl) implements Reranker {
13+
14+
@Override
15+
public Kind _kind() {
16+
return Reranker.Kind.NVIDIA;
17+
}
18+
19+
@Override
20+
public Object _self() {
21+
return this;
22+
}
23+
24+
public static NvidiaReranker of() {
25+
return of(ObjectBuilder.identity());
26+
}
27+
28+
public static NvidiaReranker of(Function<Builder, ObjectBuilder<NvidiaReranker>> fn) {
29+
return fn.apply(new Builder()).build();
30+
}
31+
32+
public NvidiaReranker(Builder builder) {
33+
this(builder.model, builder.baseUrl);
34+
}
35+
36+
public static class Builder implements ObjectBuilder<NvidiaReranker> {
37+
private String model;
38+
private String baseUrl;
39+
40+
public Builder model(String model) {
41+
this.model = model;
42+
return this;
43+
}
44+
45+
public Builder baseUrl(String baseUrl) {
46+
this.baseUrl = baseUrl;
47+
return this;
48+
}
49+
50+
@Override
51+
public NvidiaReranker build() {
52+
return new NvidiaReranker(this);
53+
}
54+
}
55+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.weaviate.client6.v1.api.collections.rerankers;
2+
3+
import io.weaviate.client6.v1.api.collections.Reranker;
4+
5+
public record TransformersReranker() implements Reranker {
6+
7+
@Override
8+
public Kind _kind() {
9+
return Reranker.Kind.NVIDIA;
10+
}
11+
12+
@Override
13+
public Object _self() {
14+
return this;
15+
}
16+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package io.weaviate.client6.v1.api.collections.rerankers;
2+
3+
import java.util.function.Function;
4+
5+
import com.google.gson.annotations.SerializedName;
6+
7+
import io.weaviate.client6.v1.api.collections.Reranker;
8+
import io.weaviate.client6.v1.internal.ObjectBuilder;
9+
10+
public record VoyageAiReranker(
11+
@SerializedName("model") String model) implements Reranker {
12+
13+
public static final String RERANK_1 = "rerank-1";
14+
public static final String RERANK_LITE_1 = "rerank-lite-1";
15+
public static final String RERANK_2 = "rerank-2";
16+
public static final String RERANK_LITE_2 = "rerank-2-lite";
17+
18+
@Override
19+
public Kind _kind() {
20+
return Reranker.Kind.VOYAGEAI;
21+
}
22+
23+
@Override
24+
public Object _self() {
25+
return this;
26+
}
27+
28+
public static VoyageAiReranker of() {
29+
return of(ObjectBuilder.identity());
30+
}
31+
32+
public static VoyageAiReranker of(Function<Builder, ObjectBuilder<VoyageAiReranker>> fn) {
33+
return fn.apply(new Builder()).build();
34+
}
35+
36+
public VoyageAiReranker(Builder builder) {
37+
this(builder.model);
38+
}
39+
40+
public static class Builder implements ObjectBuilder<VoyageAiReranker> {
41+
private String model;
42+
43+
public Builder model(String model) {
44+
this.model = model;
45+
return this;
46+
}
47+
48+
@Override
49+
public VoyageAiReranker build() {
50+
return new VoyageAiReranker(this);
51+
}
52+
}
53+
}

0 commit comments

Comments
 (0)