diff --git a/custom_components/anthropic_custom/config_flow.py b/custom_components/anthropic_custom/config_flow.py index 7732c2a..d5d2a8b 100644 --- a/custom_components/anthropic_custom/config_flow.py +++ b/custom_components/anthropic_custom/config_flow.py @@ -78,6 +78,7 @@ STEP_USER_DATA_SCHEMA = vol.Schema( { vol.Required(CONF_API_KEY): str, vol.Optional(CONF_BASE_URL): str, + vol.Optional(CONF_CHAT_MODEL, default="claude-3-haiku-20240307"): str, } ) @@ -110,7 +111,7 @@ async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> None: if exc.status_code == 404: # Proxy does not support models endpoint — validate via a tiny messages call await client.messages.create( - model="claude-3-haiku-20240307", + model=data.get(CONF_CHAT_MODEL) or "claude-3-haiku-20240307", max_tokens=1, messages=[{"role": "user", "content": "hi"}], timeout=10.0, @@ -373,10 +374,12 @@ class ConversationSubentryFlowHandler(ConfigSubentryFlow): """Manage advanced options.""" errors: dict[str, str] = {} + # Use model stored in parent entry as default (set during setup) + entry_default_model = self._get_entry().data.get(CONF_CHAT_MODEL, DEFAULT[CONF_CHAT_MODEL]) step_schema: VolDictType = { vol.Optional( CONF_CHAT_MODEL, - default=DEFAULT[CONF_CHAT_MODEL], + default=entry_default_model, ): SelectSelector( SelectSelectorConfig( options=await self._get_model_list(), custom_value=True