Files
wiki_crawler/backend/core/config.py

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()