From 7c52382c907e6b04470a51c6f01b800834a3f39c Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 1 Apr 2026 05:03:53 -0500 Subject: [PATCH] refac --- backend/open_webui/utils/middleware.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index dfc74e421..05e18e555 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -2370,11 +2370,16 @@ async def process_chat_payload(request, form_data, user, metadata, model): ) else: # Native FC: tool docstring can't be dynamic, so inject - # filesystem context into messages for pyodide engine + # filesystem context into the system message for pyodide + # engine. Appending to the system prompt (instead of the + # user message) keeps it in the stable cached prefix so + # providers with prefix caching don't re-bill the full + # conversation on every turn. if engine != 'jupyter': - form_data['messages'] = add_or_update_user_message( + form_data['messages'] = add_or_update_system_message( CODE_INTERPRETER_PYODIDE_PROMPT, form_data['messages'], + append=True, ) tool_ids = form_data.pop('tool_ids', None)