SiddhJagani commited on
Commit
a701d9c
·
verified ·
1 Parent(s): 5e80b03

Update env.py

Browse files
Files changed (1) hide show
  1. env.py +71 -3
env.py CHANGED
@@ -8,6 +8,8 @@ import shutil
8
  from uuid import uuid4
9
  from pathlib import Path
10
  from cryptography.hazmat.primitives import serialization
 
 
11
 
12
  import markdown
13
  from bs4 import BeautifulSoup
@@ -111,7 +113,7 @@ for source in log_sources:
111
  log.setLevel(SRC_LOG_LEVELS["CONFIG"])
112
 
113
  WEBUI_NAME = os.environ.get("WEBUI_NAME", "UltimateGPT")
114
- if WEBUI_NAME != "UltimateGPT":
115
  WEBUI_NAME += "UltimateGPT"
116
 
117
  WEBUI_FAVICON_URL = "https://openwebui.com/favicon.png"
@@ -135,6 +137,9 @@ else:
135
  PACKAGE_DATA = {"version": "0.0.0"}
136
 
137
  VERSION = PACKAGE_DATA["version"]
 
 
 
138
  INSTANCE_ID = os.environ.get("INSTANCE_ID", str(uuid4()))
139
 
140
 
@@ -426,6 +431,17 @@ WEBUI_AUTH_TRUSTED_GROUPS_HEADER = os.environ.get(
426
  )
427
 
428
 
 
 
 
 
 
 
 
 
 
 
 
429
  BYPASS_MODEL_ACCESS_CONTROL = (
430
  os.environ.get("BYPASS_MODEL_ACCESS_CONTROL", "False").lower() == "true"
431
  )
