Skip to content

Commit 98570d3

Browse files
perf: single yield per line in stream chunks handler (open-webui#23266)
1 parent 5fd9db8 commit 98570d3

1 file changed

Lines changed: 4 additions & 8 deletions

File tree

backend/open_webui/utils/misc.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -961,18 +961,15 @@ async def yield_safe_stream_chunks():
961961
skip_mode = False
962962
yield line
963963
else:
964-
yield b'data: {}'
965-
yield b'\n'
964+
yield b'data: {}\n'
966965
else:
967966
# Normal mode: check if line exceeds limit
968967
if len(line) > max_buffer_size:
969968
skip_mode = True
970-
yield b'data: {}'
971-
yield b'\n'
969+
yield b'data: {}\n'
972970
log.info(f'Skip mode triggered, line size: {len(line)}')
973971
else:
974-
yield line
975-
yield b'\n'
972+
yield line + b'\n'
976973

977974
# Save the last incomplete fragment
978975
buffer = lines[-1]
@@ -986,7 +983,6 @@ async def yield_safe_stream_chunks():
986983

987984
# Process remaining buffer data
988985
if buffer and not skip_mode:
989-
yield buffer
990-
yield b'\n'
986+
yield buffer + b'\n'
991987

992988
return yield_safe_stream_chunks()

0 commit comments

Comments
 (0)