AION-Search / src /config.py
astronolan's picture
Enhance search functionality and UI components
fa7eb7f
"""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