Spaces:
Sleeping
Sleeping
| from functools import lru_cache | |
| from pathlib import Path | |
| from pydantic import Field | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| class Settings(BaseSettings): | |
| qdrant_url: str = Field(default="http://localhost:6333", alias="QDRANT_URL") | |
| qdrant_api_key: str | None = Field(default=None, alias="QDRANT_API_KEY") | |
| asset_root: Path = Field(default=Path("../data/assets"), alias="AFTERIMAGE_ASSET_ROOT") | |
| manifest_path: Path = Field(default=Path("../data/manifest.json"), alias="AFTERIMAGE_MANIFEST") | |
| allow_fake_embeddings: bool = Field(default=False, alias="AFTERIMAGE_ALLOW_FAKE_EMBEDDINGS") | |
| cors_origins: str = Field(default="http://localhost:5173", alias="AFTERIMAGE_CORS_ORIGINS") | |
| collection_name: str = "object_memory" | |
| vector_size: int = 512 | |
| model_name: str = "Qdrant/clip-ViT-B-32-vision" | |
| text_model_name: str = "Qdrant/clip-ViT-B-32-text" | |
| model_config = SettingsConfigDict(env_file=".env", extra="ignore") | |
| def cors_origin_list(self) -> list[str]: | |
| return [origin.strip() for origin in self.cors_origins.split(",") if origin.strip()] | |
| def resolved_asset_root(self) -> Path: | |
| return self.asset_root.expanduser().resolve() | |
| def resolved_manifest_path(self) -> Path: | |
| return self.manifest_path.expanduser().resolve() | |
| def get_settings() -> Settings: | |
| return Settings() | |