初始话项目框架
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
import os
|
||||
|
||||
from .settings import Settings
|
||||
|
||||
_env = os.getenv("ENV", "dev")
|
||||
_env_files = {"dev": ".env", "test": ".env.test", "pro": ".env.prod"}
|
||||
|
||||
settings = Settings(_env_file=_env_files.get(_env, ".env"))
|
||||
|
||||
__all__ = ["settings"]
|
||||
@@ -0,0 +1,77 @@
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
# 环境
|
||||
env: str = "dev"
|
||||
|
||||
# 项目基础信息
|
||||
project_name: str = "FastAPI App"
|
||||
version: str = "0.1.0"
|
||||
server_port: int = 8000
|
||||
|
||||
# CORS
|
||||
cors_origins: list[str] = ["*"]
|
||||
cors_allow_methods: list[str] = ["*"]
|
||||
cors_allow_headers: list[str] = ["*"]
|
||||
|
||||
# 数据库 (MySQL)
|
||||
db_host: str = "192.168.31.105"
|
||||
db_port: int = 3306
|
||||
db_user: str = "root"
|
||||
db_password: str = "123456"
|
||||
db_name: str = "offerpie"
|
||||
db_pool_size: int = 10
|
||||
db_max_overflow: int = 20
|
||||
db_pool_recycle: int = 3600
|
||||
|
||||
# Redis
|
||||
redis_host: str = "192.168.31.105"
|
||||
redis_port: int = 6379
|
||||
redis_password: str = "123456"
|
||||
redis_db: int = 0
|
||||
redis_pool_size: int = 10
|
||||
|
||||
# LLM 供应商连接配置
|
||||
|
||||
# 火山引擎
|
||||
volcengine_api_key: str = "fd065993-bee2-4f31-8bf2-56d5d3012c02"
|
||||
volcengine_base_url: str = "https://ark.cn-beijing.volces.com/api/v3"
|
||||
|
||||
# 心缘
|
||||
cardiacBrder_api_key: str = "sk-8NxoLe7ZTJveGSmtPENBm4NwN9ai4YLGw8y6fqueZrPTo4Uu"
|
||||
cardiacBrder_base_url: str = "https://api-i.xykjy.com/v1"
|
||||
|
||||
# JWT
|
||||
jwt_secret: str = "Aa123123"
|
||||
token_expire_seconds: int = 5184000
|
||||
|
||||
# 鉴权白名单路径
|
||||
auth_whitelist: list[str] = ["/health/**", "/docs/**", "/redoc/**", "/openapi.json"]
|
||||
|
||||
# 日志
|
||||
logging_level: str = "DEBUG"
|
||||
log_file_name: str = "app.log"
|
||||
|
||||
@property
|
||||
def database_url(self) -> str:
|
||||
return (
|
||||
f"mysql+asyncmy://{self.db_user}:{self.db_password}"
|
||||
f"@{self.db_host}:{self.db_port}/{self.db_name}"
|
||||
)
|
||||
|
||||
@property
|
||||
def redis_url(self) -> str:
|
||||
if self.redis_password:
|
||||
return (
|
||||
f"redis://:{self.redis_password}"
|
||||
f"@{self.redis_host}:{self.redis_port}/{self.redis_db}"
|
||||
)
|
||||
return f"redis://{self.redis_host}:{self.redis_port}/{self.redis_db}"
|
||||
|
||||
model_config = SettingsConfigDict(
|
||||
env_file=".env",
|
||||
env_file_encoding="utf-8",
|
||||
case_sensitive=False,
|
||||
extra="ignore",
|
||||
)
|
||||
Reference in New Issue
Block a user