mirror of
https://github.com/smkrv/ha-text-ai.git
synced 2026-07-30 03:43:55 +08:00
Release v2.0.0
This commit is contained in:
@@ -122,56 +122,33 @@ async def async_setup(hass: HomeAssistant, config: Dict[str, Any]) -> bool:
|
|||||||
_LOGGER.error("Error setting system prompt: %s", str(err))
|
_LOGGER.error("Error setting system prompt: %s", str(err))
|
||||||
raise HomeAssistantError(f"Failed to set system prompt: {str(err)}")
|
raise HomeAssistantError(f"Failed to set system prompt: {str(err)}")
|
||||||
|
|
||||||
# Register services with proper schema and target selector
|
# Базовая схема с target как vol.Schema
|
||||||
service_schema = {
|
base_schema = vol.Schema({
|
||||||
vol.Required("target"): {
|
vol.Required("target"): {
|
||||||
vol.Required("entity_id"): cv.entity_id
|
vol.Required("entity_id"): cv.entity_id
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
|
|
||||||
|
# Регистрация сервисов с использованием extend
|
||||||
hass.services.async_register(
|
hass.services.async_register(
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
SERVICE_ASK_QUESTION,
|
SERVICE_ASK_QUESTION,
|
||||||
async_ask_question,
|
async_ask_question,
|
||||||
schema=vol.Schema({**service_schema, **SERVICE_SCHEMA_ASK_QUESTION})
|
schema=base_schema.extend(SERVICE_SCHEMA_ASK_QUESTION.schema)
|
||||||
)
|
)
|
||||||
|
|
||||||
hass.services.async_register(
|
hass.services.async_register(
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
SERVICE_CLEAR_HISTORY,
|
SERVICE_CLEAR_HISTORY,
|
||||||
async_clear_history,
|
async_clear_history,
|
||||||
schema=vol.Schema(service_schema)
|
schema=base_schema
|
||||||
)
|
)
|
||||||
|
|
||||||
hass.services.async_register(
|
hass.services.async_register(
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
SERVICE_SET_SYSTEM_PROMPT,
|
SERVICE_SET_SYSTEM_PROMPT,
|
||||||
async_set_system_prompt,
|
async_set_system_prompt,
|
||||||
schema=vol.Schema({**service_schema, **SERVICE_SCHEMA_SET_SYSTEM_PROMPT})
|
schema=base_schema.extend(SERVICE_SCHEMA_SET_SYSTEM_PROMPT.schema)
|
||||||
)
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
# Register services with proper schema validation
|
|
||||||
hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_ASK_QUESTION,
|
|
||||||
async_ask_question,
|
|
||||||
schema=vol.Schema(SERVICE_SCHEMA_ASK_QUESTION)
|
|
||||||
)
|
|
||||||
|
|
||||||
hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_CLEAR_HISTORY,
|
|
||||||
async_clear_history,
|
|
||||||
schema=vol.Schema({})
|
|
||||||
)
|
|
||||||
|
|
||||||
hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
SERVICE_SET_SYSTEM_PROMPT,
|
|
||||||
async_set_system_prompt,
|
|
||||||
schema=vol.Schema(SERVICE_SCHEMA_SET_SYSTEM_PROMPT)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
@@ -252,7 +229,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
temperature=entry.data.get(CONF_TEMPERATURE, DEFAULT_TEMPERATURE),
|
temperature=entry.data.get(CONF_TEMPERATURE, DEFAULT_TEMPERATURE),
|
||||||
max_tokens=entry.data.get(CONF_MAX_TOKENS, DEFAULT_MAX_TOKENS),
|
max_tokens=entry.data.get(CONF_MAX_TOKENS, DEFAULT_MAX_TOKENS),
|
||||||
request_interval=float(entry.data.get(CONF_REQUEST_INTERVAL, DEFAULT_REQUEST_INTERVAL)),
|
request_interval=float(entry.data.get(CONF_REQUEST_INTERVAL, DEFAULT_REQUEST_INTERVAL)),
|
||||||
name=entry.title, # Передаем имя из конфигурации
|
name=entry.title,
|
||||||
session=session,
|
session=session,
|
||||||
is_anthropic=is_anthropic
|
is_anthropic=is_anthropic
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user