Skip to content

Commit b52a7e3

Browse files
committed
refac: conditional import of chromadb
1 parent 6fedd72 commit b52a7e3

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

backend/open_webui/config.py

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from typing import Generic, Optional, TypeVar
1010
from urllib.parse import urlparse
1111

12-
import chromadb
1312
import requests
1413
from pydantic import BaseModel
1514
from sqlalchemy import JSON, Column, DateTime, Integer, func
@@ -1497,22 +1496,24 @@ class BannerModel(BaseModel):
14971496
VECTOR_DB = os.environ.get("VECTOR_DB", "chroma")
14981497

14991498
# Chroma
1500-
CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db"
1501-
CHROMA_TENANT = os.environ.get("CHROMA_TENANT", chromadb.DEFAULT_TENANT)
1502-
CHROMA_DATABASE = os.environ.get("CHROMA_DATABASE", chromadb.DEFAULT_DATABASE)
1503-
CHROMA_HTTP_HOST = os.environ.get("CHROMA_HTTP_HOST", "")
1504-
CHROMA_HTTP_PORT = int(os.environ.get("CHROMA_HTTP_PORT", "8000"))
1505-
CHROMA_CLIENT_AUTH_PROVIDER = os.environ.get("CHROMA_CLIENT_AUTH_PROVIDER", "")
1506-
CHROMA_CLIENT_AUTH_CREDENTIALS = os.environ.get("CHROMA_CLIENT_AUTH_CREDENTIALS", "")
1507-
# Comma-separated list of header=value pairs
1508-
CHROMA_HTTP_HEADERS = os.environ.get("CHROMA_HTTP_HEADERS", "")
1509-
if CHROMA_HTTP_HEADERS:
1510-
CHROMA_HTTP_HEADERS = dict(
1511-
[pair.split("=") for pair in CHROMA_HTTP_HEADERS.split(",")]
1512-
)
1513-
else:
1514-
CHROMA_HTTP_HEADERS = None
1515-
CHROMA_HTTP_SSL = os.environ.get("CHROMA_HTTP_SSL", "false").lower() == "true"
1499+
if VECTOR_DB == "chroma":
1500+
import chromadb
1501+
CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db"
1502+
CHROMA_TENANT = os.environ.get("CHROMA_TENANT", chromadb.DEFAULT_TENANT)
1503+
CHROMA_DATABASE = os.environ.get("CHROMA_DATABASE", chromadb.DEFAULT_DATABASE)
1504+
CHROMA_HTTP_HOST = os.environ.get("CHROMA_HTTP_HOST", "")
1505+
CHROMA_HTTP_PORT = int(os.environ.get("CHROMA_HTTP_PORT", "8000"))
1506+
CHROMA_CLIENT_AUTH_PROVIDER = os.environ.get("CHROMA_CLIENT_AUTH_PROVIDER", "")
1507+
CHROMA_CLIENT_AUTH_CREDENTIALS = os.environ.get("CHROMA_CLIENT_AUTH_CREDENTIALS", "")
1508+
# Comma-separated list of header=value pairs
1509+
CHROMA_HTTP_HEADERS = os.environ.get("CHROMA_HTTP_HEADERS", "")
1510+
if CHROMA_HTTP_HEADERS:
1511+
CHROMA_HTTP_HEADERS = dict(
1512+
[pair.split("=") for pair in CHROMA_HTTP_HEADERS.split(",")]
1513+
)
1514+
else:
1515+
CHROMA_HTTP_HEADERS = None
1516+
CHROMA_HTTP_SSL = os.environ.get("CHROMA_HTTP_SSL", "false").lower() == "true"
15161517
# this uses the model defined in the Dockerfile ENV variable. If you dont use docker or docker based deployments such as k8s, the default embedding model will be used (sentence-transformers/all-MiniLM-L6-v2)
15171518

15181519
# Milvus

0 commit comments

Comments
 (0)