Files

62 lines
1.5 KiB
Python

"""
TiniX Story 1.0 - Entry Point
Khởi động cả Gradio UI và FastAPI server
"""
import os
import sys
import threading
import logging
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s"
)
logger = logging.getLogger("run")
def start_gradio():
"""Khởi động Gradio UI trên port 7860"""
try:
from app import main
main()
except Exception as e:
logger.error(f"Gradio startup failed: {e}")
sys.exit(1)
def start_fastapi():
"""Khởi động FastAPI server trên port 8000"""
try:
import uvicorn
from main_api import app
uvicorn.run(app, host="0.0.0.0", port=8000, log_level="info")
except Exception as e:
logger.error(f"FastAPI startup failed: {e}")
sys.exit(1)
def main():
mode = os.getenv("TINIX_MODE", "all").lower()
if mode == "api":
logger.info("Starting TiniX Story in API-only mode (port 8000)")
start_fastapi()
elif mode == "ui":
logger.info("Starting TiniX Story in Gradio UI mode (port 7860)")
start_gradio()
else:
logger.info("Starting TiniX Story - All services")
logger.info(" → FastAPI: http://localhost:8000")
logger.info(" → Gradio UI: http://localhost:7860")
# FastAPI in background thread
api_thread = threading.Thread(target=start_fastapi, daemon=True)
api_thread.start()
# Gradio in main thread (blocks)
start_gradio()
if __name__ == "__main__":
main()