diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/nav.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/nav.adoc index 6d5ca77d1..5427dd487 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/nav.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/nav.adoc @@ -75,6 +75,7 @@ * xref:api/vectordbs.adoc[] ** xref:api/vectordbs/azure.adoc[] +** xref:api/vectordbs/azure-cosmos-db.adoc[] ** xref:api/vectordbs/apache-cassandra.adoc[] ** xref:api/vectordbs/chroma.adoc[] ** xref:api/vectordbs/elasticsearch.adoc[] diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/azure-cosmos-db.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/azure-cosmos-db.adoc index 89c2cc150..df080dbb1 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/azure-cosmos-db.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/azure-cosmos-db.adoc @@ -101,17 +101,19 @@ Add the following dependency to your Maven project: The following configuration properties are available for the Cosmos DB vector store: -|=========================== +[stripes=even] +|=== | Property | Description + | spring.ai.vectorstore.cosmosdb.databaseName | The name of the Cosmos DB database to use. | spring.ai.vectorstore.cosmosdb.containerName | The name of the Cosmos DB container to use. | spring.ai.vectorstore.cosmosdb.partitionKeyPath | The path for the partition key. | spring.ai.vectorstore.cosmosdb.metadataFields | Comma-separated list of metadata fields. -| spring.ai.vectorstore.cosmosdb.vectorStoreThoughput | The throughput for the vector store. +| spring.ai.vectorstore.cosmosdb.vectorStoreThroughput | The throughput for the vector store. | spring.ai.vectorstore.cosmosdb.vectorDimensions | The number of dimensions for the vectors. | spring.ai.vectorstore.cosmosdb.endpoint | The endpoint for the Cosmos DB. | spring.ai.vectorstore.cosmosdb.key | The key for the Cosmos DB. -|=========================== +|=== == Complex Searches with Filters @@ -205,7 +207,7 @@ public class DemoApplication implements CommandLineRunner { config.setDatabaseName("spring-ai-sample"); config.setContainerName("container"); config.setMetadataFields("country,city"); - config.setVectorStoreThoughput(400); + config.setVectorStoreThroughput(400); CosmosAsyncClient cosmosClient = new CosmosClientBuilder() .endpoint(System.getenv("COSMOSDB_AI_ENDPOINT")) diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfiguration.java index ee55d705c..8fdbb1ad4 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfiguration.java @@ -73,7 +73,7 @@ public class CosmosDBVectorStoreAutoConfiguration { config.setDatabaseName(properties.getDatabaseName()); config.setContainerName(properties.getContainerName()); config.setMetadataFields(properties.getMetadataFields()); - config.setVectorStoreThoughput(properties.getVectorStoreThoughput()); + config.setVectorStoreThroughput(properties.getVectorStoreThroughput()); config.setVectorDimensions(properties.getVectorDimensions()); return new CosmosDBVectorStore(observationRegistry, customObservationConvention.getIfAvailable(), cosmosAsyncClient, config, embeddingModel, batchingStrategy); diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java index 732573de2..d7d06ac25 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java @@ -35,7 +35,7 @@ public class CosmosDBVectorStoreProperties extends CommonVectorStoreProperties { private String metadataFields; - private int vectorStoreThoughput = 400; + private int vectorStoreThroughput = 400; private long vectorDimensions = 1536; @@ -45,16 +45,16 @@ public class CosmosDBVectorStoreProperties extends CommonVectorStoreProperties { private String key; - public int getVectorStoreThoughput() { - return vectorStoreThoughput; + public int getVectorStoreThroughput() { + return this.vectorStoreThroughput; } - public void setVectorStoreThoughput(int vectorStoreThoughput) { - this.vectorStoreThoughput = vectorStoreThoughput; + public void setVectorStoreThroughput(int vectorStoreThroughput) { + this.vectorStoreThroughput = vectorStoreThroughput; } public String getMetadataFields() { - return metadataFields; + return this.metadataFields; } public void setMetadataFields(String metadataFields) { @@ -62,7 +62,7 @@ public class CosmosDBVectorStoreProperties extends CommonVectorStoreProperties { } public String getEndpoint() { - return endpoint; + return this.endpoint; } public void setEndpoint(String endpoint) { @@ -70,7 +70,7 @@ public class CosmosDBVectorStoreProperties extends CommonVectorStoreProperties { } public String getKey() { - return key; + return this.key; } public void setKey(String key) { @@ -78,7 +78,7 @@ public class CosmosDBVectorStoreProperties extends CommonVectorStoreProperties { } public String getDatabaseName() { - return databaseName; + return this.databaseName; } public void setDatabaseName(String databaseName) { @@ -86,7 +86,7 @@ public class CosmosDBVectorStoreProperties extends CommonVectorStoreProperties { } public String getContainerName() { - return containerName; + return this.containerName; } public void setContainerName(String containerName) { @@ -94,7 +94,7 @@ public class CosmosDBVectorStoreProperties extends CommonVectorStoreProperties { } public String getPartitionKeyPath() { - return partitionKeyPath; + return this.partitionKeyPath; } public void setPartitionKeyPath(String partitionKeyPath) { @@ -102,7 +102,7 @@ public class CosmosDBVectorStoreProperties extends CommonVectorStoreProperties { } public long getVectorDimensions() { - return vectorDimensions; + return this.vectorDimensions; } public void setVectorDimensions(long vectorDimensions) { diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfigurationIT.java index c6c4ea01e..7376cf99a 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfigurationIT.java @@ -51,7 +51,7 @@ public class CosmosDBVectorStoreAutoConfigurationIT { .withPropertyValues("spring.ai.vectorstore.cosmosdb.containerName=test-container") .withPropertyValues("spring.ai.vectorstore.cosmosdb.partitionKeyPath=/id") .withPropertyValues("spring.ai.vectorstore.cosmosdb.metadataFields=country,year,city") - .withPropertyValues("spring.ai.vectorstore.cosmosdb.vectorStoreThoughput=1000") + .withPropertyValues("spring.ai.vectorstore.cosmosdb.vectorStoreThroughput=1000") .withPropertyValues("spring.ai.vectorstore.cosmosdb.vectorDimensions=384") .withPropertyValues("spring.ai.vectorstore.cosmosdb.endpoint=" + System.getenv("AZURE_COSMOSDB_ENDPOINT")) .withPropertyValues("spring.ai.vectorstore.cosmosdb.key=" + System.getenv("AZURE_COSMOSDB_KEY")) diff --git a/vector-stores/spring-ai-azure-cosmos-db-store/README.md b/vector-stores/spring-ai-azure-cosmos-db-store/README.md index 8e610a268..c87ad2236 100644 --- a/vector-stores/spring-ai-azure-cosmos-db-store/README.md +++ b/vector-stores/spring-ai-azure-cosmos-db-store/README.md @@ -1 +1 @@ -[Azure Cosmos DB Vector Store Documentation]() \ No newline at end of file +[Azure Cosmos DB Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/azure-cosmos-db.html) \ No newline at end of file diff --git a/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBFilterExpressionConverter.java b/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBFilterExpressionConverter.java index 7424b25e5..cb5f1df3c 100644 --- a/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBFilterExpressionConverter.java +++ b/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBFilterExpressionConverter.java @@ -16,10 +16,8 @@ package org.springframework.ai.vectorstore; -import org.springframework.ai.vectorstore.filter.Filter; -import org.springframework.ai.vectorstore.filter.Filter.ExpressionType; -import org.springframework.ai.vectorstore.filter.Filter.Key; -import org.springframework.ai.vectorstore.filter.converter.AbstractFilterExpressionConverter; +import static org.springframework.ai.vectorstore.filter.Filter.ExpressionType.AND; +import static org.springframework.ai.vectorstore.filter.Filter.ExpressionType.OR; import java.util.Collection; import java.util.Map; @@ -27,8 +25,9 @@ import java.util.Optional; import java.util.function.Function; import java.util.stream.Collectors; -import static org.springframework.ai.vectorstore.filter.Filter.ExpressionType.AND; -import static org.springframework.ai.vectorstore.filter.Filter.ExpressionType.OR; +import org.springframework.ai.vectorstore.filter.Filter; +import org.springframework.ai.vectorstore.filter.Filter.Key; +import org.springframework.ai.vectorstore.filter.converter.AbstractFilterExpressionConverter; /** * Converts {@link org.springframework.ai.vectorstore.filter.Filter.Expression} into diff --git a/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBVectorStore.java b/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBVectorStore.java index 8dc1f787a..54716b142 100644 --- a/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBVectorStore.java +++ b/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBVectorStore.java @@ -16,16 +16,15 @@ package org.springframework.ai.vectorstore; -import com.azure.cosmos.*; -import com.azure.cosmos.implementation.guava25.collect.ImmutableList; -import com.azure.cosmos.models.*; -import com.azure.cosmos.util.CosmosPagedFlux; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import io.micrometer.observation.ObservationRegistry; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; @@ -38,10 +37,38 @@ import org.springframework.ai.vectorstore.filter.Filter; import org.springframework.ai.vectorstore.observation.AbstractObservationVectorStore; import org.springframework.ai.vectorstore.observation.VectorStoreObservationContext; import org.springframework.ai.vectorstore.observation.VectorStoreObservationConvention; + +import com.azure.cosmos.CosmosAsyncClient; +import com.azure.cosmos.CosmosAsyncContainer; +import com.azure.cosmos.CosmosAsyncDatabase; +import com.azure.cosmos.implementation.guava25.collect.ImmutableList; +import com.azure.cosmos.models.CosmosBulkOperations; +import com.azure.cosmos.models.CosmosContainerProperties; +import com.azure.cosmos.models.CosmosItemOperation; +import com.azure.cosmos.models.CosmosQueryRequestOptions; +import com.azure.cosmos.models.CosmosVectorDataType; +import com.azure.cosmos.models.CosmosVectorDistanceFunction; +import com.azure.cosmos.models.CosmosVectorEmbedding; +import com.azure.cosmos.models.CosmosVectorEmbeddingPolicy; +import com.azure.cosmos.models.CosmosVectorIndexSpec; +import com.azure.cosmos.models.CosmosVectorIndexType; +import com.azure.cosmos.models.ExcludedPath; +import com.azure.cosmos.models.IncludedPath; +import com.azure.cosmos.models.IndexingMode; +import com.azure.cosmos.models.IndexingPolicy; +import com.azure.cosmos.models.PartitionKey; +import com.azure.cosmos.models.PartitionKeyDefinition; +import com.azure.cosmos.models.PartitionKind; +import com.azure.cosmos.models.SqlParameter; +import com.azure.cosmos.models.SqlQuerySpec; +import com.azure.cosmos.models.ThroughputProperties; +import com.azure.cosmos.util.CosmosPagedFlux; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import io.micrometer.observation.ObservationRegistry; import reactor.core.publisher.Flux; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.IntStream; /** * @author Theo van Kraay @@ -79,38 +106,38 @@ public class CosmosDBVectorStore extends AbstractObservationVectorStore implemen cosmosClient.createDatabaseIfNotExists(properties.getDatabaseName()).block(); initializeContainer(properties.getContainerName(), properties.getDatabaseName(), - properties.getVectorStoreThoughput(), properties.getVectorDimensions(), + properties.getVectorStoreThroughput(), properties.getVectorDimensions(), properties.getPartitionKeyPath()); this.embeddingModel = embeddingModel; } - private void initializeContainer(String containerName, String databaseName, int vectorStoreThoughput, + private void initializeContainer(String containerName, String databaseName, int vectorStoreThroughput, long vectorDimensions, String partitionKeyPath) { // Set defaults if not provided - if (vectorStoreThoughput == 0) { - vectorStoreThoughput = 400; + if (vectorStoreThroughput == 0) { + vectorStoreThroughput = 400; } if (partitionKeyPath == null) { partitionKeyPath = "/id"; } // handle hierarchical partition key - PartitionKeyDefinition subpartitionKeyDefinition = new PartitionKeyDefinition(); - List pathsfromCommaSeparatedList = new ArrayList(); - String[] subpartitionKeyPaths = partitionKeyPath.split(","); - Collections.addAll(pathsfromCommaSeparatedList, subpartitionKeyPaths); - if (subpartitionKeyPaths.length > 1) { - subpartitionKeyDefinition.setPaths(pathsfromCommaSeparatedList); - subpartitionKeyDefinition.setKind(PartitionKind.MULTI_HASH); + PartitionKeyDefinition subPartitionKeyDefinition = new PartitionKeyDefinition(); + List pathsFromCommaSeparatedList = new ArrayList(); + String[] subPartitionKeyPaths = partitionKeyPath.split(","); + Collections.addAll(pathsFromCommaSeparatedList, subPartitionKeyPaths); + if (subPartitionKeyPaths.length > 1) { + subPartitionKeyDefinition.setPaths(pathsFromCommaSeparatedList); + subPartitionKeyDefinition.setKind(PartitionKind.MULTI_HASH); } else { - subpartitionKeyDefinition.setPaths(Collections.singletonList(partitionKeyPath)); - subpartitionKeyDefinition.setKind(PartitionKind.HASH); + subPartitionKeyDefinition.setPaths(Collections.singletonList(partitionKeyPath)); + subPartitionKeyDefinition.setKind(PartitionKind.HASH); } CosmosContainerProperties collectionDefinition = new CosmosContainerProperties(containerName, - subpartitionKeyDefinition); + subPartitionKeyDefinition); // Set vector embedding policy CosmosVectorEmbeddingPolicy embeddingPolicy = new CosmosVectorEmbeddingPolicy(); CosmosVectorEmbedding embedding = new CosmosVectorEmbedding(); @@ -135,16 +162,16 @@ public class CosmosDBVectorStore extends AbstractObservationVectorStore implemen indexingPolicy.setVectorIndexes(List.of(cosmosVectorIndexSpec)); collectionDefinition.setIndexingPolicy(indexingPolicy); - ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(vectorStoreThoughput); - CosmosAsyncDatabase cosmosAsyncDatabase = cosmosClient.getDatabase(databaseName); + ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(vectorStoreThroughput); + CosmosAsyncDatabase cosmosAsyncDatabase = this.cosmosClient.getDatabase(databaseName); cosmosAsyncDatabase.createContainerIfNotExists(collectionDefinition, throughputProperties).block(); this.container = cosmosAsyncDatabase.getContainer(containerName); } @Override public void close() { - if (cosmosClient != null) { - cosmosClient.close(); + if (this.cosmosClient != null) { + this.cosmosClient.close(); logger.info("Cosmos DB client closed successfully."); } } @@ -192,7 +219,7 @@ public class CosmosDBVectorStore extends AbstractObservationVectorStore implemen .map(ImmutablePair::getValue) .collect(Collectors.toList()); - container.executeBulkOperations(Flux.fromIterable(itemOperations)).doOnNext(response -> { + this.container.executeBulkOperations(Flux.fromIterable(itemOperations)).doOnNext(response -> { if (response != null && response.getResponse() != null) { int statusCode = response.getResponse().getStatusCode(); if (statusCode == 409) { @@ -236,7 +263,7 @@ public class CosmosDBVectorStore extends AbstractObservationVectorStore implemen // Execute bulk delete operations synchronously by using blockLast() on the // Flux - container.executeBulkOperations(Flux.fromIterable(itemOperations)) + this.container.executeBulkOperations(Flux.fromIterable(itemOperations)) .doOnNext(response -> logger.info("Document deleted with status: {}", response.getResponse().getStatusCode())) .doOnError(error -> logger.error("Error deleting document: {}", error.getMessage())) @@ -279,9 +306,11 @@ public class CosmosDBVectorStore extends AbstractObservationVectorStore implemen Filter.Expression filterExpression = request.getFilterExpression(); if (filterExpression != null) { CosmosDBFilterExpressionConverter filterExpressionConverter = new CosmosDBFilterExpressionConverter( - properties.getMetadataFieldsList()); // Use the expression directly as - // it handles the "metadata" - // fields internally + this.properties.getMetadataFieldsList()); // Use the expression + // directly as + // it handles the + // "metadata" + // fields internally String filterQuery = filterExpressionConverter.convertExpression(filterExpression); queryBuilder.append(" AND ").append(filterQuery); } @@ -297,7 +326,7 @@ public class CosmosDBVectorStore extends AbstractObservationVectorStore implemen SqlQuerySpec sqlQuerySpec = new SqlQuerySpec(query, parameters); CosmosQueryRequestOptions options = new CosmosQueryRequestOptions(); - CosmosPagedFlux pagedFlux = container.queryItems(sqlQuerySpec, options, JsonNode.class); + CosmosPagedFlux pagedFlux = this.container.queryItems(sqlQuerySpec, options, JsonNode.class); logger.info("Executing similarity search query: {}", query); try { @@ -322,9 +351,9 @@ public class CosmosDBVectorStore extends AbstractObservationVectorStore implemen @Override public VectorStoreObservationContext.Builder createObservationContextBuilder(String operationName) { return VectorStoreObservationContext.builder(VectorStoreProvider.COSMOSDB.value(), operationName) - .withCollectionName(container.getId()) + .withCollectionName(this.container.getId()) .withDimensions(this.embeddingModel.dimensions()) - .withNamespace(container.getDatabase().getId()) + .withNamespace(this.container.getDatabase().getId()) .withSimilarityMetric("cosine"); } diff --git a/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBVectorStoreConfig.java b/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBVectorStoreConfig.java index f40f85556..244ee8145 100644 --- a/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBVectorStoreConfig.java +++ b/vector-stores/spring-ai-azure-cosmos-db-store/src/main/java/org/springframework/ai/vectorstore/CosmosDBVectorStoreConfig.java @@ -37,18 +37,18 @@ public class CosmosDBVectorStoreConfig implements AutoCloseable { private String metadataFields; - private int vectorStoreThoughput = 400; + private int vectorStoreThroughput = 400; private long vectorDimensions = 1536; private List metadataFieldsList; - public int getVectorStoreThoughput() { - return vectorStoreThoughput; + public int getVectorStoreThroughput() { + return this.vectorStoreThroughput; } - public void setVectorStoreThoughput(int vectorStoreThoughput) { - this.vectorStoreThoughput = vectorStoreThoughput; + public void setVectorStoreThroughput(int vectorStoreThroughput) { + this.vectorStoreThroughput = vectorStoreThroughput; } public void setMetadataFields(String metadataFields) { @@ -57,15 +57,15 @@ public class CosmosDBVectorStoreConfig implements AutoCloseable { } public String getMetadataFields() { - return metadataFields; + return this.metadataFields; } public List getMetadataFieldsList() { - return metadataFieldsList; + return this.metadataFieldsList; } public String getEndpoint() { - return endpoint; + return this.endpoint; } public void setEndpoint(String endpoint) { @@ -73,7 +73,7 @@ public class CosmosDBVectorStoreConfig implements AutoCloseable { } public String getKey() { - return key; + return this.key; } public void setKey(String key) { @@ -81,7 +81,7 @@ public class CosmosDBVectorStoreConfig implements AutoCloseable { } public String getContainerName() { - return containerName; + return this.containerName; } public void setContainerName(String containerName) { @@ -89,7 +89,7 @@ public class CosmosDBVectorStoreConfig implements AutoCloseable { } public String getDatabaseName() { - return databaseName; + return this.databaseName; } public void setDatabaseName(String databaseName) { @@ -97,7 +97,7 @@ public class CosmosDBVectorStoreConfig implements AutoCloseable { } public String getPartitionKeyPath() { - return partitionKeyPath; + return this.partitionKeyPath; } public void setPartitionKeyPath(String partitionKeyPath) { @@ -110,7 +110,7 @@ public class CosmosDBVectorStoreConfig implements AutoCloseable { } public long getVectorDimensions() { - return vectorDimensions; + return this.vectorDimensions; } public void setVectorDimensions(long vectorDimensions) { diff --git a/vector-stores/spring-ai-azure-cosmos-db-store/src/test/java/org/springframework/ai/vectorstore/CosmosDBVectorStoreIT.java b/vector-stores/spring-ai-azure-cosmos-db-store/src/test/java/org/springframework/ai/vectorstore/CosmosDBVectorStoreIT.java index 1e05b6b8e..6c0644443 100644 --- a/vector-stores/spring-ai-azure-cosmos-db-store/src/test/java/org/springframework/ai/vectorstore/CosmosDBVectorStoreIT.java +++ b/vector-stores/spring-ai-azure-cosmos-db-store/src/test/java/org/springframework/ai/vectorstore/CosmosDBVectorStoreIT.java @@ -168,7 +168,7 @@ public class CosmosDBVectorStoreIT { config.setDatabaseName("test-database"); config.setContainerName("test-container"); config.setMetadataFields("country,year,city"); - config.setVectorStoreThoughput(1000); + config.setVectorStoreThroughput(1000); return new CosmosDBVectorStore(null, convention, cosmosClient, config, embeddingModel); }