feat: 初始化告警平台后端项目
- 创建 FastAPI 项目结构 - 实现告警数据模型(SQLAlchemy) - 实现 multipart/form-data 告警接收接口 - 实现阿里云 OSS 图片上传模块 - 实现告警查询和处理 API - 实现异步大模型分析模块
This commit is contained in:
69
app/config.py
Normal file
69
app/config.py
Normal file
@@ -0,0 +1,69 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
from dataclasses import dataclass
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
@dataclass
|
||||
class DatabaseConfig:
|
||||
url: str = "sqlite:///./data/alert_platform.db"
|
||||
|
||||
|
||||
@dataclass
|
||||
class OSSConfig:
|
||||
access_key_id: str = ""
|
||||
access_key_secret: str = ""
|
||||
endpoint: str = "oss-cn-hangzhou.aliyuncs.com"
|
||||
bucket_name: str = ""
|
||||
url_prefix: str = ""
|
||||
|
||||
|
||||
@dataclass
|
||||
class AppConfig:
|
||||
host: str = "0.0.0.0"
|
||||
port: int = 8000
|
||||
debug: bool = True
|
||||
|
||||
|
||||
@dataclass
|
||||
class AIModelConfig:
|
||||
endpoint: str = ""
|
||||
api_key: str = ""
|
||||
|
||||
|
||||
class Settings(BaseModel):
|
||||
database: DatabaseConfig = DatabaseConfig()
|
||||
oss: OSSConfig = OSSConfig()
|
||||
app: AppConfig = AppConfig()
|
||||
ai_model: AIModelConfig = AIModelConfig()
|
||||
|
||||
|
||||
def load_settings() -> Settings:
|
||||
from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
|
||||
return Settings(
|
||||
database=DatabaseConfig(
|
||||
url=os.getenv("DATABASE_URL", "sqlite:///./data/alert_platform.db"),
|
||||
),
|
||||
oss=OSSConfig(
|
||||
access_key_id=os.getenv("OSS_ACCESS_KEY_ID", ""),
|
||||
access_key_secret=os.getenv("OSS_ACCESS_KEY_SECRET", ""),
|
||||
endpoint=os.getenv("OSS_ENDPOINT", "oss-cn-hangzhou.aliyuncs.com"),
|
||||
bucket_name=os.getenv("OSS_BUCKET_NAME", ""),
|
||||
url_prefix=os.getenv("OSS_URL_PREFIX", ""),
|
||||
),
|
||||
app=AppConfig(
|
||||
host=os.getenv("APP_HOST", "0.0.0.0"),
|
||||
port=int(os.getenv("APP_PORT", "8000")),
|
||||
debug=os.getenv("DEBUG", "true").lower() == "true",
|
||||
),
|
||||
ai_model=AIModelConfig(
|
||||
endpoint=os.getenv("AI_MODEL_ENDPOINT", ""),
|
||||
api_key=os.getenv("AI_MODEL_API_KEY", ""),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
settings = load_settings()
|
||||
Reference in New Issue
Block a user