Skip to content

Commit 1a57727

Browse files
committed
fix: allow single generative module per collection
1 parent 51f6e52 commit 1a57727

2 files changed

Lines changed: 13 additions & 26 deletions

File tree

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

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public record CollectionConfig(
3333
@SerializedName("replicationConfig") Replication replication,
3434
@SerializedName("invertedIndexConfig") InvertedIndex invertedIndex,
3535
List<Reranker> rerankerModules,
36-
List<Generative> generativeModules) {
36+
Generative generativeModule) {
3737

3838
public static CollectionConfig of(String collectionName) {
3939
return of(collectionName, ObjectBuilder.identity());
@@ -58,7 +58,7 @@ public Builder edit() {
5858
.replication(replication)
5959
.invertedIndex(invertedIndex)
6060
.rerankerModules(rerankerModules != null ? rerankerModules : new ArrayList<>())
61-
.generativeModules(generativeModules != null ? generativeModules : new ArrayList<>());
61+
.generativeModule(generativeModule);
6262
}
6363

6464
/** Create a copy of this {@code WeaviateCollection} and edit parts of it. */
@@ -78,7 +78,7 @@ public CollectionConfig(Builder builder) {
7878
builder.replication,
7979
builder.invertedIndex,
8080
builder.rerankerModules,
81-
builder.generativeModules);
81+
builder.generativeModule);
8282
}
8383

8484
public static class Builder implements ObjectBuilder<CollectionConfig> {
@@ -94,7 +94,7 @@ public static class Builder implements ObjectBuilder<CollectionConfig> {
9494
private Replication replication;
9595
private InvertedIndex invertedIndex;
9696
private List<Reranker> rerankerModules = new ArrayList<>();
97-
private List<Generative> generativeModules = new ArrayList<>();
97+
private Generative generativeModule;
9898

9999
public Builder(String collectionName) {
100100
this.collectionName = collectionName;
@@ -214,12 +214,8 @@ public Builder rerankerModules(List<Reranker> rerankerModules) {
214214
return this;
215215
}
216216

217-
public Builder generativeModules(Generative... generativeModules) {
218-
return generativeModules(Arrays.asList(generativeModules));
219-
}
220-
221-
public Builder generativeModules(List<Generative> generativeModules) {
222-
this.generativeModules.addAll(generativeModules);
217+
public Builder generativeModule(Generative generativeModule) {
218+
this.generativeModule = generativeModule;
223219
return this;
224220
}
225221

@@ -253,8 +249,8 @@ public void write(JsonWriter out, CollectionConfig value) throws IOException {
253249

254250
// Reranker and Generative module configs belong to the "moduleConfig".
255251
var rerankerModules = jsonObject.remove("rerankerModules").getAsJsonArray();
256-
var generativeModules = jsonObject.remove("generativeModules").getAsJsonArray();
257-
if (!rerankerModules.isEmpty() && !generativeModules.isEmpty()) {
252+
var generativeModule = jsonObject.remove("generativeModule");
253+
if (!rerankerModules.isEmpty() || !generativeModule.isJsonNull()) {
258254
var modules = new JsonObject();
259255

260256
// Copy configuration for each reranker module.
@@ -264,10 +260,8 @@ public void write(JsonWriter out, CollectionConfig value) throws IOException {
264260
});
265261

266262
// Copy configuration for each generative module.
267-
generativeModules.forEach(generative -> {
268-
generative.getAsJsonObject().entrySet()
269-
.stream().forEach(entry -> modules.add(entry.getKey(), entry.getValue()));
270-
});
263+
generativeModule.getAsJsonObject().entrySet()
264+
.stream().forEach(entry -> modules.add(entry.getKey(), entry.getValue()));
271265

272266
jsonObject.add("moduleConfig", modules);
273267
}
@@ -301,7 +295,6 @@ public CollectionConfig read(JsonReader in) throws IOException {
301295

302296
// Separate modules into reranker- and generative- modules.
303297
var rerankerModules = new JsonArray();
304-
var generativeModules = new JsonArray();
305298
if (jsonObject.has("moduleConfig")) {
306299
var moduleConfig = jsonObject.remove("moduleConfig").getAsJsonObject();
307300

@@ -314,12 +307,11 @@ public CollectionConfig read(JsonReader in) throws IOException {
314307
if (name.startsWith("reranker-")) {
315308
rerankerModules.add(module);
316309
} else if (name.startsWith("generative-")) {
317-
generativeModules.add(module);
310+
jsonObject.add("generativeModule", module);
318311
}
319312
});
320313
}
321314
jsonObject.add("rerankerModules", rerankerModules);
322-
jsonObject.add("generativeModules", generativeModules);
323315

324316
return delegate.fromJsonTree(jsonObject);
325317
}

src/main/java/io/weaviate/client6/v1/api/collections/config/UpdateCollectionRequest.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,8 @@ public Builder rerankerModules(List<Reranker> rerankerModules) {
9393
return this;
9494
}
9595

96-
public Builder generativeModules(Generative... generativeModules) {
97-
this.newCollection.generativeModules(generativeModules);
98-
return this;
99-
}
100-
101-
public Builder generativeModules(List<Generative> generativeModules) {
102-
this.newCollection.generativeModules(generativeModules);
96+
public Builder generativeModule(Generative generativeModule) {
97+
this.newCollection.generativeModule(generativeModule);
10398
return this;
10499
}
105100

0 commit comments

Comments
 (0)