31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import os
|
|
from typing import ClassVar # <--- 1. 导入这个
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
class Settings(BaseSettings):
|
|
DB_USER: str
|
|
DB_PASS: str
|
|
DB_HOST: str
|
|
DB_PORT: str = "5432"
|
|
DB_NAME: str
|
|
DASHSCOPE_API_KEY: str
|
|
FIRECRAWL_API_KEY_EXSIST: bool = True # 是否存在API密钥
|
|
FIRECRAWL_API_KEY: str
|
|
FIRECRAWL_API_URL: str = "https://api.firecrawl.dev/" # 默认官方API
|
|
|
|
CANDIDATE_NUM: int = 50
|
|
|
|
# =========================================================
|
|
# 【核心修复】加上 ClassVar 类型注解
|
|
# =========================================================
|
|
BASE_DIR: ClassVar[str] = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
ENV_PATH: ClassVar[str] = os.path.join(BASE_DIR, ".env")
|
|
|
|
# 使用绝对路径加载
|
|
model_config = SettingsConfigDict(env_file=ENV_PATH, extra="ignore")
|
|
|
|
@property
|
|
def DATABASE_URL(self) -> str:
|
|
return f"postgresql+psycopg2://{self.DB_USER}:{self.DB_PASS}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}"
|
|
|
|
settings = Settings() |