Timothy Jaeryang Baek 1 місяць тому
батько
коміт
ccd2a0be5b
2 змінених файлів з 13 додано та 16 видалено
  1. 5 10
      backend/open_webui/config.py
  2. 8 6
      backend/open_webui/utils/middleware.py

+ 5 - 10
backend/open_webui/config.py

@@ -1857,16 +1857,11 @@ CODE_INTERPRETER_JUPYTER_TIMEOUT = PersistentConfig(
     ),
 )
 
-CODE_INTERPRETER_BLACKLISTED_MODULES = PersistentConfig(
-    "CODE_INTERPRETER_BLACKLISTED_MODULES",
-    "code_interpreter.blacklisted_modules",
-    [
-        library.strip()
-        for library in os.environ.get("CODE_INTERPRETER_BLACKLISTED_MODULES", "").split(",")
-        if library.strip()
-    ],
-)
-
+CODE_INTERPRETER_BLOCKED_MODULES = [
+    library.strip()
+    for library in os.environ.get("CODE_INTERPRETER_BLOCKED_MODULES", "").split(",")
+    if library.strip()
+]
 
 DEFAULT_CODE_INTERPRETER_PROMPT = """
 #### Tools Available

+ 8 - 6
backend/open_webui/utils/middleware.py

@@ -92,7 +92,7 @@ from open_webui.config import (
     CACHE_DIR,
     DEFAULT_TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE,
     DEFAULT_CODE_INTERPRETER_PROMPT,
-    CODE_INTERPRETER_BLACKLISTED_MODULES,
+    CODE_INTERPRETER_BLOCKED_MODULES,
 )
 from open_webui.env import (
     SRC_LOG_LEVELS,
@@ -2371,15 +2371,16 @@ async def process_chat_response(
                         try:
                             if content_blocks[-1]["attributes"].get("type") == "code":
                                 code = content_blocks[-1]["content"]
-                                if CODE_INTERPRETER_BLACKLISTED_MODULES:
-                                    blocking_code = textwrap.dedent(f"""
+                                if CODE_INTERPRETER_BLOCKED_MODULES:
+                                    blocking_code = textwrap.dedent(
+                                        f"""
                                         import builtins
 
-                                        BLACKLISTED_MODULES = {CODE_INTERPRETER_BLACKLISTED_MODULES}
+                                        BLOCKED_MODULES = {CODE_INTERPRETER_BLOCKED_MODULES}
 
                                         _real_import = builtins.__import__
                                         def restricted_import(name, globals=None, locals=None, fromlist=(), level=0):
-                                            if name.split('.')[0] in BLACKLISTED_MODULES:
+                                            if name.split('.')[0] in BLOCKED_MODULES:
                                                 importer_name = globals.get('__name__') if globals else None
                                                 if importer_name == '__main__':
                                                     raise ImportError(
@@ -2388,7 +2389,8 @@ async def process_chat_response(
                                             return _real_import(name, globals, locals, fromlist, level)
 
                                         builtins.__import__ = restricted_import
-                                    """)
+                                    """
+                                    )
                                     code = blocking_code + "\n" + code
 
                                 if (