@@ -493,7 +509,10 @@ OAUTH_SESSION_TOKEN_ENCRYPTION_KEY = os.environ.get(
493
  # SCIM Configuration
494
  ####################################
495
 
496
- SCIM_ENABLED = os.environ.get("SCIM_ENABLED", "False").lower() == "true"
 
 
 
497
  SCIM_TOKEN = os.environ.get("SCIM_TOKEN", "")
498
 
499
  ####################################
@@ -541,6 +560,10 @@ else:
541
  # CHAT
542
  ####################################
543
 
 
 
 
 
544
  CHAT_RESPONSE_STREAM_DELTA_CHUNK_SIZE = os.environ.get(
545
  "CHAT_RESPONSE_STREAM_DELTA_CHUNK_SIZE", "1"
546
  )
@@ -569,6 +592,21 @@ else:
569
  CHAT_RESPONSE_MAX_TOOL_CALL_RETRIES = 30
570
 
571
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
572
  ####################################
573
  # WEBSOCKET SUPPORT
574
  ####################################
@@ -580,6 +618,17 @@ ENABLE_WEBSOCKET_SUPPORT = (
580
 
581
  WEBSOCKET_MANAGER = os.environ.get("WEBSOCKET_MANAGER", "")
582
 
 
 
 
 
 
 
 
 
 
 
 
583
  WEBSOCKET_REDIS_URL = os.environ.get("WEBSOCKET_REDIS_URL", REDIS_URL)
584
  WEBSOCKET_REDIS_CLUSTER = (
585
  os.environ.get("WEBSOCKET_REDIS_CLUSTER", str(REDIS_CLUSTER)).lower() == "true"
@@ -594,6 +643,23 @@ except ValueError:
594
 
595
  WEBSOCKET_SENTINEL_HOSTS = os.environ.get("WEBSOCKET_SENTINEL_HOSTS", "")
596
  WEBSOCKET_SENTINEL_PORT = os.environ.get("WEBSOCKET_SENTINEL_PORT", "26379")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
597
 
598
 
599
  AIOHTTP_CLIENT_TIMEOUT = os.environ.get("AIOHTTP_CLIENT_TIMEOUT", "")
@@ -706,7 +772,9 @@ if OFFLINE_MODE:
706
  # AUDIT LOGGING
707
  ####################################
708
  # Where to store log file
709
- AUDIT_LOGS_FILE_PATH = f"{DATA_DIR}/audit.log"
 
 
710
  # Maximum size of a file before rotating into a new log file
711
  AUDIT_LOG_FILE_ROTATION_SIZE = os.getenv("AUDIT_LOG_FILE_ROTATION_SIZE", "10MB")
712
 
 
8
  from uuid import uuid4
9
  from pathlib import Path
10
  from cryptography.hazmat.primitives import serialization
11
+ import re
12
+
13
 
14
  import markdown
15
  from bs4 import BeautifulSoup
 
113
  log.setLevel(SRC_LOG_LEVELS["CONFIG"])
114
 
115
  WEBUI_NAME = os.environ.get("WEBUI_NAME", "UltimateGPT")
116
+ if WEBUI_NAME != "UlitimateGPT":
117
  WEBUI_NAME += "UltimateGPT"
118
 
119
  WEBUI_FAVICON_URL = "https://openwebui.com/favicon.png"
 
137
  PACKAGE_DATA = {"version": "0.0.0"}
138
 
139
  VERSION = PACKAGE_DATA["version"]
140
+
141
+
142
+ DEPLOYMENT_ID = os.environ.get("DEPLOYMENT_ID", "")
143
  INSTANCE_ID = os.environ.get("INSTANCE_ID", str(uuid4()))
144
 
145
 
 
431
  )
432
 
433
 
434
+ ENABLE_PASSWORD_VALIDATION = (
435
+ os.environ.get("ENABLE_PASSWORD_VALIDATION", "False").lower() == "true"
436
+ )
437
+ PASSWORD_VALIDATION_REGEX_PATTERN = os.environ.get(
438
+ "PASSWORD_VALIDATION_REGEX_PATTERN",
439
+ "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\w\s]).{8,}$",
440
+ )
441
+
442
+ PASSWORD_VALIDATION_REGEX_PATTERN = re.compile(PASSWORD_VALIDATION_REGEX_PATTERN)
443
+
444
+
445
  BYPASS_MODEL_ACCESS_CONTROL = (
446
  os.environ.get("BYPASS_MODEL_ACCESS_CONTROL", "False").lower() == "true"
447
  )
 
509
  # SCIM Configuration
510
  ####################################
511
 
512
+ ENABLE_SCIM = (
513
+ os.environ.get("ENABLE_SCIM", os.environ.get("SCIM_ENABLED", "False")).lower()
514
+ == "true"
515
+ )
516
  SCIM_TOKEN = os.environ.get("SCIM_TOKEN", "")
517
 
518
  ####################################
 
560
  # CHAT
561
  ####################################
562
 
563
+ ENABLE_CHAT_RESPONSE_BASE64_IMAGE_URL_CONVERSION = (
564
+ os.environ.get("REPLACE_IMAGE_URLS_IN_CHAT_RESPONSE", "False").lower() == "true"
565
+ )
566
+
567
  CHAT_RESPONSE_STREAM_DELTA_CHUNK_SIZE = os.environ.get(
568
  "CHAT_RESPONSE_STREAM_DELTA_CHUNK_SIZE", "1"
569
  )
 
592
  CHAT_RESPONSE_MAX_TOOL_CALL_RETRIES = 30
593
 
594
 
595
+ CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = os.environ.get(
596
+ "CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE", ""
597
+ )
598
+
599
+ if CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE == "":
600
+ CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = None
601
+ else:
602
+ try:
603
+ CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = int(
604
+ CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE
605
+ )
606
+ except Exception:
607
+ CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = None
608
+
609
+
610
  ####################################
611
  # WEBSOCKET SUPPORT
612
  ####################################
 
618
 
619
  WEBSOCKET_MANAGER = os.environ.get("WEBSOCKET_MANAGER", "")
620
 
621
+ WEBSOCKET_REDIS_OPTIONS = os.environ.get("WEBSOCKET_REDIS_OPTIONS", "")
622
+ if WEBSOCKET_REDIS_OPTIONS == "":
623
+ log.debug("No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None")
624
+ WEBSOCKET_REDIS_OPTIONS = None
625
+ else:
626
+ try:
627
+ WEBSOCKET_REDIS_OPTIONS = json.loads(WEBSOCKET_REDIS_OPTIONS)
628
+ except Exception:
629
+ log.warning("Invalid WEBSOCKET_REDIS_OPTIONS, defaulting to None")
630
+ WEBSOCKET_REDIS_OPTIONS = None
631
+
632
  WEBSOCKET_REDIS_URL = os.environ.get("WEBSOCKET_REDIS_URL", REDIS_URL)
633
  WEBSOCKET_REDIS_CLUSTER = (
634
  os.environ.get("WEBSOCKET_REDIS_CLUSTER", str(REDIS_CLUSTER)).lower() == "true"
 
643
 
644
  WEBSOCKET_SENTINEL_HOSTS = os.environ.get("WEBSOCKET_SENTINEL_HOSTS", "")
645
  WEBSOCKET_SENTINEL_PORT = os.environ.get("WEBSOCKET_SENTINEL_PORT", "26379")
646
+ WEBSOCKET_SERVER_LOGGING = (
647
+ os.environ.get("WEBSOCKET_SERVER_LOGGING", "False").lower() == "true"
648
+ )
649
+ WEBSOCKET_SERVER_ENGINEIO_LOGGING = (
650
+ os.environ.get("WEBSOCKET_SERVER_LOGGING", "False").lower() == "true"
651
+ )
652
+ WEBSOCKET_SERVER_PING_TIMEOUT = os.environ.get("WEBSOCKET_SERVER_PING_TIMEOUT", "20")
653
+ try:
654
+ WEBSOCKET_SERVER_PING_TIMEOUT = int(WEBSOCKET_SERVER_PING_TIMEOUT)
655
+ except ValueError:
656
+ WEBSOCKET_SERVER_PING_TIMEOUT = 20
657
+
658
+ WEBSOCKET_SERVER_PING_INTERVAL = os.environ.get("WEBSOCKET_SERVER_PING_INTERVAL", "25")
659
+ try:
660
+ WEBSOCKET_SERVER_PING_INTERVAL = int(WEBSOCKET_SERVER_PING_INTERVAL)
661
+ except ValueError:
662
+ WEBSOCKET_SERVER_PING_INTERVAL = 25
663
 
664
 
665
  AIOHTTP_CLIENT_TIMEOUT = os.environ.get("AIOHTTP_CLIENT_TIMEOUT", "")
 
772
  # AUDIT LOGGING
773
  ####################################
774
  # Where to store log file
775
+ # Defaults to the DATA_DIR/audit.log. To set AUDIT_LOGS_FILE_PATH you need to
776
+ # provide the whole path, like: /app/audit.log
777
+ AUDIT_LOGS_FILE_PATH = os.getenv("AUDIT_LOGS_FILE_PATH", f"{DATA_DIR}/audit.log")
778
  # Maximum size of a file before rotating into a new log file
779
  AUDIT_LOG_FILE_ROTATION_SIZE = os.getenv("AUDIT_LOG_FILE_ROTATION_SIZE", "10MB")
780