Browse Source

Merge pull request #12868 from athoik/dev

feat: add QDRANT_ON_DISK configuration option for Qdrant integration
Tim Jaeryang Baek 2 months ago
parent
commit
e5cbef0baa
2 changed files with 4 additions and 2 deletions
  1. 1 0
      backend/open_webui/config.py
  2. 3 2
      backend/open_webui/retrieval/vector/dbs/qdrant.py

+ 1 - 0
backend/open_webui/config.py

@@ -1693,6 +1693,7 @@ MILVUS_TOKEN = os.environ.get("MILVUS_TOKEN", None)
 # Qdrant
 QDRANT_URI = os.environ.get("QDRANT_URI", None)
 QDRANT_API_KEY = os.environ.get("QDRANT_API_KEY", None)
+QDRANT_ON_DISK = os.environ.get("QDRANT_ON_DISK", "false").lower() == "true"
 
 # OpenSearch
 OPENSEARCH_URI = os.environ.get("OPENSEARCH_URI", "https://localhost:9200")

+ 3 - 2
backend/open_webui/retrieval/vector/dbs/qdrant.py

@@ -6,7 +6,7 @@ from qdrant_client.http.models import PointStruct
 from qdrant_client.models import models
 
 from open_webui.retrieval.vector.main import VectorItem, SearchResult, GetResult
-from open_webui.config import QDRANT_URI, QDRANT_API_KEY
+from open_webui.config import QDRANT_URI, QDRANT_API_KEY, QDRANT_ON_DISK
 from open_webui.env import SRC_LOG_LEVELS
 
 NO_LIMIT = 999999999
@@ -20,6 +20,7 @@ class QdrantClient:
         self.collection_prefix = "open-webui"
         self.QDRANT_URI = QDRANT_URI
         self.QDRANT_API_KEY = QDRANT_API_KEY
+        self.QDRANT_ON_DISK = QDRANT_ON_DISK
         self.client = (
             Qclient(url=self.QDRANT_URI, api_key=self.QDRANT_API_KEY)
             if self.QDRANT_URI
@@ -50,7 +51,7 @@ class QdrantClient:
         self.client.create_collection(
             collection_name=collection_name_with_prefix,
             vectors_config=models.VectorParams(
-                size=dimension, distance=models.Distance.COSINE
+                size=dimension, distance=models.Distance.COSINE, on_disk=self.QDRANT_ON_DISK
             ),
         )