mirror of
https://github.com/smkrv/ha-text-ai.git
synced 2026-07-28 01:54:00 +08:00
Release v2.0.0
This commit is contained in:
@@ -13,25 +13,50 @@ from homeassistant.util import dt as dt_util
|
|||||||
from homeassistant.util import slugify
|
from homeassistant.util import slugify
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
|
# Основные константы домена
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
CONF_API_PROVIDER,
|
CONF_INSTANCE,
|
||||||
ATTR_QUESTION,
|
CONF_MODEL,
|
||||||
ATTR_RESPONSE,
|
|
||||||
ATTR_MODEL,
|
# Атрибуты сенсора
|
||||||
ATTR_TOTAL_RESPONSES,
|
ATTR_TOTAL_RESPONSES,
|
||||||
ATTR_API_STATUS,
|
ATTR_TOTAL_ERRORS,
|
||||||
ATTR_ERROR_COUNT,
|
ATTR_AVG_RESPONSE_TIME,
|
||||||
|
ATTR_LAST_REQUEST_TIME,
|
||||||
ATTR_LAST_ERROR,
|
ATTR_LAST_ERROR,
|
||||||
ENTITY_ICON,
|
ATTR_IS_PROCESSING,
|
||||||
ENTITY_ICON_ERROR,
|
ATTR_IS_RATE_LIMITED,
|
||||||
ENTITY_ICON_PROCESSING,
|
ATTR_IS_MAINTENANCE,
|
||||||
|
ATTR_API_VERSION,
|
||||||
|
ATTR_ENDPOINT_STATUS,
|
||||||
|
ATTR_PERFORMANCE_METRICS,
|
||||||
|
ATTR_HISTORY_SIZE,
|
||||||
|
ATTR_UPTIME,
|
||||||
|
ATTR_API_PROVIDER,
|
||||||
|
ATTR_MODEL,
|
||||||
|
ATTR_SYSTEM_PROMPT,
|
||||||
|
|
||||||
|
# Метрики
|
||||||
|
METRIC_TOTAL_TOKENS,
|
||||||
|
METRIC_PROMPT_TOKENS,
|
||||||
|
METRIC_COMPLETION_TOKENS,
|
||||||
|
METRIC_SUCCESSFUL_REQUESTS,
|
||||||
|
METRIC_FAILED_REQUESTS,
|
||||||
|
METRIC_AVERAGE_LATENCY,
|
||||||
|
METRIC_MAX_LATENCY,
|
||||||
|
METRIC_MIN_LATENCY,
|
||||||
|
|
||||||
|
# Состояния и иконки
|
||||||
STATE_READY,
|
STATE_READY,
|
||||||
STATE_PROCESSING,
|
STATE_PROCESSING,
|
||||||
STATE_ERROR,
|
STATE_ERROR,
|
||||||
STATE_DISCONNECTED,
|
|
||||||
STATE_RATE_LIMITED,
|
|
||||||
STATE_INITIALIZING,
|
STATE_INITIALIZING,
|
||||||
STATE_MAINTENANCE,
|
STATE_MAINTENANCE,
|
||||||
|
STATE_RATE_LIMITED,
|
||||||
|
STATE_DISCONNECTED,
|
||||||
|
ENTITY_ICON,
|
||||||
|
ENTITY_ICON_ERROR,
|
||||||
|
ENTITY_ICON_PROCESSING,
|
||||||
)
|
)
|
||||||
from .coordinator import HATextAICoordinator
|
from .coordinator import HATextAICoordinator
|
||||||
|
|
||||||
@@ -65,13 +90,27 @@ class HATextAISensor(CoordinatorEntity, SensorEntity):
|
|||||||
self._error_count = 0
|
self._error_count = 0
|
||||||
self._last_error = None
|
self._last_error = None
|
||||||
|
|
||||||
|
# Получаем модель из конфигурации или данных координатора
|
||||||
|
model = (
|
||||||
|
self.coordinator.data.get("model")
|
||||||
|
if self.coordinator.data
|
||||||
|
else self._config_entry.data.get(CONF_MODEL, "Unknown")
|
||||||
|
)
|
||||||
|
|
||||||
|
api_provider = self._config_entry.data.get(CONF_API_PROVIDER, "Unknown")
|
||||||
|
api_version = (
|
||||||
|
self.coordinator.data.get("api_version", "v1")
|
||||||
|
if self.coordinator.data
|
||||||
|
else "v1"
|
||||||
|
)
|
||||||
|
|
||||||
# Обновляем device_info с использованием DeviceInfo
|
# Обновляем device_info с использованием DeviceInfo
|
||||||
self._attr_device_info = DeviceInfo(
|
self._attr_device_info = DeviceInfo(
|
||||||
identifiers={(DOMAIN, self._attr_unique_id)},
|
identifiers={(DOMAIN, self._attr_unique_id)},
|
||||||
name=self._name,
|
name=self._name,
|
||||||
manufacturer="Community",
|
manufacturer="Community",
|
||||||
model=f"{coordinator.model} ({self._config_entry.data.get(CONF_API_PROVIDER, 'Unknown')} provider)",
|
model=f"{model} ({api_provider} provider)",
|
||||||
sw_version=getattr(coordinator, 'api_version', 'v1'),
|
sw_version=api_version,
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
Reference in New Issue
Block a user