/
Anna_brv
/
ASR-Service
Обзор
Документация
Войти
/
Anna_brv
/
ASR-Service
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/config.py
71 строка
2 KB
Anna
first_commit
30 апр 2026, 21:52
30 апр 2026, 21:52
283885c
Код
Авторство
О чём код?
"""Configuration settings for the ASR service.""" import os from pathlib import Path from pydantic import Field, SecretStr, field_validator from pydantic_settings import BaseSettings, SettingsConfigDict __all__ = ["Settings", "settings"] class Settings(BaseSettings): """Application settings loaded from environment variables.""" # API settings api_key: SecretStr = Field(default="welcome") # Hugging Face token for pyannote.audio hf_token: SecretStr = Field(default="hf_token") # Redis settings for RQ redis_url: str = Field(default="redis://localhost:6379/0") worker_queues: list[str] = Field(default=["asr_tasks"]) # model cache directory - теперь используем env переменную model_cache_dir: Path = Field(default=Path("./models")) # Temp directory for processing files (not stored long term) - теперь используем env переменную temp_dir: Path = Field(default=Path("./tmp")) # Default job timeout in seconds (10 minutes) default_job_timeout: int = 600 # Model settings default_model: str = "silero" local_model_path: str | None = None # CORS settings allowed_origins: list[str] = Field(default=["http://localhost", "http://localhost:8030"]) # Max upload size in MB max_upload_size_mb: int = 400 # Rate limiting max_active_tasks_per_user: int = 3 # Worker settings worker_job_timeout: int = 3600 # Logging log_level: str = "INFO" model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", env_prefix="ASR_", case_sensitive=False, extra="ignore", ) @field_validator("hf_token", "api_key") @classmethod def validate_secrets(cls, v: SecretStr) -> SecretStr: if not v.get_secret_value(): raise ValueError("Secret value must not be empty in production") return v # Global settings instance settings = Settings()