Spaces:
Running
Running
from open_webui.retrieval.vector.main import VectorDBBase | |
from open_webui.retrieval.vector.type import VectorType | |
from open_webui.config import VECTOR_DB, ENABLE_QDRANT_MULTITENANCY_MODE | |
class Vector: | |
def get_vector(vector_type: str) -> VectorDBBase: | |
""" | |
get vector db instance by vector type | |
""" | |
match vector_type: | |
case VectorType.MILVUS: | |
from open_webui.retrieval.vector.dbs.milvus import MilvusClient | |
return MilvusClient() | |
case VectorType.QDRANT: | |
if ENABLE_QDRANT_MULTITENANCY_MODE: | |
from open_webui.retrieval.vector.dbs.qdrant_multitenancy import ( | |
QdrantClient, | |
) | |
return QdrantClient() | |
else: | |
from open_webui.retrieval.vector.dbs.qdrant import QdrantClient | |
return QdrantClient() | |
case VectorType.PINECONE: | |
from open_webui.retrieval.vector.dbs.pinecone import PineconeClient | |
return PineconeClient() | |
case VectorType.OPENSEARCH: | |
from open_webui.retrieval.vector.dbs.opensearch import OpenSearchClient | |
return OpenSearchClient() | |
case VectorType.PGVECTOR: | |
from open_webui.retrieval.vector.dbs.pgvector import PgvectorClient | |
return PgvectorClient() | |
case VectorType.ELASTICSEARCH: | |
from open_webui.retrieval.vector.dbs.elasticsearch import ( | |
ElasticsearchClient, | |
) | |
return ElasticsearchClient() | |
case VectorType.CHROMA: | |
from open_webui.retrieval.vector.dbs.chroma import ChromaClient | |
return ChromaClient() | |
case _: | |
raise ValueError(f"Unsupported vector type: {vector_type}") | |
VECTOR_DB_CLIENT = Vector.get_vector(VECTOR_DB) | |