From 7d694570aa706709fe4784fb93a2cacda484f064 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 30 Aug 2026 21:47:28 -0400 Subject: [PATCH] refac --- backend/open_webui/utils/filter.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/utils/filter.py b/backend/open_webui/utils/filter.py index 56be906288..d131b6ca89 100644 --- a/backend/open_webui/utils/filter.py +++ b/backend/open_webui/utils/filter.py @@ -10,10 +10,16 @@ log = logging.getLogger(__name__) class FilterContext: def __init__(self): + self.active_filters = None self.valves_by_id = None self.function_valves = {} self.user_valves = {} + async def get_active_filters(self): + if self.active_filters is None: + self.active_filters = await Functions.get_active_filter_ids() + return self.active_filters + async def get_function_valves(self, filter_ids, filter_id, Valves): if filter_id not in self.function_valves: if self.valves_by_id is None: @@ -29,6 +35,12 @@ class FilterContext: return self.user_valves[user_valves_key] +def get_filter_context(request): + if not hasattr(request.state, 'filter_context'): + request.state.filter_context = FilterContext() + return request.state.filter_context + + async def get_user_valves(filter_id, user_id, UserValves): user_valves_data = await Functions.get_user_valves_by_id_and_user_id(filter_id, user_id) return UserValves(**(user_valves_data if user_valves_data else {})) @@ -57,7 +69,7 @@ async def resolve_filter_pipeline(request, model: dict, enabled_filter_ids: list if not ENABLE_PLUGINS: return [], [] - active_filters = await Functions.get_active_filter_ids() + active_filters = await get_filter_context(request).get_active_filters() filter_ids = get_model_filter_ids(model, active_filters) functions_by_id = {function.id: function for function in await Functions.get_functions_by_ids(filter_ids)}