lollms-webui/new_app.py

88 lines
3.1 KiB
Python
Raw Normal View History

2024-01-01 04:18:49 +01:00
"""
File: lollms_web_ui.py
Author: ParisNeo
Description: Singleton class for the LoLLMS web UI.
This file is the entry point to the webui.
"""
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
2024-01-05 03:40:55 +01:00
from fastapi.responses import HTMLResponse
2024-01-01 04:18:49 +01:00
from lollms.app import LollmsApplication
from lollms.paths import LollmsPaths
from lollms.main_config import LOLLMSConfig
2024-01-04 03:57:42 +01:00
from lollms_webui import LOLLMSWebUI
2024-01-01 04:18:49 +01:00
from pathlib import Path
from ascii_colors import ASCIIColors
import socketio
import uvicorn
import argparse
app = FastAPI()
2024-01-05 03:40:55 +01:00
# Create a Socket.IO server
sio = socketio.AsyncServer(async_mode="asgi", cors_allowed_origins="*") # Enable CORS for all origins
2024-01-01 04:18:49 +01:00
app.mount("/socket.io", socketio.ASGIApp(sio))
2024-01-05 03:40:55 +01:00
# Define a WebSocket event handler
@sio.event
async def connect(sid, environ):
print(f"Connected: {sid}")
@sio.event
async def disconnect(sid):
print(f"Disconnected: {sid}")
@sio.event
async def message(sid, data):
print(f"Message from {sid}: {data}")
await sio.send(sid, "Message received!")
#app.mount("/socket.io", StaticFiles(directory="path/to/socketio.js"))
2024-01-01 04:18:49 +01:00
if __name__ == "__main__":
# Parsong parameters
parser = argparse.ArgumentParser(description="Start the chatbot FastAPI app.")
parser.add_argument(
"--host", type=str, default=None, help="the hostname to listen on"
)
parser.add_argument("--port", type=int, default=None, help="the port to listen on")
args = parser.parse_args()
root_path = Path(__file__).parent
lollms_paths = LollmsPaths.find_paths(force_local=True, custom_default_cfg_path="configs/config.yaml")
config = LOLLMSConfig.autoload(lollms_paths)
if args.host:
config.host=args.host
if args.port:
config.port=args.port
2024-01-04 03:57:42 +01:00
LOLLMSWebUI.build_instance(config=config, lollms_paths=lollms_paths, socketio=sio)
# Import all endpoints
2024-01-04 14:17:41 +01:00
from lollms.server.endpoints.lollms_infos import router as lollms_infos_router
from lollms.server.endpoints.lollms_hardware_infos import router as lollms_hardware_infos_router
from lollms.server.endpoints.lollms_binding_infos import router as lollms_binding_infos_router
from lollms.server.endpoints.lollms_models_infos import router as lollms_models_infos_router
from lollms.server.endpoints.lollms_personalities_infos import router as lollms_personalities_infos_router
2024-01-04 14:17:41 +01:00
from lollms.server.endpoints.lollms_generator import router as lollms_generator_router
2024-01-05 03:40:55 +01:00
from endpoints.lollms_discussion import router as lollms_discussion_router
from endpoints.lollms_webui_infos import router as lollms_webui_infos_router
2024-01-04 14:17:41 +01:00
app.include_router(lollms_infos_router)
app.include_router(lollms_hardware_infos_router)
app.include_router(lollms_binding_infos_router)
app.include_router(lollms_models_infos_router)
app.include_router(lollms_personalities_infos_router)
app.include_router(lollms_webui_infos_router)
2024-01-04 14:17:41 +01:00
app.include_router(lollms_generator_router)
2024-01-05 03:40:55 +01:00
app.include_router(lollms_discussion_router)
app.mount("/", StaticFiles(directory=Path(__file__).parent/"web"/"dist", html=True), name="static")
2024-01-04 14:17:41 +01:00
2024-01-01 04:18:49 +01:00
uvicorn.run(app, host=config.host, port=6523)#config.port)