open-webui/backend/open_webui
Classic298 e2221fb662
perf: use the orjson codec to parse Jupyter kernel messages (#27812)
The code interpreter parses every message from the Jupyter kernel websocket with stdlib `json`, in a loop that runs for the duration of an execution. Messages carrying large stdout or a base64 image payload are the expensive ones.

It now goes through `JSONCodec`, which selects orjson when `ENABLE_ORJSON` is set. Every consumer of the parsed message reads strings only: `content.text`, `content.data['text/plain']` and `['image/png']`, `content.traceback`, and `content.execution_state`. Jupyter renders large integers into `text/plain` as strings rather than JSON numbers, so no numeric round trip is involved.

The one-shot `execute_request` message this module sends keeps stdlib `json`; it is a small fixed-shape dict sent once per execution.

With `ENABLE_ORJSON` unset, which is the default, `JSONCodec` is stdlib `json` and this call site behaves exactly as before.
2026-07-31 17:32:05 -04:00
..
data refac: mv backend files to /open_webui dir 2024-09-04 16:54:48 +02:00
internal perf: cut per-request database session overhead (#27385) 2026-07-23 17:49:48 -05:00
migrations chore: format 2026-07-27 04:46:45 -04:00
models chore: remove dead json imports (#27815) 2026-07-31 17:25:40 -04:00
retrieval perf: use the orjson codec to parse Oracle vector metadata (#27813) 2026-07-31 17:31:14 -04:00
routers perf: use the orjson codec for outbound Ollama request bodies (#27811) 2026-07-31 17:26:38 -04:00
socket perf: optional orjson JSON codec behind ENABLE_ORJSON (#27583) 2026-07-27 03:45:37 -04:00
static refac 2026-07-27 19:39:36 -04:00
storage refac: modernize type annotations (PEP 604 / PEP 585) 2026-05-12 17:10:15 +09:00
tools chore: remove dead json imports (#27815) 2026-07-31 17:25:40 -04:00
utils perf: use the orjson codec to parse Jupyter kernel messages (#27812) 2026-07-31 17:32:05 -04:00
__init__.py refac 2026-07-27 19:39:36 -04:00
alembic.ini fix: Alembic CLI commands from failing 2025-08-15 04:17:47 -04:00
config.py refac 2026-07-27 19:39:36 -04:00
constants.py refac 2026-07-27 19:39:36 -04:00
env.py refac 2026-07-27 19:39:36 -04:00
events.py refac 2026-07-27 19:39:36 -04:00
functions.py refac 2026-07-23 03:39:56 -04:00
main.py perf: use the orjson codec for the Anthropic passthrough request body (#27810) 2026-07-31 17:26:07 -04:00
tasks.py refac 2026-07-26 22:45:11 -04:00