| from open_webui.config import ( |
| ENABLE_MILVUS_MULTITENANCY_MODE, |
| ENABLE_QDRANT_MULTITENANCY_MODE, |
| VECTOR_DB, |
| ) |
| from open_webui.retrieval.vector.main import VectorDBBase |
| from open_webui.retrieval.vector.type import VectorType |
|
|
|
|
| class Vector: |
| @staticmethod |
| def get_vector(vector_type: str) -> VectorDBBase: |
| """ |
| get vector db instance by vector type |
| """ |
| match vector_type: |
| case VectorType.MILVUS: |
| if ENABLE_MILVUS_MULTITENANCY_MODE: |
| from open_webui.retrieval.vector.dbs.milvus_multitenancy import ( |
| MilvusClient, |
| ) |
|
|
| return MilvusClient() |
| else: |
| 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.S3VECTOR: |
| from open_webui.retrieval.vector.dbs.s3vector import S3VectorClient |
|
|
| return S3VectorClient() |
| 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.OPENGAUSS: |
| from open_webui.retrieval.vector.dbs.opengauss import OpenGaussClient |
|
|
| return OpenGaussClient() |
| case VectorType.MARIADB_VECTOR: |
| from open_webui.retrieval.vector.dbs.mariadb_vector import ( |
| MariaDBVectorClient, |
| ) |
|
|
| return MariaDBVectorClient() |
| 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 VectorType.ORACLE23AI: |
| from open_webui.retrieval.vector.dbs.oracle23ai import Oracle23aiClient |
|
|
| return Oracle23aiClient() |
| case VectorType.WEAVIATE: |
| from open_webui.retrieval.vector.dbs.weaviate import WeaviateClient |
|
|
| return WeaviateClient() |
| case VectorType.VALKEY: |
| from open_webui.retrieval.vector.dbs.valkey import ValkeyClient |
|
|
| return ValkeyClient() |
| case _: |
| raise ValueError(f'Unsupported vector type: {vector_type}') |
|
|
|
|
| VECTOR_DB_CLIENT = Vector.get_vector(VECTOR_DB) |
|
|