Spaces:
Running
Running
| """Configuration settings, environment variables, and constants.""" | |
| import os | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| # Environment Variables | |
| ZILLIZ_BEARER = os.getenv("ZILLIZ_BEARER") | |
| ZILLIZ_ENDPOINT = os.getenv("ZILLIZ_ENDPOINT") | |
| OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") | |
| # App Constants | |
| # Note: TOTAL_GALAXIES is dynamically updated from Zilliz at startup (see app.py) | |
| # This is just a fallback default value | |
| TOTAL_GALAXIES = 0 | |
| DEFAULT_TOP_K = 300 | |
| DEFAULT_DISPLAY_COUNT = 60 | |
| LOAD_MORE_COUNT = 120 | |
| # Zilliz Configuration | |
| ZILLIZ_COLLECTION_NAME = "legacy" | |
| # Image search always uses legacy collection which has pre-existing embeddings | |
| ZILLIZ_IMAGE_SEARCH_COLLECTION_NAME = ZILLIZ_COLLECTION_NAME | |
| # Collection-specific configurations | |
| COLLECTION_CONFIGS = { | |
| "legacy": { | |
| "anns_field": "aion_search_embedding", | |
| "primary_key": "object_id", | |
| "output_fields": ["object_id", "ra", "dec", "r_mag"] | |
| }, | |
| "aionsearch": { | |
| "anns_field": "clip_embedding", | |
| "primary_key": "ra_dec", | |
| "output_fields": ["ra_dec", "ra", "dec", "r_mag"] | |
| } | |
| } | |
| # Get configuration for the selected collection | |
| _collection_config = COLLECTION_CONFIGS.get(ZILLIZ_COLLECTION_NAME, COLLECTION_CONFIGS[ZILLIZ_COLLECTION_NAME]) | |
| ZILLIZ_ANNS_FIELD = _collection_config["anns_field"] | |
| ZILLIZ_PRIMARY_KEY = _collection_config["primary_key"] | |
| ZILLIZ_OUTPUT_FIELDS = _collection_config["output_fields"] | |
| # OpenAI Configuration | |
| OPENAI_EMBEDDING_MODEL = "text-embedding-3-large" | |
| # CLIP Model Configuration | |
| CLIP_EMBEDDING_DIM = 1024 | |
| CLIP_NORMALIZE_EPS = 1e-3 | |
| # UI Configuration | |
| IMAGE_HEIGHT = "160px" | |
| IMAGE_WIDTH = "100%" | |
| CUTOUT_FOV = 0.025 | |
| CUTOUT_SIZE = 256 | |
| # URL State Configuration | |
| URL_STATE_PARAM = "s" # Query parameter name for encoded state | |
| # Logging Configuration | |
| VCU_COST_PER_MILLION = 4.0 # $4 per 1 million vCU | |
| # Hugging Face Dataset Logging | |
| HF_LOG_REPO_ID = os.getenv("HF_LOG_REPO_ID") # e.g. "nolank/aionsearch-query-logs" | |
| HF_LOG_EVERY_MINUTES = int(os.getenv("HF_LOG_EVERY_MINUTES", "10")) | |
| # Feature Flags (for future features) | |
| FEATURE_IMAGE_SEARCH = False | |
| FEATURE_AUTH = False | |
| FEATURE_CACHE = False | |
| FEATURE_RERANKING = False | |
| FEATURE_TRACKING = True | |
| FEATURE_VECTOR_ADDITION = True | |