This commit is contained in:
Timothy Jaeryang Baek committed 2026-08-30 21:47:28 -04:00
1 parent b3ba6823a9
commit 7d694570aa
1 file changed
+13 -1
+13 -1
View File
@@ -10,10 +10,16 @@ log = logging.getLogger(__name__)
class FilterContext: class FilterContext:
def __init__(self): def __init__(self):
self.active_filters = None
self.valves_by_id = None self.valves_by_id = None
self.function_valves = {} self.function_valves = {}
self.user_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): async def get_function_valves(self, filter_ids, filter_id, Valves):
if filter_id not in self.function_valves: if filter_id not in self.function_valves:
if self.valves_by_id is None: if self.valves_by_id is None:
@@ -29,6 +35,12 @@ class FilterContext:
return self.user_valves[user_valves_key] 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): 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) 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 {})) 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: if not ENABLE_PLUGINS:
return [], [] 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) 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)} functions_by_id = {function.id: function for function in await Functions.get_functions_by_ids(filter_ids)}