From dcacac696581a3f62276ae06376657fdaab47bcb Mon Sep 17 00:00:00 2001 From: Oskar Kapala Date: Thu, 28 May 2026 11:34:08 +0200 Subject: [PATCH] =?UTF-8?q?fix(planner-agent):=20rename=20OLLAMA=5FHOST=20?= =?UTF-8?q?=E2=86=92=20OLLAMA=5FAPI=5FBASE=20(litellm=20convention)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LiteLLM reads OLLAMA_API_BASE, not OLLAMA_HOST. - llm_router.py: DEFAULT_OLLAMA_HOST → DEFAULT_OLLAMA_API_BASE, param ollama_host → ollama_api_base - planner.py: env var os.getenv("OLLAMA_HOST") → os.getenv("OLLAMA_API_BASE"), param renamed accordingly - /opt/homelab/config/planner-agent/.env on SOLARIA updated in-place (not in git) Co-Authored-By: Claude Sonnet 4.6 --- services/planner-agent/src/llm_router.py | 16 +++++++++------- services/planner-agent/src/planner.py | 18 +++++++++--------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/services/planner-agent/src/llm_router.py b/services/planner-agent/src/llm_router.py index 505a89b..7a8fe4b 100644 --- a/services/planner-agent/src/llm_router.py +++ b/services/planner-agent/src/llm_router.py @@ -158,8 +158,10 @@ class LLMRouter: redis_url: Redis connection URL for metrics publishing. Set to None to disable Redis (useful in tests / local dev). - ollama_host: - Base URL of the Ollama API. Defaults to piha's Tailscale address. + ollama_api_base: + Base URL of the Ollama API. Maps to the ``OLLAMA_API_BASE`` + environment variable (the name LiteLLM recognises). + Defaults to SATURN's Tailscale address. ollama_model: Model tag as known to Ollama (e.g. "qwen2.5:7b"). chain: @@ -167,14 +169,14 @@ class LLMRouter: Qwen → haiku → sonnet chain is used. """ - DEFAULT_OLLAMA_HOST = "http://100.108.208.3:11434" - DEFAULT_OLLAMA_MODEL = "qwen2.5:7b" - DEFAULT_REDIS_URL = "redis://100.108.208.3:6379" + DEFAULT_OLLAMA_API_BASE = "http://100.108.208.3:11434" + DEFAULT_OLLAMA_MODEL = "qwen2.5:7b" + DEFAULT_REDIS_URL = "redis://100.108.208.3:6379" def __init__( self, redis_url: Optional[str] = DEFAULT_REDIS_URL, - ollama_host: str = DEFAULT_OLLAMA_HOST, + ollama_api_base: str = DEFAULT_OLLAMA_API_BASE, ollama_model: str = DEFAULT_OLLAMA_MODEL, chain: Optional[list[ModelConfig]] = None, ) -> None: @@ -185,7 +187,7 @@ class LLMRouter: ModelConfig( name=f"ollama/{ollama_model}", timeout=8.0, - api_base=ollama_host, + api_base=ollama_api_base, ), ModelConfig( name="claude-haiku-4-5-20251001", diff --git a/services/planner-agent/src/planner.py b/services/planner-agent/src/planner.py index 43c1208..06b6694 100644 --- a/services/planner-agent/src/planner.py +++ b/services/planner-agent/src/planner.py @@ -66,7 +66,7 @@ HEARTBEAT = STATE_DIR / "planner-agent.heartbeat" # Configuration (from env) # --------------------------------------------------------------------------- REDIS_URL = os.getenv("REDIS_URL", "redis://100.108.208.3:6379") -OLLAMA_HOST = os.getenv("OLLAMA_HOST", "http://100.108.208.3:11434") +OLLAMA_API_BASE = os.getenv("OLLAMA_API_BASE", "http://100.108.208.3:11434") OLLAMA_MODEL = os.getenv("OLLAMA_MODEL", "qwen2.5:7b") NODE_NAME = os.getenv("NODE_NAME", "solaria") COOLDOWN_SECONDS = int(os.getenv("COOLDOWN_SECONDS", "300")) # 5 min @@ -421,11 +421,11 @@ class PlannerAgent: def __init__( self, - redis_url: str = REDIS_URL, - ollama_host: str = OLLAMA_HOST, - ollama_model: str = OLLAMA_MODEL, - router: Optional[LLMRouter] = None, - cooldown: Optional[CooldownTracker] = None, + redis_url: str = REDIS_URL, + ollama_api_base: str = OLLAMA_API_BASE, + ollama_model: str = OLLAMA_MODEL, + router: Optional[LLMRouter] = None, + cooldown: Optional[CooldownTracker] = None, ) -> None: self._redis_url = redis_url self._redis: Optional[aioredis.Redis] = None @@ -433,9 +433,9 @@ class PlannerAgent: self._running = False self.router = router or LLMRouter( - redis_url = redis_url, - ollama_host = ollama_host, - ollama_model = ollama_model, + redis_url = redis_url, + ollama_api_base = ollama_api_base, + ollama_model = ollama_model, ) self.cooldown = cooldown or CooldownTracker()