fix/refac: functions multi-replica issue

This commit is contained in:
Timothy Jaeryang Baek 2025-05-20 20:20:27 +04:00
parent 2b5c015bcb
commit 74ace200fe
5 changed files with 17 additions and 40 deletions

View File

@ -54,11 +54,8 @@ log.setLevel(SRC_LOG_LEVELS["MAIN"])
def get_function_module_by_id(request: Request, pipe_id: str): def get_function_module_by_id(request: Request, pipe_id: str):
# Check if function is already loaded # Check if function is already loaded
if pipe_id not in request.app.state.FUNCTIONS: function_module, _, _ = load_function_module_by_id(pipe_id)
function_module, _, _ = load_function_module_by_id(pipe_id) request.app.state.FUNCTIONS[pipe_id] = function_module
request.app.state.FUNCTIONS[pipe_id] = function_module
else:
function_module = request.app.state.FUNCTIONS[pipe_id]
if hasattr(function_module, "valves") and hasattr(function_module, "Valves"): if hasattr(function_module, "valves") and hasattr(function_module, "Valves"):
valves = Functions.get_function_valves_by_id(pipe_id) valves = Functions.get_function_valves_by_id(pipe_id)

View File

@ -262,11 +262,8 @@ async def get_function_valves_spec_by_id(
): ):
function = Functions.get_function_by_id(id) function = Functions.get_function_by_id(id)
if function: if function:
if id in request.app.state.FUNCTIONS: function_module, function_type, frontmatter = load_function_module_by_id(id)
function_module = request.app.state.FUNCTIONS[id] request.app.state.FUNCTIONS[id] = function_module
else:
function_module, function_type, frontmatter = load_function_module_by_id(id)
request.app.state.FUNCTIONS[id] = function_module
if hasattr(function_module, "Valves"): if hasattr(function_module, "Valves"):
Valves = function_module.Valves Valves = function_module.Valves
@ -290,11 +287,8 @@ async def update_function_valves_by_id(
): ):
function = Functions.get_function_by_id(id) function = Functions.get_function_by_id(id)
if function: if function:
if id in request.app.state.FUNCTIONS: function_module, function_type, frontmatter = load_function_module_by_id(id)
function_module = request.app.state.FUNCTIONS[id] request.app.state.FUNCTIONS[id] = function_module
else:
function_module, function_type, frontmatter = load_function_module_by_id(id)
request.app.state.FUNCTIONS[id] = function_module
if hasattr(function_module, "Valves"): if hasattr(function_module, "Valves"):
Valves = function_module.Valves Valves = function_module.Valves
@ -353,11 +347,8 @@ async def get_function_user_valves_spec_by_id(
): ):
function = Functions.get_function_by_id(id) function = Functions.get_function_by_id(id)
if function: if function:
if id in request.app.state.FUNCTIONS: function_module, function_type, frontmatter = load_function_module_by_id(id)
function_module = request.app.state.FUNCTIONS[id] request.app.state.FUNCTIONS[id] = function_module
else:
function_module, function_type, frontmatter = load_function_module_by_id(id)
request.app.state.FUNCTIONS[id] = function_module
if hasattr(function_module, "UserValves"): if hasattr(function_module, "UserValves"):
UserValves = function_module.UserValves UserValves = function_module.UserValves
@ -377,11 +368,8 @@ async def update_function_user_valves_by_id(
function = Functions.get_function_by_id(id) function = Functions.get_function_by_id(id)
if function: if function:
if id in request.app.state.FUNCTIONS: function_module, function_type, frontmatter = load_function_module_by_id(id)
function_module = request.app.state.FUNCTIONS[id] request.app.state.FUNCTIONS[id] = function_module
else:
function_module, function_type, frontmatter = load_function_module_by_id(id)
request.app.state.FUNCTIONS[id] = function_module
if hasattr(function_module, "UserValves"): if hasattr(function_module, "UserValves"):
UserValves = function_module.UserValves UserValves = function_module.UserValves

View File

@ -392,11 +392,8 @@ async def chat_action(request: Request, action_id: str, form_data: dict, user: A
} }
) )
if action_id in request.app.state.FUNCTIONS: function_module, _, _ = load_function_module_by_id(action_id)
function_module = request.app.state.FUNCTIONS[action_id] request.app.state.FUNCTIONS[action_id] = function_module
else:
function_module, _, _ = load_function_module_by_id(action_id)
request.app.state.FUNCTIONS[action_id] = function_module
if hasattr(function_module, "valves") and hasattr(function_module, "Valves"): if hasattr(function_module, "valves") and hasattr(function_module, "Valves"):
valves = Functions.get_function_valves_by_id(action_id) valves = Functions.get_function_valves_by_id(action_id)

View File

@ -13,11 +13,9 @@ def get_function_module(request, function_id):
""" """
Get the function module by its ID. Get the function module by its ID.
""" """
if function_id in request.app.state.FUNCTIONS:
function_module = request.app.state.FUNCTIONS[function_id] function_module, _, _ = load_function_module_by_id(function_id)
else: request.app.state.FUNCTIONS[function_id] = function_module
function_module, _, _ = load_function_module_by_id(function_id)
request.app.state.FUNCTIONS[function_id] = function_module
return function_module return function_module

View File

@ -239,11 +239,8 @@ async def get_all_models(request, user: UserModel = None):
] ]
def get_function_module_by_id(function_id): def get_function_module_by_id(function_id):
if function_id in request.app.state.FUNCTIONS: function_module, _, _ = load_function_module_by_id(function_id)
function_module = request.app.state.FUNCTIONS[function_id] request.app.state.FUNCTIONS[function_id] = function_module
else:
function_module, _, _ = load_function_module_by_id(function_id)
request.app.state.FUNCTIONS[function_id] = function_module
return function_module return function_module
for model in models: for model in models: