From 0d65daab984b649fe57d71d0998f89c74016e1e3 Mon Sep 17 00:00:00 2001 From: arsam Date: Fri, 18 Sep 2026 23:06:15 +0330 Subject: [PATCH] Import source: axon/config Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality. --- axon/config.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 axon/config.py 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()