Files
zk-data-agent/docker/web/openwebui-no-rag.patch
2026-07-26 06:52:12 +08:00

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