from pydantic_settings import BaseSettings class Settings(BaseSettings): brave_api_key: str | None = None serper_api_key: str | None = None redis_url: str | None = "redis://localhost:6379" api_keys: str | None = None litellm_base_url: str = "http://localhost:4000" litellm_api_key: str | None = None synthesis_model: str = "claude-sonnet-4-6" reranker_model: str = "BAAI/bge-reranker-v2-m3" port: int = 8000 max_concurrent_scrapes: int = 10 scrape_timeout: int = 5 rate_limit_per_minute: int = 60 extract_timeout: int = 10 crawl_max_pages: int = 50 crawl_max_depth: int = 3 index_db_path: str = "axon_index.sqlite3" enable_browser_fallback: bool = False @property def api_key_list(self) -> list[str]: if not self.api_keys: return [] return [k.strip() for k in self.api_keys.split(",") if k.strip()] model_config = {"env_file": ".env", "extra": "ignore"} settings = Settings()