Files
ZNJJ-api-server/src/core/config.py
T

41 lines
1.6 KiB
Python
Raw Normal View History

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 10:38:01 +08:00
# FastGPT Configuration
FASTGPT_API_KEY = os.getenv("ANALYSIS_AUTH_TOKEN")
FASTGPT_BASE_URL = os.getenv("ANALYSIS_SERVICE_URL")
FASTGPT_APP_ID = os.getenv("APP_ID")
2026-01-08 16:22:25 +08:00
# Chat backend switch(作业 2)
# "fastgpt" 保持现有行为;"langgraph" 使用内存图 fake 回复。
AGENT_BACKEND = os.getenv("AGENT_BACKEND", "fastgpt")
2026-01-08 16:22:25 +08:00
@classmethod
def validate(cls):
"""Validate required configuration."""
# TODO(作业 2): 语音管线仍依赖 FastGPT。当前仅按文本后端开关校验;
# 接入语音开关后,需要单独校验语音路径所需配置。
if cls.AGENT_BACKEND not in ("fastgpt", "langgraph"):
raise ValueError(
f"AGENT_BACKEND must be 'fastgpt' or 'langgraph', got {cls.AGENT_BACKEND!r}"
)
if cls.AGENT_BACKEND != "fastgpt":
return
2026-01-08 16:22:25 +08:00
required = [
2026-07-28 10:38:01 +08:00
("FASTGPT_BASE_URL (ANALYSIS_SERVICE_URL)", cls.FASTGPT_BASE_URL),
("FASTGPT_API_KEY (ANALYSIS_AUTH_TOKEN)", cls.FASTGPT_API_KEY),
("FASTGPT_APP_ID (APP_ID)", cls.FASTGPT_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)}")