From 9be8bea6f4046ec828686ec3dc0728363d3117fc Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 8 Feb 2025 01:07:05 -0800 Subject: [PATCH] fix: filter --- backend/open_webui/utils/chat.py | 1 + backend/open_webui/utils/filter.py | 14 ++++++++------ backend/open_webui/utils/middleware.py | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/backend/open_webui/utils/chat.py b/backend/open_webui/utils/chat.py index f0b52eca2..3b6d5ea04 100644 --- a/backend/open_webui/utils/chat.py +++ b/backend/open_webui/utils/chat.py @@ -199,6 +199,7 @@ async def chat_completed(request: Request, form_data: dict, user: Any): }, "__metadata__": metadata, "__request__": request, + "__model__": model, } try: diff --git a/backend/open_webui/utils/filter.py b/backend/open_webui/utils/filter.py index 88fe70353..de51bd46e 100644 --- a/backend/open_webui/utils/filter.py +++ b/backend/open_webui/utils/filter.py @@ -61,12 +61,14 @@ async def process_filter_functions( try: # Prepare parameters sig = inspect.signature(handler) - params = {"body": form_data} - - # Add extra parameters that exist in the handler's signature - for key in list(extra_params.keys()): - if key in sig.parameters: - params[key] = extra_params[key] + params = {"body": form_data} | { + k: v + for k, v in { + **extra_params, + "__id__": filter_id, + }.items() + if k in sig.parameters + } # Handle user parameters if "__user__" in sig.parameters: diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 39033a92a..29bfb2ba1 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -617,6 +617,7 @@ async def process_chat_payload(request, form_data, metadata, user, model): }, "__metadata__": metadata, "__request__": request, + "__model__": model, } # Initialize events to store additional event to be sent to the client