mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-02 03:59:45 +02:00
refac
This commit is contained in:
@@ -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)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user