diff --git a/backend/open_webui/retrieval/vector/dbs/disabled.py b/backend/open_webui/retrieval/vector/dbs/disabled.py new file mode 100644 index 0000000..7e1ab23 --- /dev/null +++ b/backend/open_webui/retrieval/vector/dbs/disabled.py @@ -0,0 +1,50 @@ +from typing import Dict, List, Optional, Union + +from open_webui.retrieval.vector.main import ( + GetResult, + SearchResult, + VectorDBBase, + VectorItem, +) + + +class DisabledVectorClient(VectorDBBase): + """No-op vector backend used when all RAG surfaces are disabled.""" + + def has_collection(self, collection_name: str) -> bool: + return False + + def delete_collection(self, collection_name: str) -> None: + return None + + def insert(self, collection_name: str, items: List[VectorItem]) -> None: + raise RuntimeError("Vector storage is disabled") + + def upsert(self, collection_name: str, items: List[VectorItem]) -> None: + raise RuntimeError("Vector storage is disabled") + + def search( + self, + collection_name: str, + vectors: List[List[Union[float, int]]], + filter: Optional[Dict] = None, + limit: int = 10, + ) -> Optional[SearchResult]: + return None + + def query( + self, + collection_name: str, + filter: Dict, + limit: Optional[int] = None, + ) -> Optional[GetResult]: + return None + + def get(self, collection_name: str) -> Optional[GetResult]: + return None + + def delete(self, collection_name: str, ids=None, filter=None) -> None: + return None + + def reset(self) -> None: + return None diff --git a/backend/open_webui/retrieval/vector/factory.py b/backend/open_webui/retrieval/vector/factory.py index af10c5d..35c3266 100644 --- a/backend/open_webui/retrieval/vector/factory.py +++ b/backend/open_webui/retrieval/vector/factory.py @@ -74,6 +74,10 @@ class Vector: case VectorType.CHROMA: from open_webui.retrieval.vector.dbs.chroma import ChromaClient return ChromaClient() + case 'disabled': + from open_webui.retrieval.vector.dbs.disabled import DisabledVectorClient + + return DisabledVectorClient() case VectorType.ORACLE23AI: from open_webui.retrieval.vector.dbs.oracle23ai import Oracle23aiClient