From c7ca64c5c8351631adae352d6a0cb250b7aa137f Mon Sep 17 00:00:00 2001 From: Saifeddine ALOUI Date: Mon, 8 Jan 2024 01:08:25 +0100 Subject: [PATCH] added execute command entry --- .../events/lollms_personality_events.py | 45 +++++++++++++++++++ lollms/server/server.py | 2 + 2 files changed, 47 insertions(+) create mode 100644 lollms/server/events/lollms_personality_events.py diff --git a/lollms/server/events/lollms_personality_events.py b/lollms/server/events/lollms_personality_events.py new file mode 100644 index 0000000..efb5cfe --- /dev/null +++ b/lollms/server/events/lollms_personality_events.py @@ -0,0 +1,45 @@ +""" +project: lollms +file: lollms_personality_events.py +author: ParisNeo +description: + This module contains a set of socketio events that provide information about the Lord of Large Language and Multimodal Systems (LoLLMs) Web UI + application. These events are specific to personality + +""" +from fastapi import APIRouter, Request +from fastapi import HTTPException +from pydantic import BaseModel +import pkg_resources +from lollms.server.elf_server import LOLLMSElfServer +from fastapi.responses import FileResponse +from lollms.binding import BindingBuilder, InstallOption +from ascii_colors import ASCIIColors +from lollms.personality import MSG_TYPE, AIPersonality +from lollms.utilities import load_config, trace_exception, gc, terminate_thread +from pathlib import Path +from typing import List +import socketio +from functools import partial +from datetime import datetime +import os + +router = APIRouter() +lollmsElfServer = LOLLMSElfServer.get_instance() + + +# ----------------------------------- events ----------------------------------------- +def add_events(sio:socketio): + @sio.on('execute_command') + def execute_command(sid, data): + client_id = sid + command = data["command"] + parameters = data["parameters"] + if lollmsElfServer.personality.processor is not None: + lollmsElfServer.start_time = datetime.now() + lollmsElfServer.personality.processor.callback = partial(lollmsElfServer.process_chunk, client_id=client_id) + lollmsElfServer.personality.processor.execute_command(command, parameters) + else: + lollmsElfServer.warning("Non scripted personalities do not support commands",client_id=client_id) + lollmsElfServer.close_message(client_id) + \ No newline at end of file diff --git a/lollms/server/server.py b/lollms/server/server.py index 5efe37d..4c50954 100644 --- a/lollms/server/server.py +++ b/lollms/server/server.py @@ -58,6 +58,7 @@ if __name__ == "__main__": from lollms.server.events.lollms_generation_events import add_events as lollms_generation_events_add + from lollms.server.events.lollms_personality_events import add_events as lollms_personality_events_add app.include_router(lollms_binding_files_server_router) app.include_router(lollms_infos_router) @@ -75,6 +76,7 @@ if __name__ == "__main__": lollms_generation_events_add(sio) + lollms_personality_events_add(sio) app = ASGIApp(socketio_server=sio, other_asgi_app=app)