Update config_flow.py

This commit is contained in:
smkrv
2024-11-14 23:23:01 +03:00
committed by GitHub
parent 9a8c676570
commit 0789f8c386
+16 -8
View File
@@ -5,7 +5,9 @@ import logging
from typing import Any
import voluptuous as vol
import openai
from openai import AsyncOpenAI
from openai.types.error import APIError
from openai.exceptions import AuthenticationError, APIConnectionError
from homeassistant import config_entries
from homeassistant.core import HomeAssistant, callback
@@ -65,16 +67,22 @@ class TextAIConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
async def _test_api_key(api_key: str, api_base: str | None) -> None:
"""Test if the API key is valid."""
try:
openai.api_key = api_key
if api_base:
openai.api_base = api_base
client = AsyncOpenAI(
api_key=api_key,
base_url=api_base if api_base else DEFAULT_API_BASE
)
models = await openai.Model.alist()
if not models:
models = await client.models.list()
if not models.data:
raise ApiKeyError
except openai.error.AuthenticationError as err:
except AuthenticationError as err:
raise ApiKeyError from err
except APIConnectionError as err:
raise ApiConnectionError from err
except APIError as err:
if err.status_code == 401:
raise ApiKeyError from err
except openai.error.APIConnectionError as err:
raise ApiConnectionError from err
@staticmethod