Report correctly when no funds for OpenAI (#148677)

This commit is contained in:
Paulus Schoutsen 2025-07-13 17:55:24 +02:00 committed by GitHub
parent 023dd9d523
commit f3ad6bd9b6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -362,19 +362,26 @@ class OpenAIBaseLLMEntity(Entity):
try: try:
result = await client.responses.create(**model_args) result = await client.responses.create(**model_args)
async for content in chat_log.async_add_delta_content_stream(
self.entity_id, _transform_stream(chat_log, result, messages)
):
if not isinstance(content, conversation.AssistantContent):
messages.extend(_convert_content_to_param(content))
except openai.RateLimitError as err: except openai.RateLimitError as err:
LOGGER.error("Rate limited by OpenAI: %s", err) LOGGER.error("Rate limited by OpenAI: %s", err)
raise HomeAssistantError("Rate limited or insufficient funds") from err raise HomeAssistantError("Rate limited or insufficient funds") from err
except openai.OpenAIError as err: except openai.OpenAIError as err:
if (
isinstance(err, openai.APIError)
and err.type == "insufficient_quota"
):
LOGGER.error("Insufficient funds for OpenAI: %s", err)
raise HomeAssistantError("Insufficient funds for OpenAI") from err
LOGGER.error("Error talking to OpenAI: %s", err) LOGGER.error("Error talking to OpenAI: %s", err)
raise HomeAssistantError("Error talking to OpenAI") from err raise HomeAssistantError("Error talking to OpenAI") from err
async for content in chat_log.async_add_delta_content_stream(
self.entity_id, _transform_stream(chat_log, result, messages)
):
if not isinstance(content, conversation.AssistantContent):
messages.extend(_convert_content_to_param(content))
if not chat_log.unresponded_tool_results: if not chat_log.unresponded_tool_results:
break break