2025-04-29 15:03:02 +08:00
|
|
|
import os
|
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
|
|
|
|
|
|
load_dotenv()
|
|
|
|
|
|
|
|
|
|
class Config:
|
|
|
|
|
PROJECT_NAME = "Flexible Employment Analysis API"
|
|
|
|
|
API_V1_STR = "/api/v1"
|
|
|
|
|
SECRET_KEY = os.getenv("SECRET_KEY", "your-secret-key")
|
|
|
|
|
DATABASE_URL = os.getenv("DATABASE_URL", "sqlite:///./test.db")
|
2026-01-08 16:22:25 +08:00
|
|
|
DEBUG = os.getenv("DEBUG", "false").lower() in ("true", "1", "t")
|
|
|
|
|
|
2026-07-28 08:41:34 +08:00
|
|
|
# FastGPT Configuration. Direct mode falls back to the legacy environment
|
|
|
|
|
# variable names so existing deployments keep working unchanged.
|
|
|
|
|
FASTGPT_DIRECT_API_KEY = (
|
|
|
|
|
os.getenv("FASTGPT_DIRECT_API_KEY")
|
|
|
|
|
or os.getenv("ANALYSIS_AUTH_TOKEN")
|
|
|
|
|
)
|
|
|
|
|
FASTGPT_DIRECT_BASE_URL = (
|
|
|
|
|
os.getenv("FASTGPT_DIRECT_BASE_URL")
|
|
|
|
|
or os.getenv("ANALYSIS_SERVICE_URL")
|
|
|
|
|
)
|
|
|
|
|
FASTGPT_DIRECT_APP_ID = (
|
|
|
|
|
os.getenv("FASTGPT_DIRECT_APP_ID")
|
|
|
|
|
or os.getenv("APP_ID")
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
FASTGPT_BROWSER_ADDON_API_KEY = os.getenv("FASTGPT_BROWSER_ADDON_API_KEY")
|
|
|
|
|
FASTGPT_BROWSER_ADDON_BASE_URL = (
|
|
|
|
|
os.getenv("FASTGPT_BROWSER_ADDON_BASE_URL")
|
|
|
|
|
or FASTGPT_DIRECT_BASE_URL
|
|
|
|
|
)
|
|
|
|
|
FASTGPT_BROWSER_ADDON_APP_ID = os.getenv("FASTGPT_BROWSER_ADDON_APP_ID")
|
|
|
|
|
|
|
|
|
|
# Backward-compatible aliases for code outside the mode-aware API layer.
|
|
|
|
|
FASTGPT_API_KEY = FASTGPT_DIRECT_API_KEY
|
|
|
|
|
FASTGPT_BASE_URL = FASTGPT_DIRECT_BASE_URL
|
|
|
|
|
FASTGPT_APP_ID = FASTGPT_DIRECT_APP_ID
|
2026-01-08 16:22:25 +08:00
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def validate(cls):
|
|
|
|
|
"""Validate required configuration."""
|
|
|
|
|
required = [
|
2026-07-28 08:41:34 +08:00
|
|
|
("FASTGPT_DIRECT_BASE_URL (or ANALYSIS_SERVICE_URL)", cls.FASTGPT_DIRECT_BASE_URL),
|
|
|
|
|
("FASTGPT_DIRECT_API_KEY (or ANALYSIS_AUTH_TOKEN)", cls.FASTGPT_DIRECT_API_KEY),
|
|
|
|
|
("FASTGPT_DIRECT_APP_ID (or APP_ID)", cls.FASTGPT_DIRECT_APP_ID),
|
|
|
|
|
("FASTGPT_BROWSER_ADDON_API_KEY", cls.FASTGPT_BROWSER_ADDON_API_KEY),
|
|
|
|
|
("FASTGPT_BROWSER_ADDON_APP_ID", cls.FASTGPT_BROWSER_ADDON_APP_ID),
|
2026-01-08 16:22:25 +08:00
|
|
|
]
|
|
|
|
|
missing = [name for name, value in required if not value]
|
|
|
|
|
if missing:
|
2026-07-28 08:41:34 +08:00
|
|
|
raise ValueError(f"Missing required environment variables: {', '.join(missing)}")
|