wangzhibo
2026-08-28 15a761842dcc4cab565ce9ae05b5a701d94dc2de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from pathlib import Path
 
from pydantic_settings import BaseSettings, SettingsConfigDict
 
 
class Settings(BaseSettings):
    model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
 
    host: str = "0.0.0.0"
    port: int = 9500
    data_dir: Path = Path(__file__).resolve().parents[2] / "data"
 
    mqtt_broker: str = "124.222.109.197"
    mqtt_port: int = 2100
    mqtt_username: str = "AI_XIAOZHI"
    mqtt_password: str = "V9qL7!mX2@rT8$kN5^wP1&c"
    mqtt_client_id: str = "snlp-server"
    mqtt_enabled: bool = True
 
    scene_confidence_threshold: float = 0.7
    base_url: str = "http://localhost:9500"
 
    runtime_dir: Path = Path(__file__).resolve().parents[1] / "runtime"
    initialized_devices_file: Path | None = None
    auto_init_enabled: bool = True
    device_data_root: str = "/data"
 
    @property
    def resolved_initialized_devices_file(self) -> Path:
        if self.initialized_devices_file:
            return self.initialized_devices_file
        return self.runtime_dir / "initialized_devices.json"
 
settings = Settings()