Spaces:
Running
Running
from app.settings import settings, BASE_DIR, logger, setup_logger | |
from app.backend.models.db_service import automigrate | |
import aiofiles.os | |
import uvicorn | |
import asyncio | |
import os | |
import multiprocessing | |
multiprocessing.set_start_method("spawn", force=True) | |
async def initialize_system() -> bool: | |
path = BASE_DIR | |
chats_storage_path = os.path.join(path, "chats_storage") | |
database_path = os.path.join(path, "database") | |
try: | |
await aiofiles.os.makedirs(database_path, exist_ok=True) | |
await aiofiles.os.makedirs(chats_storage_path, exist_ok=True) | |
except Exception: | |
raise RuntimeError("Not all required directories were initialized") | |
try: | |
# os.system(f"pip install -r {os.path.join(base_path, 'requirements.txt')}") | |
pass | |
except Exception: | |
raise RuntimeError("Not all package were downloaded") | |
async def main(): | |
await setup_logger(logger) | |
await logger.info("App started!") | |
await automigrate() # Note: it will drop all existing dbs and create a new ones | |
await initialize_system() | |
config = uvicorn.Config(**settings.api.model_dump()) | |
server = uvicorn.Server(config) | |
await server.serve() | |
if __name__ == "__main__": | |
asyncio.run(main()) | |