Skip to content

Commit 93fa2bf

Browse files
tzolovmarkpollack
authored andcommittedAug 20, 2024
Add observability support to existing vector stores
Add observability support to: - Cassandra - Chroma - Elasticsearch - Milvus - Neo4j - OpenSearch - Qdrant - Redis - Typesense - Weaviate - Pinecone - Oracle - Gemifire - MongoDB - HanaDB Add autoconfiguration obsrvability for the above vector stores. Add integration tests for all vector stores.
1 parent 3b7522b commit 93fa2bf

File tree

98 files changed

+4643
-300
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+4643
-300
lines changed
 

‎spring-ai-core/src/main/java/org/springframework/ai/observation/conventions/VectorStoreProvider.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,23 @@ public enum VectorStoreProvider {
2323

2424
// @formatter:off
2525
PG_VECTOR("pg_vector"),
26-
SIMPLE_VECTOR_STORE("simple_vector_store");
26+
AZURE("azure"),
27+
CASSANDRA("cassandra"),
28+
CHROMA("chroma"),
29+
ELASTICSEARCH("elasticsearch"),
30+
MILVUS("milvus"),
31+
NEO4J("neo4j"),
32+
OPENSEARCH("opensearch"),
33+
QDRANT("qdrant"),
34+
REDIS("redis"),
35+
TYPESENSE("typesense"),
36+
WEAVIATE("weaviate"),
37+
PINECONE("pinecone"),
38+
ORACLE("oracle"),
39+
MONGODB("mongodb"),
40+
GEMFIRE("gemfire"),
41+
HANA("hana"),
42+
SIMPLE("simple");
2743

2844
// @formatter:on
2945
private final String value;

‎spring-ai-core/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStore.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@
4040
import org.springframework.ai.observation.conventions.VectorStoreSimilarityMetric;
4141
import org.springframework.ai.vectorstore.observation.AbstractObservationVectorStore;
4242
import org.springframework.ai.vectorstore.observation.VectorStoreObservationContext;
43+
import org.springframework.ai.vectorstore.observation.VectorStoreObservationConvention;
4344
import org.springframework.core.io.Resource;
4445

4546
import com.fasterxml.jackson.core.JsonProcessingException;
4647
import com.fasterxml.jackson.core.type.TypeReference;
4748
import com.fasterxml.jackson.databind.ObjectMapper;
4849
import com.fasterxml.jackson.databind.ObjectWriter;
4950

51+
import io.micrometer.observation.ObservationRegistry;
52+
5053
/**
5154
* SimpleVectorStore is a simple implementation of the VectorStore interface.
5255
*
@@ -71,6 +74,14 @@ public class SimpleVectorStore extends AbstractObservationVectorStore {
7174
protected EmbeddingModel embeddingModel;
7275

7376
public SimpleVectorStore(EmbeddingModel embeddingModel) {
77+
this(embeddingModel, ObservationRegistry.NOOP, null);
78+
}
79+
80+
public SimpleVectorStore(EmbeddingModel embeddingModel, ObservationRegistry observationRegistry,
81+
VectorStoreObservationConvention customObservationConvention) {
82+
83+
super(observationRegistry, customObservationConvention);
84+
7485
Objects.requireNonNull(embeddingModel, "EmbeddingModel must not be null");
7586
this.embeddingModel = embeddingModel;
7687
}
@@ -265,7 +276,7 @@ public static float norm(float[] vector) {
265276
@Override
266277
public VectorStoreObservationContext.Builder createObservationContextBuilder(String operationName) {
267278

268-
return VectorStoreObservationContext.builder(VectorStoreProvider.SIMPLE_VECTOR_STORE.value(), operationName)
279+
return VectorStoreObservationContext.builder(VectorStoreProvider.SIMPLE.value(), operationName)
269280
.withDimensions(this.embeddingModel.dimensions())
270281
.withCollectionName("in-memory-map")
271282
.withSimilarityMetric(VectorStoreSimilarityMetric.COSINE.value());

0 commit comments

Comments
 (0)