From 684111715f742f56a3c7efac9eb7a1e68e54a3ec Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 25 Aug 2026 14:56:23 -0400 Subject: [PATCH] refac --- backend/open_webui/utils/middleware.py | 28 ++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 2b42c028b1..4d5eeebcd7 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -6266,14 +6266,26 @@ async def streaming_chat_response_handler(response, ctx): yield wrap_item(JSONCodec.dumps(event)) async for data in original_generator: - data, _ = await process_filter_functions( - request=request, - filter_context=filter_context, - filter_functions=filter_functions, - filter_type='stream', - form_data=data, - extra_params=extra_params, - ) + if filter_functions: + line = data.decode('utf-8', 'replace') if isinstance(data, bytes) else data + if isinstance(line, str) and line.startswith('data:'): + payload = line.removeprefix('data:').strip() + if payload and payload != '[DONE]': + try: + event = JSONCodec.loads(payload) + except JSONCodec.JSONDecodeError: + event = None + + if isinstance(event, dict): + event, _ = await process_filter_functions( + request=request, + filter_context=filter_context, + filter_functions=filter_functions, + filter_type='stream', + form_data=event, + extra_params=extra_params, + ) + data = wrap_item(JSONCodec.dumps(event)) if event else None if data: if has_api_outlet_filters: