init
This commit is contained in:
47
backend/app/config.py
Normal file
47
backend/app/config.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import os
|
||||
import sys
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
|
||||
def _get_base_dir() -> str:
|
||||
"""获取基础目录(支持 PyInstaller 打包后的路径)"""
|
||||
if getattr(sys, 'frozen', False):
|
||||
# PyInstaller 打包后,exe 所在目录
|
||||
return os.path.dirname(sys.executable)
|
||||
else:
|
||||
# 开发模式,backend 目录
|
||||
return os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
|
||||
BASE_DIR = _get_base_dir()
|
||||
|
||||
|
||||
class Settings:
|
||||
# App
|
||||
APP_HOST: str = os.getenv("APP_HOST", "0.0.0.0")
|
||||
APP_PORT: int = int(os.getenv("APP_PORT", "8000"))
|
||||
UPLOAD_DIR: str = os.getenv("UPLOAD_DIR", os.path.join(BASE_DIR, "uploads"))
|
||||
EXPORT_DIR: str = os.getenv("EXPORT_DIR", os.path.join(BASE_DIR, "exports"))
|
||||
DB_DIR: str = os.getenv("DB_DIR", os.path.join(BASE_DIR, "data"))
|
||||
|
||||
# LLM
|
||||
LLM_PROVIDER: str = os.getenv("LLM_PROVIDER", "xiaomi")
|
||||
LLM_MODEL: str = os.getenv("LLM_MODEL", "MiMo-V2-Flash")
|
||||
LLM_BASE_URL: str = os.getenv("LLM_BASE_URL", "https://api.xiaomimimo.com/v1")
|
||||
LLM_API_KEY: str = os.getenv("LLM_API_KEY", "")
|
||||
|
||||
# Extraction
|
||||
SEGMENT_MAX_LINES: int = int(os.getenv("SEGMENT_MAX_LINES", "500"))
|
||||
STORY_MIN_LINES: int = int(os.getenv("STORY_MIN_LINES", "50"))
|
||||
CONFIDENCE_THRESHOLD: float = float(os.getenv("CONFIDENCE_THRESHOLD", "0.5"))
|
||||
TEMPERATURE: float = float(os.getenv("TEMPERATURE", "0.3"))
|
||||
|
||||
@property
|
||||
def database_url(self) -> str:
|
||||
os.makedirs(self.DB_DIR, exist_ok=True)
|
||||
return f"sqlite+aiosqlite:///{self.DB_DIR}/story_extractor.db"
|
||||
|
||||
|
||||
settings = Settings()
|
||||
Reference in New Issue
Block a user