Skip to content

Commit 20f0b02

Browse files
authored
Merge pull request open-webui#10755 from softue/check-if-enable-ldap-chroma
Conditional import of ldap3 and chromadb
2 parents bef7a53 + 2298bfb commit 20f0b02

File tree

2 files changed

+23
-19
lines changed

2 files changed

+23
-19
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
@@ -1501,22 +1500,24 @@ class BannerModel(BaseModel):
15011500
VECTOR_DB = os.environ.get("VECTOR_DB", "chroma")
15021501

15031502
# Chroma
1504-
CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db"
1505-
CHROMA_TENANT = os.environ.get("CHROMA_TENANT", chromadb.DEFAULT_TENANT)
1506-
CHROMA_DATABASE = os.environ.get("CHROMA_DATABASE", chromadb.DEFAULT_DATABASE)
1507-
CHROMA_HTTP_HOST = os.environ.get("CHROMA_HTTP_HOST", "")
1508-
CHROMA_HTTP_PORT = int(os.environ.get("CHROMA_HTTP_PORT", "8000"))
1509-
CHROMA_CLIENT_AUTH_PROVIDER = os.environ.get("CHROMA_CLIENT_AUTH_PROVIDER", "")
1510-
CHROMA_CLIENT_AUTH_CREDENTIALS = os.environ.get("CHROMA_CLIENT_AUTH_CREDENTIALS", "")
1511-
# Comma-separated list of header=value pairs
1512-
CHROMA_HTTP_HEADERS = os.environ.get("CHROMA_HTTP_HEADERS", "")
1513-
if CHROMA_HTTP_HEADERS:
1514-
CHROMA_HTTP_HEADERS = dict(
1515-
[pair.split("=") for pair in CHROMA_HTTP_HEADERS.split(",")]
1516-
)
1517-
else:
1518-
CHROMA_HTTP_HEADERS = None
1519-
CHROMA_HTTP_SSL = os.environ.get("CHROMA_HTTP_SSL", "false").lower() == "true"
1503+
if VECTOR_DB == "chroma":
1504+
import chromadb
1505+
CHROMA_DATA_PATH = f"{DATA_DIR}/vector_db"
1506+
CHROMA_TENANT = os.environ.get("CHROMA_TENANT", chromadb.DEFAULT_TENANT)
1507+
CHROMA_DATABASE = os.environ.get("CHROMA_DATABASE", chromadb.DEFAULT_DATABASE)
1508+
CHROMA_HTTP_HOST = os.environ.get("CHROMA_HTTP_HOST", "")
1509+
CHROMA_HTTP_PORT = int(os.environ.get("CHROMA_HTTP_PORT", "8000"))
1510+
CHROMA_CLIENT_AUTH_PROVIDER = os.environ.get("CHROMA_CLIENT_AUTH_PROVIDER", "")
1511+
CHROMA_CLIENT_AUTH_CREDENTIALS = os.environ.get("CHROMA_CLIENT_AUTH_CREDENTIALS", "")
1512+
# Comma-separated list of header=value pairs
1513+
CHROMA_HTTP_HEADERS = os.environ.get("CHROMA_HTTP_HEADERS", "")
1514+
if CHROMA_HTTP_HEADERS:
1515+
CHROMA_HTTP_HEADERS = dict(
1516+
[pair.split("=") for pair in CHROMA_HTTP_HEADERS.split(",")]
1517+
)
1518+
else:
1519+
CHROMA_HTTP_HEADERS = None
1520+
CHROMA_HTTP_SSL = os.environ.get("CHROMA_HTTP_SSL", "false").lower() == "true"
15201521
# 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)
15211522

15221523
# Milvus

backend/open_webui/routers/auths.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
from open_webui.config import (
3535
OPENID_PROVIDER_URL,
3636
ENABLE_OAUTH_SIGNUP,
37+
ENABLE_LDAP
3738
)
3839
from pydantic import BaseModel
3940
from open_webui.utils.misc import parse_duration, validate_email_format
@@ -51,8 +52,10 @@
5152
from typing import Optional, List
5253

5354
from ssl import CERT_REQUIRED, PROTOCOL_TLS
54-
from ldap3 import Server, Connection, NONE, Tls
55-
from ldap3.utils.conv import escape_filter_chars
55+
56+
if ENABLE_LDAP.value:
57+
from ldap3 import Server, Connection, NONE, Tls
58+
from ldap3.utils.conv import escape_filter_chars
5659

5760
router = APIRouter()
5861

0 commit comments

Comments
 (0)