"""Конфигурация индексер-воркера.""" from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): """Настройки индексер-воркера.""" model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", case_sensitive=False, ) # PostgreSQL POSTGRES_HOST: str = "postgres" POSTGRES_PORT: int = 5432 POSTGRES_DB: str = "antiplagiator" POSTGRES_USER: str = "antiplagiator" POSTGRES_PASSWORD: str = "changeme" # Redis REDIS_URL: str = "redis://redis:6379/0" # RabbitMQ RABBITMQ_URL: str = "amqp://guest:guest@rabbitmq:5672/" # MinIO MINIO_ENDPOINT: str = "minio:9000" MINIO_ACCESS_KEY: str = "minioadmin" MINIO_SECRET_KEY: str = "changeme" MINIO_BUCKET_DOCS: str = "documents" # Elasticsearch ELASTICSEARCH_URL: str = "http://elasticsearch:9200" # Настройки обработки текста FRAGMENT_WINDOW_WORDS: int = 200 # Размер окна для фрагментов FRAGMENT_OVERLAP_WORDS: int = 50 # Перекрытие фрагментов MAX_FINGERPRINTS_PER_DOC: int = 500 # Максимум хэшей Winnowing на документ # App ENVIRONMENT: str = "development" DEBUG: bool = False @property def database_url_sync(self) -> str: """Синхронный URL для SQLAlchemy.""" return ( f"postgresql+psycopg2://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}" f"@{self.POSTGRES_HOST}:{self.POSTGRES_PORT}/{self.POSTGRES_DB}" ) settings = Settings()