123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- # -*- coding: utf-8 -*-
- from typing import Any, Dict, Optional
- from pydantic import (
- AnyHttpUrl,
- BaseSettings,
- DirectoryPath,
- PostgresDsn,
- SecretStr,
- validator,
- )
- class Settings(BaseSettings):
- # SERVER_NAME: str
- # SERVER_HOST: AnyHttpUrl
- PLATFORM_HOST: AnyHttpUrl
- PLATFORM_SECRET: SecretStr
- TRANSFER_HOST: AnyHttpUrl
- # WEATHER_HOST: AnyHttpUrl
- # HTTPS_PROXY: AnyHttpUrl
- TENCENT_NLP_ENDPOINT: str
- TENCENT_SECRET_ID_V1: str
- TENCENT_SECRET_KEY_V1: str
- DUCKLING_HOST: AnyHttpUrl
- # PROJECT_DIR: DirectoryPath
- # LOGS_DIR: DirectoryPath
- ML_MODELS_DIR: DirectoryPath
- PROJECT_NAME: str
- REDIS_HOST: str
- REDIS_PORT: int
- REDIS_DB: int
- REDIS_PASSWORD: str
- MILVUS_HOST: str
- MILVUS_PORT: str
- METRIC_TYPE: str
- VECTOR_DIMENSION: int
- POSTGRES_SERVER: str
- POSTGRES_USER: str
- POSTGRES_PASSWORD: str
- POSTGRES_DB: str
- SQLALCHEMY_DATABASE_URL: Optional[PostgresDsn] = None
- @validator("SQLALCHEMY_DATABASE_URL", pre=True)
- def assemble_db_connection(cls, v: Optional[str], values: Dict[str, Any]) -> Any:
- if isinstance(v, str):
- return v
- return PostgresDsn.build(
- scheme="postgresql",
- user=values.get("POSTGRES_USER"),
- password=values.get("POSTGRES_PASSWORD"),
- host=values.get("POSTGRES_SERVER"),
- path=f'/{values.get("POSTGRES_DB") or ""}',
- )
- class Config:
- case_sensitive = True
- env_file = ".env"
- settings = Settings()
|