diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index d3f77d3472..210eafcb71 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -603,6 +603,7 @@ if VECTOR_DB == 'mariadb-vector': MILVUS_URI = os.getenv('MILVUS_URI', f'{DATA_DIR}/vector_db/milvus.db') MILVUS_DB = os.getenv('MILVUS_DB', 'default') MILVUS_TOKEN = os.getenv('MILVUS_TOKEN', None) +MILVUS_SERVER_PEM_PATH = os.getenv('MILVUS_SERVER_PEM_PATH', '') MILVUS_INDEX_TYPE = os.getenv('MILVUS_INDEX_TYPE', 'HNSW') MILVUS_METRIC_TYPE = os.getenv('MILVUS_METRIC_TYPE', 'COSINE') MILVUS_HNSW_M = int(os.getenv('MILVUS_HNSW_M', '16')) diff --git a/backend/open_webui/retrieval/vector/dbs/milvus.py b/backend/open_webui/retrieval/vector/dbs/milvus.py index 2eefb8f67f..b0787e145c 100644 --- a/backend/open_webui/retrieval/vector/dbs/milvus.py +++ b/backend/open_webui/retrieval/vector/dbs/milvus.py @@ -17,6 +17,7 @@ from open_webui.config import ( MILVUS_INDEX_TYPE, MILVUS_IVF_FLAT_NLIST, MILVUS_METRIC_TYPE, + MILVUS_SERVER_PEM_PATH, MILVUS_TOKEN, MILVUS_URI, ) @@ -244,9 +245,11 @@ class MilvusClient(VectorDBBase): def __init__(self): self.collection_prefix = 'open_webui' if MILVUS_TOKEN is None: - self.client = Client(uri=MILVUS_URI, db_name=MILVUS_DB) + self.client = Client(uri=MILVUS_URI, db_name=MILVUS_DB, server_pem_path=MILVUS_SERVER_PEM_PATH) else: - self.client = Client(uri=MILVUS_URI, db_name=MILVUS_DB, token=MILVUS_TOKEN) + self.client = Client( + uri=MILVUS_URI, db_name=MILVUS_DB, token=MILVUS_TOKEN, server_pem_path=MILVUS_SERVER_PEM_PATH + ) if ENABLE_DB_MIGRATIONS: collections = { collection_name_full.removesuffix(BM25_STAGING_SUFFIX) diff --git a/backend/open_webui/retrieval/vector/dbs/milvus_multitenancy.py b/backend/open_webui/retrieval/vector/dbs/milvus_multitenancy.py index b6306b88a5..cca6a44415 100644 --- a/backend/open_webui/retrieval/vector/dbs/milvus_multitenancy.py +++ b/backend/open_webui/retrieval/vector/dbs/milvus_multitenancy.py @@ -14,6 +14,7 @@ from open_webui.config import ( MILVUS_INDEX_TYPE, MILVUS_IVF_FLAT_NLIST, MILVUS_METRIC_TYPE, + MILVUS_SERVER_PEM_PATH, MILVUS_TOKEN, MILVUS_URI, ) @@ -76,7 +77,9 @@ class MilvusClient(VectorDBBase): def __init__(self): # Milvus collection names can only contain numbers, letters, and underscores. self.collection_prefix = MILVUS_COLLECTION_PREFIX.replace('-', '_') - self.client = Client(uri=MILVUS_URI, token=MILVUS_TOKEN, db_name=MILVUS_DB) + self.client = Client( + uri=MILVUS_URI, token=MILVUS_TOKEN, db_name=MILVUS_DB, server_pem_path=MILVUS_SERVER_PEM_PATH + ) # Main collection types for multi-tenancy self.MEMORY_COLLECTION = f'{self.collection_prefix}_memories'