feat: fallback model list when proxy lacks models endpoint
This commit is contained in:
1 parent
b2d046694a
commit
8deb3febdb
1 file changed
+17
-2
@@ -119,13 +119,28 @@ async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> None:
|
||||
raise
|
||||
|
||||
|
||||
FALLBACK_MODELS: list[SelectOptionDict] = [
|
||||
SelectOptionDict(label="Claude Sonnet 4.5", value="claude-sonnet-4-5"),
|
||||
SelectOptionDict(label="Claude Haiku 4.5", value="claude-haiku-4-5"),
|
||||
SelectOptionDict(label="Claude Opus 4.5", value="claude-opus-4-5"),
|
||||
SelectOptionDict(label="Claude Sonnet 4.0", value="claude-sonnet-4-0"),
|
||||
SelectOptionDict(label="Claude Opus 4.0", value="claude-opus-4-0"),
|
||||
SelectOptionDict(label="Claude Sonnet 3.5", value="claude-3-5-sonnet-20241022"),
|
||||
SelectOptionDict(label="Claude Haiku 3.5", value="claude-3-5-haiku-20241022"),
|
||||
SelectOptionDict(label="Claude Haiku 3", value="claude-3-haiku-20240307"),
|
||||
]
|
||||
|
||||
|
||||
async def get_model_list(client: anthropic.AsyncAnthropic) -> list[SelectOptionDict]:
|
||||
"""Get list of available models."""
|
||||
"""Get list of available models, falling back to a hardcoded list if the endpoint is unavailable."""
|
||||
try:
|
||||
models = (await client.models.list()).data
|
||||
except anthropic.AnthropicError:
|
||||
models = []
|
||||
_LOGGER.debug("Models endpoint unavailable, using fallback model list")
|
||||
return FALLBACK_MODELS
|
||||
_LOGGER.debug("Available models: %s", models)
|
||||
if not models:
|
||||
return FALLBACK_MODELS
|
||||
model_options: list[SelectOptionDict] = []
|
||||
short_form = re.compile(r"[^\d]-\d$")
|
||||
for model_info in models:
|
||||
|
||||
Reference in new issue
Block a user