mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-05 08:10:30 +00:00
refac
This commit is contained in:
parent
b3ba6823a9
commit
7d694570aa
1 changed files with 13 additions and 1 deletions
|
|
@ -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)}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue