import os from pathlib import Path from flask import Flask, request from app.configs.runtime_config import get_int, get_str PROJECT_ROOT = Path(__file__).resolve().parents[4] ASSETS_DIR = PROJECT_ROOT / "assets" FRONTEND_DIST_DIR = PROJECT_ROOT / "frontend" / "dist" _frontend_static_dir = get_str("FRONTEND_STATIC_DIR", "").strip() FRONTEND_STATIC_DIR = Path(_frontend_static_dir).resolve() if _frontend_static_dir else None STATIC_DIR = FRONTEND_STATIC_DIR or (FRONTEND_DIST_DIR if FRONTEND_DIST_DIR.exists() else ASSETS_DIR) DB_HOST = get_str("DB_HOST", "127.0.0.1") DB_PORT = get_int("DB_PORT", 3306) DB_NAME = get_str("DB_NAME", "ai_shiliu") DB_USER = get_str("DB_USER", "ai_shiliu") DB_PASS = get_str("DB_PASS", "") DB_CHARSET = get_str("DB_CHARSET", "utf8mb4") AI_PROVIDER = get_str("AI_PROVIDER", "") OPENAI_API_KEY = get_str("OPENAI_API_KEY", "") OPENAI_API_BASE = get_str("OPENAI_API_BASE", "") OPENAI_MODEL = get_str("OPENAI_MODEL", "") DEEPSEEK_API_KEY = get_str("DEEPSEEK_API_KEY", "") DEEPSEEK_API_BASE = get_str("DEEPSEEK_API_BASE", "") DEEPSEEK_MODEL = get_str("DEEPSEEK_MODEL", "") DIFY_API_KEY = get_str("DIFY_API_KEY", "") DIFY_API_BASE = get_str("DIFY_API_BASE", "") DIFY_USER = get_str("DIFY_USER", "") app = Flask(__name__, static_folder=str(STATIC_DIR), static_url_path="") @app.after_request def add_cors_headers(response): origin = (request.headers.get("Origin") or "").strip() allow_origin = origin or "*" response.headers["Access-Control-Allow-Origin"] = allow_origin response.headers["Vary"] = "Origin" response.headers["Access-Control-Allow-Headers"] = "Content-Type, Authorization" response.headers["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS" return response