Files
open-webui/backend/open_webui/utils
Classic298andClaude 62491debfa perf: linear content accumulation in the streaming response handler (#27231)
The streaming handler rebuilt the full accumulated response with
`content = f'{content}{value}'` on every content delta — a complete
string copy per chunk, making accumulation O(n^2) over the response
length. Use in-place `content += value` for the (universal) str case,
which CPython extends in place, keeping accumulation O(n); the
f-string fallback is preserved for non-str values so coercion
behavior is unchanged.

In the ENABLE_REALTIME_CHAT_SAVE branch, full_output() — which
concatenates the entire accumulated output — was called twice per
chunk (once for the DB upsert, once for the emitted delta). Compute
it once and reuse.


Claude-Session: https://claude.ai/code/session_01MHg5zs1VBjvRWQ54qHpfYD

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-23 12:24:29 -04:00
..
2026-07-20 22:11:42 -04:00
2026-07-01 02:48:29 -05:00
2026-06-29 11:56:00 -05:00
2026-07-23 04:16:14 -04:00
2026-07-23 03:05:29 -04:00
2026-07-23 03:05:29 -04:00
2026-07-16 01:34:50 -04:00
2026-03-17 17:58:01 -05:00
2026-07-23 02:54:56 -04:00
2026-07-23 02:54:56 -04:00
2026-07-09 17:28:34 -05:00
2026-06-01 13:56:55 -07:00
2026-07-01 03:35:46 -05:00
2026-06-29 13:03:14 -05:00
2026-07-16 01:37:21 -04:00
2026-07-01 02:57:29 -05:00
2026-06-29 00:18:40 -05:00
2026-07-09 17:28:34 -05:00
2026-06-23 23:35:44 +02:00
2026-03-17 17:58:01 -05:00
2026-07-20 22:11:42 -04:00
2026-06-19 00:16:06 +02:00
2026-07-10 18:32:21 -05:00
2026-07-20 22:11:42 -04:00
2026-07-16 00:58:34 -04:00
2026-06-01 13:56:55 -07:00
2026-06-29 12:29:10 -05:00
2026-06-29 13:03:14 -05:00