diff --git a/axon/config.py b/axon/config.py new file mode 100644 index 0000000..95f9425 --- /dev/null +++ b/axon/config.py @@ -0,0 +1,32 @@ +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()