Commit ee8bf37
Require essential dependencies in vector store builder constructors
This commit refactors the builder pattern implementation across all VectorStore
implementations to make the EmbeddingModel a required constructor parameter
rather than an optional builder method. Key changes include:
- Move embeddingModel from being a builder method to a required constructor parameter
- Make embeddingModel final in AbstractVectorStoreBuilder
- Remove redundant validate() methods since EmbeddingModel validation now happens
in constructor
- Update all VectorStore builder instantiations to pass EmbeddingModel in builder
creation
- Add @nullable annotations to appropriate methods in VectorStore interface
This change improves the API design by:
1. Enforcing that EmbeddingModel is provided at builder creation time
2. Removing the possibility of forgotten EmbeddingModel configuration
3. Simplifying the builder implementation by moving validation to construction
4. Making the dependency on EmbeddingModel more explicit in the API
Breaking Changes:
- VectorStore builders must now be created with an EmbeddingModel parameter
- The embeddingModel() builder method has been removed from all implementations1 parent c5bf644 commit ee8bf37
File tree
101 files changed
+382
-581
lines changed- spring-ai-core/src
- main/java/org/springframework/ai
- embedding
- vectorstore
- observation
- test/java/org/springframework/ai/vectorstore
- spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore
- azure
- cassandra
- chroma
- elasticsearch
- gemfire
- hanadb
- mariadb
- milvus
- mongo
- neo4j
- opensearch
- oracle
- pgvector
- pinecone
- qdrant
- redis
- typesense
- weaviate
- vector-stores
- spring-ai-azure-cosmos-db-store/src
- main/java/org/springframework/ai/vectorstore/cosmosdb
- test/java/org/springframework/ai/vectorstore/cosmosdb
- spring-ai-azure-store/src
- main/java/org/springframework/ai/vectorstore/azure
- test/java/org/springframework/ai/vectorstore/azure
- spring-ai-cassandra-store/src
- main/java/org/springframework/ai/vectorstore/cassandra
- test/java/org/springframework/ai/vectorstore/cassandra
- spring-ai-chroma-store/src
- main/java/org/springframework/ai/chroma/vectorstore
- test/java/org/springframework/ai/chroma/vectorstore
- spring-ai-coherence-store/src
- main/java/org/springframework/ai/vectorstore/coherence
- test/java/org/springframework/ai/vectorstore/coherence
- spring-ai-elasticsearch-store/src
- main/java/org/springframework/ai/vectorstore/elasticsearch
- test/java/org/springframework/ai/vectorstore/elasticsearch
- spring-ai-gemfire-store/src
- main/java/org/springframework/ai/vectorstore/gemfire
- test/java/org/springframework/ai/vectorstore/gemfire
- spring-ai-hanadb-store/src
- main/java/org/springframework/ai/vectorstore/hanadb
- test/java/org/springframework/ai/vectorstore/hanadb
- spring-ai-mariadb-store/src
- main/java/org/springframework/ai/vectorstore/mariadb
- test/java/org/springframework/ai/vectorstore/mariadb
- spring-ai-milvus-store/src
- main/java/org/springframework/ai/milvus/vectorstore
- test/java/org/springframework/ai/milvus/vectorstore
- spring-ai-mongodb-atlas-store/src
- main/java/org/springframework/ai/vectorstore/mongodb/atlas
- test/java/org/springframework/ai/vectorstore/mongodb/atlas
- spring-ai-neo4j-store/src
- main/java/org/springframework/ai/vectorstore/neo4j
- test/java/org/springframework/ai/vectorstore/neo4j
- spring-ai-opensearch-store/src
- main/java/org/springframework/ai/vectorstore/opensearch
- test/java/org/springframework/ai/vectorstore/opensearch
- spring-ai-oracle-store/src
- main/java/org/springframework/ai/vectorstore/oracle
- test/java/org/springframework/ai/vectorstore/oracle
- spring-ai-pgvector-store/src
- main/java/org/springframework/ai/vectorstore/pgvector
- test/java/org/springframework/ai/vectorstore/pgvector
- spring-ai-pinecone-store/src
- main/java/org/springframework/ai/vectorstore/pinecone
- test/java/org/springframework/ai/vectorstore/pinecone
- spring-ai-qdrant-store/src
- main/java/org/springframework/ai/vectorstore/qdrant
- test/java/org/springframework/ai/vectorstore/qdrant
- spring-ai-redis-store/src
- main/java/org/springframework/ai/vectorstore/redis
- test/java/org/springframework/ai/vectorstore/redis
- spring-ai-typesense-store/src
- main/java/org/springframework/ai/vectorstore/typesense
- test/java/org/springframework/ai/vectorstore/typesense
- spring-ai-weaviate-store/src
- main/java/org/springframework/ai/vectorstore/weaviate
- test/java/org/springframework/ai/vectorstore/weaviate
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
101 files changed
+382
-581
lines changedLines changed: 25 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
Lines changed: 7 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
43 | 48 | | |
44 | 49 | | |
45 | 50 | | |
| |||
71 | 76 | | |
72 | 77 | | |
73 | 78 | | |
74 | | - | |
| 79 | + | |
75 | 80 | | |
76 | 81 | | |
77 | 82 | | |
78 | 83 | | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | 84 | | |
Lines changed: 7 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
96 | | - | |
| 95 | + | |
97 | 96 | | |
98 | 97 | | |
99 | 98 | | |
| |||
106 | 105 | | |
107 | 106 | | |
108 | 107 | | |
109 | | - | |
110 | | - | |
| 108 | + | |
| 109 | + | |
111 | 110 | | |
112 | 111 | | |
113 | 112 | | |
| |||
297 | 296 | | |
298 | 297 | | |
299 | 298 | | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
300 | 303 | | |
301 | 304 | | |
302 | | - | |
303 | 305 | | |
304 | 306 | | |
305 | 307 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | 26 | | |
28 | 27 | | |
29 | 28 | | |
| |||
59 | 58 | | |
60 | 59 | | |
61 | 60 | | |
| 61 | + | |
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| 71 | + | |
71 | 72 | | |
72 | 73 | | |
73 | 74 | | |
| |||
77 | 78 | | |
78 | 79 | | |
79 | 80 | | |
| 81 | + | |
80 | 82 | | |
81 | 83 | | |
82 | 84 | | |
| |||
90 | 92 | | |
91 | 93 | | |
92 | 94 | | |
93 | | - | |
94 | | - | |
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | 48 | | |
50 | 49 | | |
51 | 50 | | |
| |||
59 | 58 | | |
60 | 59 | | |
61 | 60 | | |
62 | | - | |
63 | | - | |
| 61 | + | |
64 | 62 | | |
65 | 63 | | |
66 | 64 | | |
| |||
94 | 92 | | |
95 | 93 | | |
96 | 94 | | |
| 95 | + | |
97 | 96 | | |
98 | 97 | | |
99 | 98 | | |
| |||
107 | 106 | | |
108 | 107 | | |
109 | 108 | | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| |||
Lines changed: 1 addition & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
88 | | - | |
89 | | - | |
| 87 | + | |
90 | 88 | | |
91 | 89 | | |
92 | 90 | | |
| |||
Lines changed: 1 addition & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
76 | 75 | | |
77 | 76 | | |
78 | 77 | | |
| |||
Lines changed: 1 addition & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
90 | | - | |
91 | | - | |
| 89 | + | |
92 | 90 | | |
93 | 91 | | |
94 | 92 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
77 | | - | |
| 76 | + | |
78 | 77 | | |
79 | | - | |
80 | 78 | | |
81 | 79 | | |
82 | 80 | | |
| |||
0 commit comments