This commit is contained in:
Timothy Jaeryang Baek
2026-08-30 21:47:28 -04:00
parent b3ba6823a9
commit 7d694570aa

View File

@@ -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)}