diff --git a/homeassistant/components/openai_conversation/ai_task.py b/homeassistant/components/openai_conversation/ai_task.py index 29badc0bc82..d917a957771 100644 --- a/homeassistant/components/openai_conversation/ai_task.py +++ b/homeassistant/components/openai_conversation/ai_task.py @@ -71,7 +71,9 @@ class OpenAITaskEntity( chat_log: conversation.ChatLog, ) -> ai_task.GenDataTaskResult: """Handle a generate data task.""" - await self._async_handle_chat_log(chat_log, task.name, task.structure) + await self._async_handle_chat_log( + chat_log, task.name, task.structure, max_iterations=1000 + ) if not isinstance(chat_log.content[-1], conversation.AssistantContent): raise HomeAssistantError( diff --git a/homeassistant/components/openai_conversation/entity.py b/homeassistant/components/openai_conversation/entity.py index 2c12e895e5e..45352bdf3d5 100644 --- a/homeassistant/components/openai_conversation/entity.py +++ b/homeassistant/components/openai_conversation/entity.py @@ -481,6 +481,7 @@ class OpenAIBaseLLMEntity(Entity): structure_name: str | None = None, structure: vol.Schema | None = None, force_image: bool = False, + max_iterations: int = MAX_TOOL_ITERATIONS, ) -> None: """Generate an answer for the chat log.""" options = self.subentry.data @@ -632,7 +633,7 @@ class OpenAIBaseLLMEntity(Entity): client = self.entry.runtime_data # To prevent infinite loops, we limit the number of iterations - for _iteration in range(MAX_TOOL_ITERATIONS): + for _iteration in range(max_iterations): try: stream = await client.responses.create(**model_args)