Fix MilvusVectorStore max allowed dimension size to 32768

This commit is contained in:
jiwoo
2024-07-05 10:54:31 +09:00
committed by Mark Pollack
parent a1afb0db46
commit 6931148377
2 changed files with 19 additions and 2 deletions

View File

@@ -225,8 +225,8 @@ public class MilvusVectorStore implements VectorStore, InitializingBean {
*/
public Builder withEmbeddingDimension(int newEmbeddingDimension) {
Assert.isTrue(newEmbeddingDimension >= 1 && newEmbeddingDimension <= 2048,
"Dimension has to be withing the boundaries 1 and 2048 (inclusively)");
Assert.isTrue(newEmbeddingDimension >= 1 && newEmbeddingDimension <= 32768,
"Dimension has to be withing the boundaries 1 and 32768 (inclusively)");
this.embeddingDimension = newEmbeddingDimension;
return this;

View File

@@ -16,8 +16,11 @@
package org.springframework.ai.vectorstore;
import io.milvus.client.MilvusServiceClient;
import org.assertj.core.api.ThrowableAssert;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
@@ -25,6 +28,7 @@ import org.springframework.ai.embedding.EmbeddingModel;
import org.springframework.ai.vectorstore.MilvusVectorStore.MilvusVectorStoreConfig;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.only;
import static org.mockito.Mockito.verify;
@@ -32,6 +36,7 @@ import static org.mockito.Mockito.when;
/**
* @author Christian Tzolov
* @author Jiwoo Kim
*/
@ExtendWith(MockitoExtension.class)
public class MilvusEmbeddingDimensionsTests {
@@ -84,4 +89,16 @@ public class MilvusEmbeddingDimensionsTests {
verify(embeddingModel, only()).dimensions();
}
@ParameterizedTest
@ValueSource(ints = { 0, 32769 })
public void invalidDimensionsThrowException(final int explicitDimensions) {
// when
ThrowableAssert.ThrowingCallable actual = () -> MilvusVectorStoreConfig.builder()
.withEmbeddingDimension(explicitDimensions)
.build();
// then
assertThatThrownBy(actual).isInstanceOf(IllegalArgumentException.class);
}
}