From e68ef21522bb95c9bf44d25957c148cc67e12a07 Mon Sep 17 00:00:00 2001 From: Kory Prince Date: Sun, 28 Dec 2025 16:22:34 -0600 Subject: [PATCH] ollama integration: Don't drop all falsey values (#159735) --- homeassistant/components/ollama/entity.py | 6 +++++- tests/components/ollama/test_conversation.py | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/ollama/entity.py b/homeassistant/components/ollama/entity.py index 95ddcc402c0..77c0acdca3a 100644 --- a/homeassistant/components/ollama/entity.py +++ b/homeassistant/components/ollama/entity.py @@ -75,7 +75,11 @@ def _parse_tool_args(arguments: dict[str, Any]) -> dict[str, Any]: small local tool use models. This will repair invalid json arguments and omit unnecessary arguments with empty values that will fail intent parsing. """ - return {k: _fix_invalid_arguments(v) for k, v in arguments.items() if v} + return { + k: _fix_invalid_arguments(v) + for k, v in arguments.items() + if v is not None and v != "" + } def _convert_content( diff --git a/tests/components/ollama/test_conversation.py b/tests/components/ollama/test_conversation.py index 5a8a2f74bc0..74e47124606 100644 --- a/tests/components/ollama/test_conversation.py +++ b/tests/components/ollama/test_conversation.py @@ -277,6 +277,14 @@ async def test_template_variables( {"domain": "['light']"}, {"domain": "['light']"}, # Preserve invalid json that can't be parsed ), + ( + {"position": 0}, + {"position": 0}, # Preserve 0 as a valid value + ), + ( + {"enabled": False}, + {"enabled": False}, # Preserve False as a valid value + ), ], ) @patch("homeassistant.components.ollama.entity.llm.AssistAPI._async_get_tools")