72 lines
2.3 KiB
Diff
72 lines
2.3 KiB
Diff
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
|