Spaces:
Running
Running
File size: 3,436 Bytes
7c78a60 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | import sys
import os
import time
import webbrowser
import threading
import uvicorn
import logging
# Set up professional logging
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s | %(levelname)s | %(message)s",
)
logger = logging.getLogger("super-ai-launcher")
# ASCII Art Header
BANNER = r"""
____ _ _ ____ _____ ____ _ ___ _ _ _ _ _ __ ______ ___ ____
/ ___|| | | | _ \| ____| _ \ / \ |_ _| / \ | \ | | / \ | | \ \ / / ___|_ _/ ___|
\___ \| | | | |_) | _| | |_) | / _ \ | | / _ \ | \| | / _ \ | | \ V /\___ \ | \___ \
___) | |_| | __/| |___| _ < / ___ \ | | / ___ \| |\ |/ ___ \| |___| | ___) | | ___) |
|____/ \___/|_| |_____|_| \_\/_/ \_\___| /_/ \_\_| \_/_/ \_\_____|_| |____/___|____/
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TRADING INTELLIGENT TERMINAL - AI PHΓN TΓCH BIα»U Δα» NαΊΎN Sα» 1 THαΊΎ GIα»I
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
"""
def print_banner():
# Clear console for a clean startup
os.system('cls' if os.name == 'nt' else 'clear')
print("\033[96m" + BANNER + "\033[0m")
print(" [*] Δang khα»i Δα»ng hα» thα»ng phΓ’n tΓch AI...")
print(" [*] Δang nαΊ‘p cΖ‘ sα» dα»― liα»u thα» trΖ°α»ng...")
print(" [*] Hα» thα»ng sαΊ½ tα»± Δα»ng mα» trΓ¬nh duyα»t sau khi hoΓ n tαΊ₯t.")
print(" ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n")
# Import the FastAPI app
try:
from main import app
except ImportError:
# If running from within the backend folder
sys.path.append(os.path.dirname(__file__))
from main import app
def open_browser():
"""Wait for the server to start and then open the browser."""
# Give the server a few seconds to initialize
time.sleep(2.5)
url = "http://127.0.0.1:8000"
logger.info(f"KαΊΏt nα»i thΓ nh cΓ΄ng! Δang mα» bαΊ£ng Δiα»u khiα»n tαΊ‘i {url}...")
webbrowser.open(url)
if __name__ == "__main__":
print_banner()
# Start the browser opener in a separate thread
threading.Thread(target=open_browser, daemon=True).start()
# Run the uvicorn server
logger.info("Khα»i Δα»ng Backend Core...")
try:
# Hide the detailed uvicorn logs for a cleaner professional feel,
# or keep them for transparency. Let's use 'warning' level for uvicorn
# but keep our own logs at 'info'.
uvicorn.run(app, host="127.0.0.1", port=8000, log_level="warning")
except Exception as e:
logger.error(f"Lα»i khα»i Δα»ng hα» thα»ng: {e}")
print("\n [!] CΓ³ lα»i xαΊ£y ra trong quΓ‘ trΓ¬nh khα»i Δα»ng.")
print(" [!] NhαΊ₯n Enter Δα» xem chi tiαΊΏt lα»i vΓ thoΓ‘t...")
input()
|