Files
FiDA_Python/src/core/config.py

60 lines
2.3 KiB
Python

from pathlib import Path
from pydantic_settings import BaseSettings, SettingsConfigDict
from pydantic import Field
class Settings(BaseSettings):
"""
应用配置类。Pydantic Settings 会自动从环境变量和 .env 文件中加载这些值。
"""
model_config = SettingsConfigDict(
env_file='.env',
env_file_encoding='utf-8',
extra='ignore' # 忽略环境变量中多余的键
)
# --- google api 配置信息 ---
GOOGLE_GENAI_USE_VERTEXAI: str = Field(default="", description="")
GOOGLE_API_KEY: str = Field(default="", description="")
GOOGLE_CLOUD_PROJECT: str = Field(default="", description="")
GOOGLE_CLOUD_LOCATION: str = Field(default="", description="")
# --- google api 配置信息 ---
QWEN_API_KEY: str = Field(default="", description="")
# --- minio 配置信息 ---
MINIO_URL: str = Field(default='', description="")
MINIO_ACCESS: str = Field(default='', description="")
MINIO_SECRET: str = Field(default='', description="")
MINIO_SECURE: bool = Field(default=True, description="")
# --- redis 配置信息 ---
REDIS_HOST: str = Field(default='', description="")
REDIS_PORT: str = Field(default='', description="")
REDIS_DB: int = Field(default=0, description="")
# --- mongodb配置信息 ---
MONGODB_USERNAME: str = Field(default="", description="")
MONGODB_PASSWORD: str = Field(default="", description="")
MONGODB_HOST: str = Field(default="localhost", description="")
MONGODB_PORT: int = Field(default=27017, description="")
# --- 本地服务器配置信息 ---
IMAGE_TO_3D_MODEL_URL: str = Field(default='', description="")
FLUX2_GEN_IMG_MODEL_URL: str = Field(default='', description="")
SEG_ANYTHING: str = Field(default='', description="")
RABBITMQ_URL: str = Field(default='', description="")
# --- 外部工具api配置信息 ---
TAVILY_API_KEY: str = Field(default="", description="")
LOGS_PATH: str = Field(default="/mnt/data/FiDA/logs", description="")
settings = Settings()
MONGO_URI = f"mongodb://{settings.MONGODB_USERNAME}:{settings.MONGODB_PASSWORD}@{settings.MONGODB_HOST}:{settings.MONGODB_PORT}"
TOOL_DIR = Path(__file__).resolve().parent
PROJECT_ROOT = TOOL_DIR.parent
print(f"PROJECT_ROOT : {PROJECT_ROOT}")