diff --git a/src/it/java/io/weaviate/containers/Weaviate.java b/src/it/java/io/weaviate/containers/Weaviate.java index 77873d723..31a6076db 100644 --- a/src/it/java/io/weaviate/containers/Weaviate.java +++ b/src/it/java/io/weaviate/containers/Weaviate.java @@ -19,6 +19,8 @@ import io.weaviate.ConcurrentTest; import io.weaviate.client6.v1.api.Config; import io.weaviate.client6.v1.api.WeaviateClient; +import io.weaviate.client6.v1.api.collections.Generative; +import io.weaviate.client6.v1.api.collections.Reranker; import io.weaviate.client6.v1.internal.ObjectBuilder; import io.weaviate.client6.v1.internal.VersionSupport.SemanticVersion; @@ -154,6 +156,7 @@ public static class Builder { private Map environment = new HashMap<>(); public Builder() { + addModules(Reranker.Kind.DUMMY.jsonValue(), Generative.Kind.DUMMY.jsonValue()); enableAutoSchema(false); } diff --git a/src/it/java/io/weaviate/integration/CollectionsITest.java b/src/it/java/io/weaviate/integration/CollectionsITest.java index c28890430..b3953ab08 100644 --- a/src/it/java/io/weaviate/integration/CollectionsITest.java +++ b/src/it/java/io/weaviate/integration/CollectionsITest.java @@ -11,6 +11,7 @@ import io.weaviate.client6.v1.api.WeaviateClient; import io.weaviate.client6.v1.api.collections.CollectionConfig; import io.weaviate.client6.v1.api.collections.DataType; +import io.weaviate.client6.v1.api.collections.Generative; import io.weaviate.client6.v1.api.collections.InvertedIndex; import io.weaviate.client6.v1.api.collections.Property; import io.weaviate.client6.v1.api.collections.Quantization; @@ -19,6 +20,7 @@ import io.weaviate.client6.v1.api.collections.VectorConfig; import io.weaviate.client6.v1.api.collections.config.Shard; import io.weaviate.client6.v1.api.collections.config.ShardStatus; +import io.weaviate.client6.v1.api.collections.generative.DummyGenerative; import io.weaviate.client6.v1.api.collections.vectorindex.Hnsw; import io.weaviate.client6.v1.api.collections.vectorizers.SelfProvidedVectorizer; import io.weaviate.containers.Container; @@ -234,7 +236,7 @@ public void testNestedProperties() throws IOException { } @Test - public void test_updateQuantization() throws IOException { + public void test_updateQuantization_uncompressed() throws IOException { // Arrange var nsThings = ns("Things"); @@ -255,4 +257,22 @@ public void test_updateQuantization() throws IOException { .extracting(VectorConfig::quantization) .returns(Quantization.Kind.BQ, Quantization::_kind); } + + @Test + public void test_updateGenerative() throws IOException { + // Arrange + var nsThings = ns("Things"); + + var things = client.collections.create(nsThings, + c -> c.vectorConfig(VectorConfig.selfProvided())); + + // Act + things.config.update(c -> c.generativeModule(new DummyGenerative())); + + // Assert + var config = things.config.get(); + Assertions.assertThat(config).get() + .extracting(CollectionConfig::generativeModule).isNotNull() + .returns(Generative.Kind.DUMMY, Generative::_kind); + } } diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/config/UpdateCollectionRequest.java b/src/main/java/io/weaviate/client6/v1/api/collections/config/UpdateCollectionRequest.java index c706da0c1..b8362ff3f 100644 --- a/src/main/java/io/weaviate/client6/v1/api/collections/config/UpdateCollectionRequest.java +++ b/src/main/java/io/weaviate/client6/v1/api/collections/config/UpdateCollectionRequest.java @@ -40,7 +40,7 @@ public record UpdateCollectionRequest(CollectionConfig updated, CollectionConfig for (var origVector : request.original.vectors().entrySet()) { var vectorName = origVector.getKey(); var origQuantization = origVector.getValue().quantization(); - if (vectors.has(vectorName)) { + if (vectors.has(vectorName) && origQuantization != null) { vectors .get(vectorName).getAsJsonObject() .get("vectorIndexConfig").getAsJsonObject()