Spaces:
Sleeping
Sleeping
| """ | |
| GCAS Search Engine – Configuration | |
| All values can be overridden via environment variables or a .env file. | |
| """ | |
| from __future__ import annotations | |
| from typing import Optional | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| class Settings(BaseSettings): | |
| model_config = SettingsConfigDict(env_file=".env", extra="ignore") | |
| # ------------------------------------------------------------------ | |
| # Data paths | |
| # ------------------------------------------------------------------ | |
| # Folder that contains the .xlsx files to index | |
| excel_folder: str = "./data" | |
| # Where FAISS indexes + pickle cache are stored between restarts | |
| index_cache_folder: str = "./index_cache" | |
| # ------------------------------------------------------------------ | |
| # Embeddings ("local" = sentence-transformers, "openai" = OpenAI API) | |
| # ------------------------------------------------------------------ | |
| embedding_provider: str = "local" | |
| # Multilingual model supports English + Hindi + Gujarati (50+ languages). | |
| # Produces 384-dim vectors – compatible with existing FAISS indexes. | |
| # Switch to "all-MiniLM-L6-v2" if you only need English. | |
| local_embedding_model: str = "paraphrase-multilingual-MiniLM-L12-v2" | |
| # Model used when embedding_provider == "openai" | |
| openai_embedding_model: str = "text-embedding-3-small" | |
| # ------------------------------------------------------------------ | |
| # LLM reranker ("openai" | "anthropic") | |
| # ------------------------------------------------------------------ | |
| llm_provider: str = "openai" | |
| llm_model: str = "gpt-4o-mini" | |
| # ------------------------------------------------------------------ | |
| # API keys (can also be passed per-request) | |
| # ------------------------------------------------------------------ | |
| openai_api_key: Optional[str] = None | |
| anthropic_api_key: Optional[str] = None | |
| # ------------------------------------------------------------------ | |
| # Search defaults | |
| # ------------------------------------------------------------------ | |
| default_top_k: int = 10 | |
| # How many FAISS candidates to gather before LLM reranking | |
| rerank_pool_size: int = 50 | |
| # ------------------------------------------------------------------ | |
| # Server | |
| # ------------------------------------------------------------------ | |
| api_host: str = "0.0.0.0" | |
| api_port: int = 8000 | |
| settings = Settings() | |