@@ -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 }
0 commit comments