فهرست منبع

feat: SAFE_MODE

Timothy J. Baek 10 ماه پیش
والد
کامیت
2eb15ea1fc
3فایلهای تغییر یافته به همراه25 افزوده شده و 1 حذف شده
  1. 13 0
      backend/apps/webui/models/functions.py
  2. 6 0
      backend/config.py
  3. 6 1
      backend/main.py

+ 13 - 0
backend/apps/webui/models/functions.py

@@ -221,6 +221,19 @@ class FunctionsTable:
         except:
             return None
 
+    def deactivate_all_functions(self) -> Optional[bool]:
+        try:
+            query = Function.update(
+                **{"is_active": False},
+                updated_at=int(time.time()),
+            )
+
+            query.execute()
+
+            return True
+        except:
+            return None
+
     def delete_function_by_id(self, id: str) -> bool:
         try:
             query = Function.delete().where((Function.id == id))

+ 6 - 0
backend/config.py

@@ -167,6 +167,12 @@ for version in soup.find_all("h2"):
 CHANGELOG = changelog_json
 
 
+####################################
+# SAFE_MODE
+####################################
+
+SAFE_MODE = os.environ.get("SAFE_MODE", "false").lower() == "true"
+
 ####################################
 # WEBUI_BUILD_HASH
 ####################################

+ 6 - 1
backend/main.py

@@ -55,7 +55,6 @@ from apps.webui.models.functions import Functions
 
 from apps.webui.utils import load_toolkit_module_by_id, load_function_module_by_id
 
-
 from utils.utils import (
     get_admin_user,
     get_verified_user,
@@ -102,10 +101,16 @@ from config import (
     SEARCH_QUERY_GENERATION_PROMPT_TEMPLATE,
     SEARCH_QUERY_PROMPT_LENGTH_THRESHOLD,
     TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE,
+    SAFE_MODE,
     AppConfig,
 )
 from constants import ERROR_MESSAGES
 
+if SAFE_MODE:
+    print("SAFE MODE ENABLED")
+    Functions.deactivate_all_functions()
+
+
 logging.basicConfig(stream=sys.stdout, level=GLOBAL_LOG_LEVEL)
 log = logging.getLogger(__name__)
 log.setLevel(SRC_LOG_LEVELS["MAIN"])