From 98570d3547c598b9161bd2cb359964f88b065569 Mon Sep 17 00:00:00 2001 From: Algorithm5838 <108630393+Algorithm5838@users.noreply.github.com> Date: Wed, 1 Apr 2026 02:42:52 +0300 Subject: [PATCH] perf: single yield per line in stream chunks handler (#23266) --- backend/open_webui/utils/misc.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/backend/open_webui/utils/misc.py b/backend/open_webui/utils/misc.py index bfa934c8b..787ef4d6e 100644 --- a/backend/open_webui/utils/misc.py +++ b/backend/open_webui/utils/misc.py @@ -961,18 +961,15 @@ def stream_chunks_handler(stream: aiohttp.StreamReader): skip_mode = False yield line else: - yield b'data: {}' - yield b'\n' + yield b'data: {}\n' else: # Normal mode: check if line exceeds limit if len(line) > max_buffer_size: skip_mode = True - yield b'data: {}' - yield b'\n' + yield b'data: {}\n' log.info(f'Skip mode triggered, line size: {len(line)}') else: - yield line - yield b'\n' + yield line + b'\n' # Save the last incomplete fragment buffer = lines[-1] @@ -986,7 +983,6 @@ def stream_chunks_handler(stream: aiohttp.StreamReader): # Process remaining buffer data if buffer and not skip_mode: - yield buffer - yield b'\n' + yield buffer + b'\n' return yield_safe_stream_chunks()