Added more endpoints to the fastapi

This commit is contained in:
Saifeddine ALOUI 2024-01-07 15:26:40 +01:00
parent adf1e23559
commit 4ef9f5d72c
6 changed files with 40 additions and 12 deletions

@ -214,11 +214,13 @@ class LoLLMsServer(LollmsApplication):
self.binding = None self.binding = None
for per in self.mounted_personalities: for per in self.mounted_personalities:
if per is not None:
per.model = None per.model = None
gc.collect() gc.collect()
self.binding = BindingBuilder().build_binding(self.config, self.lollms_paths, lollmsCom=self) self.binding = BindingBuilder().build_binding(self.config, self.lollms_paths, lollmsCom=self)
self.model = self.binding.build_model() self.model = self.binding.build_model()
for per in self.mounted_personalities: for per in self.mounted_personalities:
if per is not None:
per.model = self.model per.model = self.model
except Exception as ex: except Exception as ex:
# Catch the exception and get the traceback as a list of strings # Catch the exception and get the traceback as a list of strings

@ -84,6 +84,7 @@ def reload_binding( params: ReloadBindingParams):
lollmsElfServer.binding = None lollmsElfServer.binding = None
lollmsElfServer.model = None lollmsElfServer.model = None
for per in lollmsElfServer.mounted_personalities: for per in lollmsElfServer.mounted_personalities:
if per is not None:
per.model = None per.model = None
gc.collect() gc.collect()
lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, InstallOption.INSTALL_IF_NECESSARY, lollmsCom=lollmsElfServer) lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, InstallOption.INSTALL_IF_NECESSARY, lollmsCom=lollmsElfServer)
@ -125,6 +126,7 @@ def install_binding(data:BindingInstallParams):
lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, lollmsCom=lollmsElfServer) lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, lollmsCom=lollmsElfServer)
lollmsElfServer.model = lollmsElfServer.binding.build_model() lollmsElfServer.model = lollmsElfServer.binding.build_model()
for per in lollmsElfServer.mounted_personalities: for per in lollmsElfServer.mounted_personalities:
if per is not None:
per.model = lollmsElfServer.model per.model = lollmsElfServer.model
return {"status": True} return {"status": True}
except Exception as ex: except Exception as ex:
@ -159,6 +161,7 @@ def reinstall_binding(data:BindingInstallParams):
lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, lollmsCom=lollmsElfServer) lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, lollmsCom=lollmsElfServer)
lollmsElfServer.model = lollmsElfServer.binding.build_model() lollmsElfServer.model = lollmsElfServer.binding.build_model()
for per in lollmsElfServer.mounted_personalities: for per in lollmsElfServer.mounted_personalities:
if per is not None:
per.model = lollmsElfServer.model per.model = lollmsElfServer.model
return {"status": True} return {"status": True}
@ -196,6 +199,7 @@ def unInstall_binding(data:BindingInstallParams):
lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, lollmsCom=lollmsElfServer) lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, lollmsCom=lollmsElfServer)
lollmsElfServer.model = lollmsElfServer.binding.build_model() lollmsElfServer.model = lollmsElfServer.binding.build_model()
for per in lollmsElfServer.mounted_personalities: for per in lollmsElfServer.mounted_personalities:
if per is not None:
per.model = lollmsElfServer.model per.model = lollmsElfServer.model
else: else:
lollmsElfServer.config.binding_name = None lollmsElfServer.config.binding_name = None

@ -80,6 +80,7 @@ def update_setting(data:SettingsInfos):
lollmsElfServer.binding = None lollmsElfServer.binding = None
lollmsElfServer.model = None lollmsElfServer.model = None
for per in lollmsElfServer.mounted_personalities: for per in lollmsElfServer.mounted_personalities:
if per is not None:
per.model = None per.model = None
gc.collect() gc.collect()
lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, InstallOption.INSTALL_IF_NECESSARY, lollmsCom=lollmsElfServer) lollmsElfServer.binding = BindingBuilder().build_binding(lollmsElfServer.config, lollmsElfServer.lollms_paths, InstallOption.INSTALL_IF_NECESSARY, lollmsCom=lollmsElfServer)
@ -109,6 +110,7 @@ def update_setting(data:SettingsInfos):
if lollmsElfServer.model is not None: if lollmsElfServer.model is not None:
ASCIIColors.yellow("New model OK") ASCIIColors.yellow("New model OK")
for per in lollmsElfServer.mounted_personalities: for per in lollmsElfServer.mounted_personalities:
if per is not None:
per.model = lollmsElfServer.model per.model = lollmsElfServer.model
except Exception as ex: except Exception as ex:
trace_exception(ex) trace_exception(ex)

@ -81,6 +81,14 @@ class V1InstructGenerateRequest(BaseModel):
router = APIRouter() router = APIRouter()
elf_server = LOLLMSElfServer.get_instance() elf_server = LOLLMSElfServer.get_instance()
@router.get("/get_generation_status")
def get_generation_status():
return {"status":elf_server.busy}
@router.post("/generate") @router.post("/generate")
def lollms_generate(request_data: GenerateRequest): def lollms_generate(request_data: GenerateRequest):
""" """

@ -168,6 +168,20 @@ def list_mounted_personalities(lollmsElfServer):
@router.get("/get_current_personality_path_infos")
def get_current_personality_path_infos():
if lollmsElfServer.personality is None:
return {
"personality_category":"",
"personality_name":""
}
else:
return {
"personality_category":lollmsElfServer.personality_category,
"personality_name":lollmsElfServer.personality_name
}
# ----------------------------------- Installation/Uninstallation/Reinstallation ---------------------------------------- # ----------------------------------- Installation/Uninstallation/Reinstallation ----------------------------------------

@ -42,11 +42,9 @@ def run_async(func):
""" """
async def wrapper(*args, **kwargs): async def wrapper(*args, **kwargs):
return await func(*args, **kwargs) return asyncio.run(func(*args, **kwargs))
loop = asyncio.get_event_loop()
loop.run_until_complete(wrapper())
return wrapper()
def terminate_thread(thread): def terminate_thread(thread):
if thread: if thread: