Spaces:
Sleeping
Sleeping
File size: 1,846 Bytes
7d67a69 a088502 7d67a69 5b7fa18 a088502 7d67a69 3092ad6 7d67a69 d41d526 7d67a69 5b7fa18 fb04509 5b7fa18 f799e1d 7d67a69 598b017 4139bc4 a088502 7d67a69 4139bc4 5b7fa18 7d67a69 4139bc4 7d67a69 4139bc4 5b7fa18 598b017 7d67a69 598b017 ad4a621 5b7fa18 4139bc4 a088502 598b017 | 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 | # app.py
# 主程式檔案 - 整合所有模組並啟動應用
# 此檔案負責初始化系統、載入模組和啟動服務
import os
from fastapi.middleware.cors import CORSMiddleware
# 載入配置和工具
from config import SERVER_CONFIG
from utils import setup_chinese_font, suppress_warnings
from models import load_models_and_data
from api import api_app
from ui import create_demo, custom_css
# 初始化系統
setup_chinese_font()
suppress_warnings()
load_models_and_data()
# 設定 CORS
api_app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
allow_credentials=False, # 避免與 allow_origins=["*"] 衝突
)
if __name__ == "__main__":
# 取得環境變數,HF 預設 PORT 通常是 7860,HOST 務必用 0.0.0.0
host = SERVER_CONFIG["host"]
port = SERVER_CONFIG["port"]
try:
import uvicorn
import gradio as gr
# 創建 Gradio 應用
demo = create_demo()
# 將 Gradio 掛載到 FastAPI (api_app)
# 這樣兩者會「合體」在同一個 Port 執行
app = gr.mount_gradio_app(api_app, demo, path="/")
print(f"🚀 數位保鏢系統啟動中:http://{host}:{port}")
# 唯一啟動點:交給 uvicorn 負責
# 不要再 except 裡面放 demo.launch(),避免自動跳埠到 7861
uvicorn.run(
api_app, # 執行掛載後的 FastAPI 主程式
host=host,
port=port,
proxy_headers=True, # 必須!讓 Gradio 知道它在 HF 的代理之後
forwarded_allow_ips="*", # 必須!允許 HF 轉發 IP 資訊
timeout_keep_alive=30, # 增加保持連線時間
log_level="info"
)
except Exception as e:
print(f"❌ 伺服器啟動嚴重錯誤: {e}") |