46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
|
|
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
|