Skip to content

Commit 5316073

Browse files
Convert Qdrant vector store IT use OpenAI embedding model (#3671)
- Move Qdrant vector store test dependency from OpenAI model module - Convert existing Qdrant vector store ITs to use OpenAI embedding model for better unification along with other vector stores Auto-cherry-pick to 1.0.x Fixes #3671 Signed-off-by: Ilayaperumal Gopinathan <ilayaperumal.gopinathan@broadcom.com>
1 parent 250c878 commit 5316073

File tree

4 files changed

+13
-33
lines changed

4 files changed

+13
-33
lines changed

models/spring-ai-openai/pom.xml

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -87,31 +87,12 @@
8787
<scope>test</scope>
8888
</dependency>
8989

90-
<dependency>
91-
<groupId>org.springframework.ai</groupId>
92-
<artifactId>spring-ai-qdrant-store</artifactId>
93-
<version>${project.version}</version>
94-
<exclusions>
95-
<exclusion>
96-
<groupId>org.springframework.ai</groupId>
97-
<artifactId>spring-ai-openai</artifactId>
98-
</exclusion>
99-
</exclusions>
100-
<scope>test</scope>
101-
</dependency>
102-
10390
<dependency>
10491
<groupId>io.micrometer</groupId>
10592
<artifactId>micrometer-observation-test</artifactId>
10693
<scope>test</scope>
10794
</dependency>
10895

109-
<dependency>
110-
<groupId>org.testcontainers</groupId>
111-
<artifactId>qdrant</artifactId>
112-
<scope>test</scope>
113-
</dependency>
114-
11596
<dependency>
11697
<groupId>org.testcontainers</groupId>
11798
<artifactId>testcontainers</artifactId>

vector-stores/spring-ai-qdrant-store/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
<!-- TESTING -->
6969
<dependency>
7070
<groupId>org.springframework.ai</groupId>
71-
<artifactId>spring-ai-mistral-ai</artifactId>
71+
<artifactId>spring-ai-openai</artifactId>
7272
<version>${project.parent.version}</version>
7373
<scope>test</scope>
7474
</dependency>

vector-stores/spring-ai-qdrant-store/src/test/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStoreIT.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,15 @@
3232
import org.junit.jupiter.api.BeforeAll;
3333
import org.junit.jupiter.api.Test;
3434
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
35-
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariables;
3635
import org.testcontainers.junit.jupiter.Container;
3736
import org.testcontainers.junit.jupiter.Testcontainers;
3837
import org.testcontainers.qdrant.QdrantContainer;
3938

4039
import org.springframework.ai.document.Document;
4140
import org.springframework.ai.document.DocumentMetadata;
4241
import org.springframework.ai.embedding.EmbeddingModel;
43-
import org.springframework.ai.mistralai.MistralAiEmbeddingModel;
44-
import org.springframework.ai.mistralai.api.MistralAiApi;
42+
import org.springframework.ai.openai.OpenAiEmbeddingModel;
43+
import org.springframework.ai.openai.api.OpenAiApi;
4544
import org.springframework.ai.test.vectorstore.BaseVectorStoreTests;
4645
import org.springframework.ai.vectorstore.SearchRequest;
4746
import org.springframework.ai.vectorstore.VectorStore;
@@ -62,12 +61,12 @@
6261
* @since 0.8.1
6362
*/
6463
@Testcontainers
65-
@EnabledIfEnvironmentVariable(named = "MISTRAL_AI_API_KEY", matches = ".+")
64+
@EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".+")
6665
public class QdrantVectorStoreIT extends BaseVectorStoreTests {
6766

6867
private static final String COLLECTION_NAME = "test_collection";
6968

70-
private static final int EMBEDDING_DIMENSION = 1024;
69+
private static final int EMBEDDING_DIMENSION = 1536;
7170

7271
@Container
7372
static QdrantContainer qdrantContainer = new QdrantContainer(QdrantImage.DEFAULT_IMAGE);
@@ -355,7 +354,7 @@ public VectorStore qdrantVectorStore(EmbeddingModel embeddingModel, QdrantClient
355354

356355
@Bean
357356
public EmbeddingModel embeddingModel() {
358-
return new MistralAiEmbeddingModel(new MistralAiApi(System.getenv("MISTRAL_AI_API_KEY")));
357+
return new OpenAiEmbeddingModel(OpenAiApi.builder().apiKey(System.getenv("OPENAI_API_KEY")).build());
359358
}
360359

361360
}

vector-stores/spring-ai-qdrant-store/src/test/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStoreObservationIT.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@
3939
import org.springframework.ai.document.Document;
4040
import org.springframework.ai.embedding.EmbeddingModel;
4141
import org.springframework.ai.embedding.TokenCountBatchingStrategy;
42-
import org.springframework.ai.mistralai.MistralAiEmbeddingModel;
43-
import org.springframework.ai.mistralai.api.MistralAiApi;
4442
import org.springframework.ai.observation.conventions.SpringAiKind;
4543
import org.springframework.ai.observation.conventions.VectorStoreProvider;
44+
import org.springframework.ai.openai.OpenAiEmbeddingModel;
45+
import org.springframework.ai.openai.api.OpenAiApi;
4646
import org.springframework.ai.vectorstore.SearchRequest;
4747
import org.springframework.ai.vectorstore.VectorStore;
4848
import org.springframework.ai.vectorstore.observation.DefaultVectorStoreObservationConvention;
@@ -61,12 +61,12 @@
6161
* @author Thomas Vitale
6262
*/
6363
@Testcontainers
64-
@EnabledIfEnvironmentVariable(named = "MISTRAL_AI_API_KEY", matches = ".+")
64+
@EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".+")
6565
public class QdrantVectorStoreObservationIT {
6666

6767
private static final String COLLECTION_NAME = "test_collection";
6868

69-
private static final int EMBEDDING_DIMENSION = 1024;
69+
private static final int EMBEDDING_DIMENSION = 1536;
7070

7171
@Container
7272
static QdrantContainer qdrantContainer = new QdrantContainer(QdrantImage.DEFAULT_IMAGE);
@@ -126,7 +126,7 @@ void observationVectorStoreAddAndQueryOperations() {
126126
.hasLowCardinalityKeyValue(LowCardinalityKeyNames.SPRING_AI_KIND.asString(),
127127
SpringAiKind.VECTOR_STORE.value())
128128
.doesNotHaveHighCardinalityKeyValueWithKey(HighCardinalityKeyNames.DB_VECTOR_QUERY_CONTENT.asString())
129-
.hasHighCardinalityKeyValue(HighCardinalityKeyNames.DB_VECTOR_DIMENSION_COUNT.asString(), "1024")
129+
.hasHighCardinalityKeyValue(HighCardinalityKeyNames.DB_VECTOR_DIMENSION_COUNT.asString(), "1536")
130130
.hasHighCardinalityKeyValue(HighCardinalityKeyNames.DB_COLLECTION_NAME.asString(), COLLECTION_NAME)
131131
.doesNotHaveHighCardinalityKeyValueWithKey(HighCardinalityKeyNames.DB_NAMESPACE.asString())
132132
.doesNotHaveHighCardinalityKeyValueWithKey(HighCardinalityKeyNames.DB_VECTOR_FIELD_NAME.asString())
@@ -159,7 +159,7 @@ void observationVectorStoreAddAndQueryOperations() {
159159

160160
.hasHighCardinalityKeyValue(HighCardinalityKeyNames.DB_VECTOR_QUERY_CONTENT.asString(),
161161
"What is Great Depression")
162-
.hasHighCardinalityKeyValue(HighCardinalityKeyNames.DB_VECTOR_DIMENSION_COUNT.asString(), "1024")
162+
.hasHighCardinalityKeyValue(HighCardinalityKeyNames.DB_VECTOR_DIMENSION_COUNT.asString(), "1536")
163163
.hasHighCardinalityKeyValue(HighCardinalityKeyNames.DB_COLLECTION_NAME.asString(), COLLECTION_NAME)
164164
.doesNotHaveHighCardinalityKeyValueWithKey(HighCardinalityKeyNames.DB_NAMESPACE.asString())
165165
.doesNotHaveHighCardinalityKeyValueWithKey(HighCardinalityKeyNames.DB_VECTOR_FIELD_NAME.asString())
@@ -206,7 +206,7 @@ public VectorStore qdrantVectorStore(EmbeddingModel embeddingModel, QdrantClient
206206

207207
@Bean
208208
public EmbeddingModel embeddingModel() {
209-
return new MistralAiEmbeddingModel(new MistralAiApi(System.getenv("MISTRAL_AI_API_KEY")));
209+
return new OpenAiEmbeddingModel(OpenAiApi.builder().apiKey(System.getenv("OPENAI_API_KEY")).build());
210210
}
211211

212212
}

0 commit comments

Comments
 (0)