12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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:
- @staticmethod
- 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)
|