-
Notifications
You must be signed in to change notification settings - Fork 60
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Introduce a vector storage abstraction interface for the project. (Currently we only support faiss
as the embedding engine)
The first step will focus on implementing encapsulated support for one standalone vector database (e.g., Qdrant, Chroma, or Milvus). This interface aims to abstract the underlying vector database, allowing for smooth future expansion to support other backends such as.
It should also enable easy and quick switching between different implementations to handle growing data volumes and more complex application scenarios, while maintaining a lightweight and simple interface.
Could refer:
Let LLM 🤖 generate a simple diagram, where faiss is already built-in, for general reference only (no need to copy it:)
classDiagram
direction LR
class Application {
+useVectorStore()
}
class VectorStoreInterface {
<<Interface>>
+add_vectors(vectors, ids)
+search(query_vector, k)
+delete_vectors(ids)
+update_vectors(vectors, ids)
}
class FaissVectorStore {
+add_vectors(vectors, ids)
+search(query_vector, k)
+delete_vectors(ids)
+update_vectors(vectors, ids)
}
class QdrantVectorStore {
<<Future>>
+add_vectors(vectors, ids)
+search(query_vector, k)
+delete_vectors(ids)
+update_vectors(vectors, ids)
}
class ChromaVectorStore {
<<Future>>
+add_vectors(vectors, ids)
+search(query_vector, k)
+delete_vectors(ids)
+update_vectors(vectors, ids)
}
class MilvusVectorStore {
<<Future>>
+add_vectors(vectors, ids)
+search(query_vector, k)
+delete_vectors(ids)
+update_vectors(vectors, ids)
}
Application --> VectorStoreInterface : uses
VectorStoreInterface <|-- FaissVectorStore : implements (Initial)
VectorStoreInterface <|-- QdrantVectorStore : implements
VectorStoreInterface <|-- ChromaVectorStore : implements
VectorStoreInterface <|-- MilvusVectorStore : implements
note for FaissVectorStore "第一阶段实现"
dosubot
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request