mirror of
https://github.com/smkrv/ha-text-ai.git
synced 2026-07-22 07:03:58 +08:00
Markdown changes
This commit is contained in:
+315
-315
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
    [](https://opensource.org/licenses/MIT) [](https://github.com/hacs/integration)
|
    [](https://opensource.org/licenses/MIT) [](https://github.com/hacs/integration)
|
||||||
|
|
||||||
<img src="https://github.com/smkrv/ha-text-ai/blob/3e3ec45b195c92989434fde40ae110027f4ea124/misc/icons/icon.png" alt="HA Text AI" width="140"/>
|
<img src="https://github.com/smkrv/ha-text-ai/blob/3e3ec45b195c92989434fde40ae110027f4ea124/misc/icons/icon.png" alt="HA Text AI" width="140"/>
|
||||||
|
|
||||||
### Расширенная AI-интеграция для Home Assistant с поддержкой нескольких провайдеров
|
### Расширенная AI-интеграция для Home Assistant с поддержкой нескольких провайдеров
|
||||||
</div>
|
</div>
|
||||||
@@ -26,365 +26,365 @@
|
|||||||
## 🌟 Возможности
|
## 🌟 Возможности
|
||||||
|
|
||||||
- 🧠 **Мультипровайдерная AI-интеграция**:
|
- 🧠 **Мультипровайдерная AI-интеграция**:
|
||||||
- Поддержка моделей OpenAI GPT
|
- Поддержка моделей OpenAI GPT
|
||||||
- Интеграция с Anthropic Claude
|
- Интеграция с Anthropic Claude
|
||||||
- Пользовательские API-эндпоинты
|
- Пользовательские API-эндпоинты
|
||||||
- Гибкий выбор модели
|
- Гибкий выбор модели
|
||||||
|
|
||||||
- 💬 **Расширенная обработка языка**:
|
- 💬 **Расширенная обработка языка**:
|
||||||
- Контекстно-зависимые ответы
|
- Контекстно-зависимые ответы
|
||||||
- Многоступенчатые диалоги
|
- Многоступенчатые диалоги
|
||||||
- Пользовательские системные инструкции
|
- Пользовательские системные инструкции
|
||||||
- Естественный поток общения
|
- Естественный поток общения
|
||||||
|
|
||||||
- 📝 **Улучшенное управление памятью**:
|
- 📝 **Улучшенное управление памятью**:
|
||||||
- Постоянная история диалогов
|
- Постоянная история диалогов
|
||||||
- Контекстно-осознанные ответы
|
- Контекстно-осознанные ответы
|
||||||
- Настраиваемые лимиты истории
|
- Настраиваемые лимиты истории
|
||||||
- Фильтрация для конкретных моделей
|
- Фильтрация для конкретных моделей
|
||||||
|
|
||||||
- ⚡ **Оптимизация производительности**:
|
- ⚡ **Оптимизация производительности**:
|
||||||
- Эффективное использование токенов
|
- Эффективное использование токенов
|
||||||
- Интеллектуальное ограничение скорости
|
- Интеллектуальное ограничение скорости
|
||||||
- Кэширование ответов
|
- Кэширование ответов
|
||||||
- Контроль интервалов запросов
|
- Контроль интервалов запросов
|
||||||
|
|
||||||
- 🎯 **Расширенная настройка**:
|
- 🎯 **Расширенная настройка**:
|
||||||
- Выбор модели для каждого запроса
|
- Выбор модели для каждого запроса
|
||||||
- Настраиваемые параметры
|
- Настраиваемые параметры
|
||||||
- Пользовательские системные промпты
|
- Пользовательские системные промпты
|
||||||
- Контроль температуры
|
- Контроль температуры
|
||||||
|
|
||||||
- 🔒 **Повышенная безопасность**:
|
- 🔒 **Повышенная безопасность**:
|
||||||
- Защищенное хранение API-ключей
|
- Защищенное хранение API-ключей
|
||||||
- Защита от превышения лимитов
|
- Защита от превышения лимитов
|
||||||
- Обработка ошибок
|
- Обработка ошибок
|
||||||
- Мониторинг использования
|
- Мониторинг использования
|
||||||
|
|
||||||
- 🎨 **Улучшенный пользовательский интерфейс**:
|
- 🎨 **Улучшенный пользовательский интерфейс**:
|
||||||
- Интуитивная конфигурация
|
- Интуитивная конфигурация
|
||||||
- Подробные атрибуты сенсоров
|
- Подробные атрибуты сенсоров
|
||||||
- Расширенный сервисный интерфейс
|
- Расширенный сервисный интерфейс
|
||||||
- UI выбора модели
|
- UI выбора модели
|
||||||
|
|
||||||
- 🔄 **Интеграция с автоматизацией**:
|
- 🔄 **Интеграция с автоматизацией**:
|
||||||
- Реакции на события
|
- Реакции на события
|
||||||
- Поддержка условной логики
|
- Поддержка условной логики
|
||||||
- Совместимость с шаблонами
|
- Совместимость с шаблонами
|
||||||
- Автоматизация для конкретных моделей
|
- Автоматизация для конкретных моделей
|
||||||
|
|
||||||
## 📋 Предварительные требования
|
## 📋 Предварительные требования
|
||||||
|
|
||||||
- Home Assistant 2023.11 или новее
|
- Home Assistant 2023.11 или новее
|
||||||
- Активный API-ключ от:
|
- Активный API-ключ от:
|
||||||
- OpenAI ([Получить ключ](https://platform.openai.com/account/api-keys))
|
- OpenAI ([Получить ключ](https://platform.openai.com/account/api-keys))
|
||||||
- Anthropic ([Получить ключ](https://console.anthropic.com/))
|
- Anthropic ([Получить ключ](https://console.anthropic.com/))
|
||||||
- OpenRouter ([Получить ключ](https://openrouter.ai/keys))
|
- OpenRouter ([Получить ключ](https://openrouter.ai/keys))
|
||||||
- Python 3.9 или новее
|
- Python 3.9 или новее
|
||||||
- Стабильное интернет-соединение
|
- Стабильное интернет-соединение
|
||||||
|
|
||||||
### Параметры конфигурации
|
### Параметры конфигурации
|
||||||
- Провайдер API (OpenAI/Anthropic)
|
- Провайдер API (OpenAI/Anthropic)
|
||||||
- API-ключ (специфичный для провайдера)
|
- API-ключ (специфичный для провайдера)
|
||||||
- Выбор модели (гибкий, модели от провайдера)
|
- Выбор модели (гибкий, модели от провайдера)
|
||||||
- Температура (управление креативностью, 0.0-2.0)
|
- Температура (управление креативностью, 0.0-2.0)
|
||||||
- Максимальные токены (Ограничение длины ответа)
|
- Максимальные токены (Ограничение длины ответа)
|
||||||
- Интервал запросов (Регулировка вызовов API)
|
- Интервал запросов (Регулировка вызовов API)
|
||||||
- Пользовательская конечная точка API (опционально)
|
- Пользовательская конечная точка API (опционально)
|
||||||
|
|
||||||
#### ⓘ Потенциально совместимые провайдеры
|
#### ⓘ Потенциально совместимые провайдеры
|
||||||
Интеграция разработана гибко и может работать с провайдерами, предлагающими API, совместимые с OpenAI:
|
Интеграция разработана гибко и может работать с провайдерами, предлагающими API, совместимые с OpenAI:
|
||||||
- Groq
|
- Groq
|
||||||
- Together AI
|
- Together AI
|
||||||
- Perplexity AI
|
- Perplexity AI
|
||||||
- Mistral AI
|
- Mistral AI
|
||||||
- Google AI
|
- Google AI
|
||||||
- Локальные AI-серверы (например, Ollama)
|
- Локальные AI-серверы (например, Ollama)
|
||||||
- Пользовательские эндпоинты, совместимые с OpenAI
|
- Пользовательские эндпоинты, совместимые с OpenAI
|
||||||
|
|
||||||
#### Дополнительные замечания
|
#### Дополнительные замечания
|
||||||
- Не все провайдеры гарантируют полную совместимость
|
- Не все провайдеры гарантируют полную совместимость
|
||||||
- Производительность может различаться
|
- Производительность может различаться
|
||||||
- Проверяйте документацию каждого провайдера
|
- Проверяйте документацию каждого провайдера
|
||||||
- Убедитесь, что у вашего API-ключа достаточно кредитов/квоты
|
- Убедитесь, что у вашего API-ключа достаточно кредитов/квоты
|
||||||
|
|
||||||
#### Требования к совместимости провайдеров
|
#### Требования к совместимости провайдеров
|
||||||
Для совместимости провайдер должен поддерживать:
|
Для совместимости провайдер должен поддерживать:
|
||||||
- REST API-структуру, похожую на OpenAI
|
- REST API-структуру, похожую на OpenAI
|
||||||
- JSON-формат запросов/ответов
|
- JSON-формат запросов/ответов
|
||||||
- Стандартный метод аутентификации
|
- Стандартный метод аутентификации
|
||||||
- Схожую обработку параметров модели
|
- Схожую обработку параметров модели
|
||||||
|
|
||||||
## ⚡ Установка
|
## ⚡ Установка
|
||||||
|
|
||||||
### Установка через HACS (Рекомендуется)
|
### Установка через HACS (Рекомендуется)
|
||||||
<a href="https://my.home-assistant.io/redirect/hacs_repository/?owner=smkrv&repository=ha-text-ai&category=Integration"><img src="https://my.home-assistant.io/badges/hacs_repository.svg" width="170" height="auto"></a>
|
<a href="https://my.home-assistant.io/redirect/hacs_repository/?owner=smkrv&repository=ha-text-ai&category=Integration"><img src="https://my.home-assistant.io/badges/hacs_repository.svg" width="170" height="auto"></a>
|
||||||
1. Откройте HACS в Home Assistant
|
1. Откройте HACS в Home Assistant
|
||||||
2. Нажмите "Интеграции"
|
2. Нажмите "Интеграции"
|
||||||
3. Нажмите "..." в правом верхнем углу
|
3. Нажмите "..." в правом верхнем углу
|
||||||
4. Выберите "Пользовательские репозитории"
|
4. Выберите "Пользовательские репозитории"
|
||||||
5. Добавьте URL репозитория: `https://github.com/smkrv/ha-text-ai`
|
5. Добавьте URL репозитория: `https://github.com/smkrv/ha-text-ai`
|
||||||
6. Выберите категорию "Интеграция"
|
6. Выберите категорию "Интеграция"
|
||||||
7. Нажмите "Загрузить"
|
7. Нажмите "Загрузить"
|
||||||
8. Перезапустите Home Assistant
|
8. Перезапустите Home Assistant
|
||||||
|
|
||||||
### Ручная установка
|
### Самостоятельная установка
|
||||||
1. Скачайте последний релиз
|
1. Скачайте последний релиз
|
||||||
2. Извлеките и скопируйте `custom_components/ha_text_ai` в вашу директорию `custom_components`
|
2. Извлеките и скопируйте `custom_components/ha_text_ai` в вашу директорию `custom_components`
|
||||||
3. Перезапустите Home Assistant
|
3. Перезапустите Home Assistant
|
||||||
4. Добавьте конфигурацию через UI или YAML
|
4. Добавьте конфигурацию через UI или YAML
|
||||||
|
|
||||||
## ⚙️ Конфигурация
|
## ⚙️ Конфигурация
|
||||||
|
|
||||||
### Через UI (Рекомендуется)
|
### Через UI (Рекомендуется)
|
||||||
1. Перейдите в Настройки → Устройства и сервисы
|
1. Перейдите в Настройки → Устройства и сервисы
|
||||||
2. Нажмите "Добавить интеграцию"
|
2. Нажмите "Добавить интеграцию"
|
||||||
3. Найдите "HA Text AI"
|
3. Найдите "HA Text AI"
|
||||||
4. Следуйте шагам конфигурации
|
4. Следуйте шагам конфигурации
|
||||||
|
|
||||||
### Через YAML
|
### Через YAML
|
||||||
```yaml
|
```yaml
|
||||||
ha_text_ai:
|
ha_text_ai:
|
||||||
api_provider: openai # или anthropic
|
api_provider: openai # или anthropic
|
||||||
api_key: !secret ai_api_key
|
api_key: !secret ai_api_key
|
||||||
model: gpt-4o-mini
|
model: gpt-4o-mini
|
||||||
temperature: 0.7
|
temperature: 0.7
|
||||||
max_tokens: 1000
|
max_tokens: 1000
|
||||||
request_interval: 1.0
|
request_interval: 1.0
|
||||||
api_endpoint: https://api.openai.com/v1 # опционально, для пользовательских эндпоинтов
|
api_endpoint: https://api.openai.com/v1 # опционально, для пользовательских эндпоинтов
|
||||||
system_prompt: |
|
system_prompt: |
|
||||||
Вы - эксперт по домашней автоматизации.
|
Вы - эксперт по домашней автоматизации.
|
||||||
Фокусируйтесь на практичных и эффективных решениях.
|
Фокусируйтесь на практичных и эффективных решениях.
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🛠️ Доступные сервисы
|
## 🛠️ Доступные сервисы
|
||||||
|
|
||||||
### ask_question
|
### ask_question
|
||||||
```yaml
|
```yaml
|
||||||
service: ha_text_ai.ask_question
|
service: ha_text_ai.ask_question
|
||||||
data:
|
data:
|
||||||
question: "Какая оптимальная температура для сна?"
|
question: "Какая оптимальная температура для сна?"
|
||||||
model: "claude-3-sonnet" # опционально
|
model: "claude-3-sonnet" # опционально
|
||||||
temperature: 0.5 # опционально
|
temperature: 0.5 # опционально
|
||||||
max_tokens: 500 # опционально
|
max_tokens: 500 # опционально
|
||||||
context_messages: 10 # опционально, количество предыдущих сообщений в контексте, по умолчанию: 5
|
context_messages: 10 # опционально, количество предыдущих сообщений в контексте, по умолчанию: 5
|
||||||
system_prompt: "Вы эксперт по оптимизации сна" # опционально
|
system_prompt: "Вы эксперт по оптимизации сна" # опционально
|
||||||
```
|
```
|
||||||
|
|
||||||
### set_system_prompt
|
### set_system_prompt
|
||||||
```yaml
|
```yaml
|
||||||
service: ha_text_ai.set_system_prompt
|
service: ha_text_ai.set_system_prompt
|
||||||
data:
|
data:
|
||||||
prompt: |
|
prompt: |
|
||||||
Вы эксперт по домашней автоматизации, сосредоточенный на:
|
Вы эксперт по домашней автоматизации, сосредоточенный на:
|
||||||
1. Энергоэффективности
|
1. Энергоэффективности
|
||||||
2. Оптимизации комфорта
|
2. Оптимизации комфорта
|
||||||
3. Вопросах безопасности
|
3. Вопросах безопасности
|
||||||
Предоставляйте практичные, выполнимые советы.
|
Предоставляйте практичные, выполнимые советы.
|
||||||
```
|
```
|
||||||
|
|
||||||
### clear_history
|
### clear_history
|
||||||
```yaml
|
```yaml
|
||||||
service: ha_text_ai.clear_history
|
service: ha_text_ai.clear_history
|
||||||
```
|
```
|
||||||
|
|
||||||
### get_history
|
### get_history
|
||||||
```yaml
|
```yaml
|
||||||
service: ha_text_ai.get_history
|
service: ha_text_ai.get_history
|
||||||
data:
|
data:
|
||||||
limit: 5 # опционально
|
limit: 5 # опционально
|
||||||
filter_model: "gpt-4o" # опционально
|
filter_model: "gpt-4o" # опционально
|
||||||
```
|
```
|
||||||
|
|
||||||
### 🏷️ Соглашение по именованию сенсоров HA Text AI
|
### 🏷️ Соглашение по именованию сенсоров HA Text AI
|
||||||
|
|
||||||
#### Структура имени сенсора
|
#### Структура имени сенсора
|
||||||
```yaml
|
```yaml
|
||||||
# Всегда начинается с 'sensor.ha_text_ai_'
|
# Всегда начинается с 'sensor.ha_text_ai_'
|
||||||
# Вы определяете только часть после подчеркивания
|
# Вы определяете только часть после подчеркивания
|
||||||
sensor.ha_text_ai_ВАШЕ_УНИКАЛЬНОЕ_ОКОНЧАНИЕ
|
sensor.ha_text_ai_ВАШЕ_УНИКАЛЬНОЕ_ОКОНЧАНИЕ
|
||||||
|
|
||||||
# Примеры:
|
# Примеры:
|
||||||
sensor.ha_text_ai_gpt # Сенсор на базе GPT
|
sensor.ha_text_ai_gpt # Сенсор на базе GPT
|
||||||
sensor.ha_text_ai_claude # Сенсор на базе Claude
|
sensor.ha_text_ai_claude # Сенсор на базе Claude
|
||||||
sensor.ha_text_ai_gpt # Пользовательское окончание
|
sensor.ha_text_ai_gpt # Пользовательское окончание
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Получение ответа
|
#### Получение ответа
|
||||||
```yaml
|
```yaml
|
||||||
# Используйте имя вашего конкретного сенсора
|
# Используйте имя вашего конкретного сенсора
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'response') }}
|
{{ state_attr('sensor.ha_text_ai_gpt', 'response') }}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Практическое использование
|
#### Практическое использование
|
||||||
```yaml
|
```yaml
|
||||||
automation:
|
automation:
|
||||||
- alias: "AI-ответ с пользовательским сенсором"
|
- alias: "AI-ответ с пользовательским сенсором"
|
||||||
action:
|
action:
|
||||||
- service: ha_text_ai.ask_question
|
- service: ha_text_ai.ask_question
|
||||||
data:
|
data:
|
||||||
question: "Совет по домашней автоматизации"
|
question: "Совет по домашней автоматизации"
|
||||||
- service: notify.mobile
|
- service: notify.mobile
|
||||||
data:
|
data:
|
||||||
message: >
|
message: >
|
||||||
Совет ИИ:
|
Совет ИИ:
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'response') }}
|
{{ state_attr('sensor.ha_text_ai_gpt', 'response') }}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 💡 Правила именования
|
### 💡 Правила именования
|
||||||
- Префикс всегда `sensor.ha_text_ai_`
|
- Префикс всегда `sensor.ha_text_ai_`
|
||||||
- Добавьте уникальный идентификатор после подчеркивания
|
- Добавьте уникальный идентификатор после подчеркивания
|
||||||
- Используйте lowercase
|
- Используйте lowercase
|
||||||
- Пробелы не допускаются
|
- Пробелы не допускаются
|
||||||
- Сохраняйте описательность и краткость
|
- Сохраняйте описательность и краткость
|
||||||
|
|
||||||
### 🔍 Атрибуты сенсора HA Text AI
|
### 🔍 Атрибуты сенсора HA Text AI
|
||||||
|
|
||||||
#### Информация о модели и провайдере
|
#### Информация о модели и провайдере
|
||||||
```yaml
|
```yaml
|
||||||
# Название текущей используемой AI-модели
|
# Название текущей используемой AI-модели
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Model') }} # gpt-4o
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Model') }} # gpt-4o
|
||||||
|
|
||||||
# Провайдер сервиса (определяет эндпоинт API и аутентификацию)
|
# Провайдер сервиса (определяет эндпоинт API и аутентификацию)
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Api provider') }} # openai
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Api provider') }} # openai
|
||||||
|
|
||||||
# Предыдущая или альтернативная конфигурация модели
|
# Предыдущая или альтернативная конфигурация модели
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Last model') }} # gpt-4o
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Last model') }} # gpt-4o
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Системный статус
|
#### Системный статус
|
||||||
```yaml
|
```yaml
|
||||||
# Текущая готовность сервиса AI API
|
# Текущая готовность сервиса AI API
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Api status') }} # готов
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Api status') }} # готов
|
||||||
|
|
||||||
# Указывает, выполняется ли в данный момент запрос
|
# Указывает, выполняется ли в данный момент запрос
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Is processing') }} # false
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Is processing') }} # false
|
||||||
|
|
||||||
# Показывает, достигнут ли лимит запросов API
|
# Показывает, достигнут ли лимит запросов API
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Is rate limited') }} # false
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Is rate limited') }} # false
|
||||||
|
|
||||||
# Статус конкретного используемого эндпоинта
|
# Статус конкретного используемого эндпоинта
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Endpoint status') }} # готов
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Endpoint status') }} # готов
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Метрики производительности
|
#### Метрики производительности
|
||||||
```yaml
|
```yaml
|
||||||
# Общее количество успешно выполненных API-запросов
|
# Общее количество успешно выполненных API-запросов
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Successful requests') }} # 0
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Successful requests') }} # 0
|
||||||
|
|
||||||
# Количество API-запросов с ошибками
|
# Количество API-запросов с ошибками
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Failed requests') }} # 0
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Failed requests') }} # 0
|
||||||
|
|
||||||
# Среднее время получения ответа от сервиса AI
|
# Среднее время получения ответа от сервиса AI
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Average latency') }} # 0
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Average latency') }} # 0
|
||||||
|
|
||||||
# Максимальное время для одного цикла запрос-ответ
|
# Максимальное время для одного цикла запрос-ответ
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Max latency') }} # 0
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Max latency') }} # 0
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Использование диалога и токенов
|
#### Использование диалога и токенов
|
||||||
```yaml
|
```yaml
|
||||||
# Количество предыдущих взаимодействий, сохраненных в контексте
|
# Количество предыдущих взаимодействий, сохраненных в контексте
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'History size') }} # 0
|
{{ state_attr('sensor.ha_text_ai_gpt', 'History size') }} # 0
|
||||||
|
|
||||||
# Общее количество использованных токенов
|
# Общее количество использованных токенов
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Total tokens') }} # 0
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Total tokens') }} # 0
|
||||||
|
|
||||||
# Токены, использованные во входных промптах
|
# Токены, использованные во входных промптах
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Prompt tokens') }} # 0
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Prompt tokens') }} # 0
|
||||||
|
|
||||||
# Токены, использованные в ответах AI
|
# Токены, использованные в ответах AI
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Completion tokens') }} # 0
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Completion tokens') }} # 0
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Детали последнего взаимодействия
|
#### Детали последнего взаимодействия
|
||||||
```yaml
|
```yaml
|
||||||
# Самый последний полный ответ, сгенерированный сервисом AI
|
# Самый последний полный ответ, сгенерированный сервисом AI
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Response') }} # Последний AI-ответ
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Response') }} # Последний AI-ответ
|
||||||
|
|
||||||
# Последний обработанный пользовательский запрос
|
# Последний обработанный пользовательский запрос
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Question') }} # Последний заданный вопрос
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Question') }} # Последний заданный вопрос
|
||||||
|
|
||||||
# Точный момент последнего взаимодействия
|
# Точный момент последнего взаимодействия
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Last timestamp') }} # Временная метка
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Last timestamp') }} # Временная метка
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Системное здоровье
|
#### Системное здоровье
|
||||||
```yaml
|
```yaml
|
||||||
# Суммарное количество всех ошибок при взаимодействии с сервисом AI
|
# Суммарное количество всех ошибок при взаимодействии с сервисом AI
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Total errors') }} # 0
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Total errors') }} # 0
|
||||||
|
|
||||||
# Указывает, проводится ли плановое или аварийное обслуживание
|
# Указывает, проводится ли плановое или аварийное обслуживание
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Is maintenance') }} # false
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Is maintenance') }} # false
|
||||||
|
|
||||||
# Общее время непрерывной работы сервиса AI (в часах или днях)
|
# Общее время непрерывной работы сервиса AI (в часах или днях)
|
||||||
{{ state_attr('sensor.ha_text_ai_gpt', 'Uptime') }} # 547,58
|
{{ state_attr('sensor.ha_text_ai_gpt', 'Uptime') }} # 547,58
|
||||||
```
|
```
|
||||||
|
|
||||||
### 💡 Профессиональные советы
|
### 💡 Профессиональные советы
|
||||||
- Всегда проверяйте наличие атрибутов
|
- Всегда проверяйте наличие атрибутов
|
||||||
- Используйте эти атрибуты для мониторинга и автоматизации
|
- Используйте эти атрибуты для мониторинга и автоматизации
|
||||||
- Некоторые значения могут быть изначально равны 0 или быть пустыми
|
- Некоторые значения могут быть изначально равны 0 или быть пустыми
|
||||||
|
|
||||||
## 📘 Часто задаваемые вопросы
|
## 📘 Часто задаваемые вопросы
|
||||||
|
|
||||||
**В: Какие AI-провайдеры поддерживаются?**
|
**В: Какие AI-провайдеры поддерживаются?**
|
||||||
О: В настоящее время поддерживаются OpenAI (модели GPT) и Anthropic (модели Claude), планируется расширение списка провайдеров.
|
О: В настоящее время поддерживаются OpenAI (модели GPT) и Anthropic (модели Claude), планируется расширение списка провайдеров.
|
||||||
|
|
||||||
**В: Как уменьшить расходы на API?**
|
**В: Как уменьшить расходы на API?**
|
||||||
О: Используйте GPT-3.5-Turbo или Claude-3-Sonnet для большинства запросов, внедрите кэширование и оптимизируйте использование токенов.
|
О: Используйте GPT-3.5-Turbo или Claude-3-Sonnet для большинства запросов, внедрите кэширование и оптимизируйте использование токенов.
|
||||||
|
|
||||||
**В: Есть ли ограничения на количество запросов?**
|
**В: Есть ли ограничения на количество запросов?**
|
||||||
О: Зависит от тарифного плана вашего API-провайдера. Рекомендуется отслеживать использование и реализовать ограничение запросов через параметр `request_interval`.
|
О: Зависит от тарифного плана вашего API-провайдера. Рекомендуется отслеживать использование и реализовать ограничение запросов через параметр `request_interval`.
|
||||||
|
|
||||||
**В: Можно ли использовать пользовательские модели?**
|
**В: Можно ли использовать пользовательские модели?**
|
||||||
О: Да, вы можете настроить пользовательские эндпоинты и использовать любую совместимую модель, указав её в конфигурации.
|
О: Да, вы можете настроить пользовательские эндпоинты и использовать любую совместимую модель, указав её в конфигурации.
|
||||||
|
|
||||||
**В: Как переключаться между различными AI-провайдерами?**
|
**В: Как переключаться между различными AI-провайдерами?**
|
||||||
О: Просто измените параметр модели в вашей конфигурации или при вызове сервиса для использования нужной модели провайдера.
|
О: Просто измените параметр модели в вашей конфигурации или при вызове сервиса для использования нужной модели провайдера.
|
||||||
|
|
||||||
**В: Насколько безопасны мои данные?**
|
**В: Насколько безопасны мои данные?**
|
||||||
О: Ваши данные в безопасности. Система работает полностью на вашем локальном компьютере, сохраняя контроль над данными. API-ключи хранятся защищённо, все внешние коммуникации используют зашифрованные соединения.
|
О: Ваши данные в безопасности. Система работает полностью на вашем локальном компьютере, сохраняя контроль над данными. API-ключи хранятся защищённо, все внешние коммуникации используют зашифрованные соединения.
|
||||||
|
|
||||||
**В: Как работают контекстные сообщения?**
|
**В: Как работают контекстные сообщения?**
|
||||||
О: Контекстные сообщения позволяют AI помнить и ссылаться на предыдущую историю диалога. По умолчанию включаются 5 предыдущих сообщений, но вы можете настроить от 1 до 20 сообщений для контроля глубины разговора и использования токенов.
|
О: Контекстные сообщения позволяют AI помнить и ссылаться на предыдущую историю диалога. По умолчанию включаются 5 предыдущих сообщений, но вы можете настроить от 1 до 20 сообщений для контроля глубины разговора и использования токенов.
|
||||||
|
|
||||||
## 🤝 Участие в разработке
|
## 🤝 Участие в разработке
|
||||||
|
|
||||||
Мы всегда рады вашему вкладу! Пожалуйста, ознакомьтесь с [Руководством по участию](CONTRIBUTING.md).
|
Мы всегда рады вашему вкладу! Пожалуйста, ознакомьтесь с [Руководством по участию](CONTRIBUTING.md).
|
||||||
|
|
||||||
1. Создайте fork репозитория
|
1. Создайте fork репозитория
|
||||||
2. Создайте ветку для функции (`git checkout -b feature/Улучшение`)
|
2. Создайте ветку для функции (`git checkout -b feature/Улучшение`)
|
||||||
3. Зафиксируйте изменения (`git commit -m 'Добавить улучшение'`)
|
3. Зафиксируйте изменения (`git commit -m 'Добавить улучшение'`)
|
||||||
4. Отправьте ветку (`git push origin feature/Улучшение`)
|
4. Отправьте ветку (`git push origin feature/Улучшение`)
|
||||||
5. Откройте Pull Request
|
5. Откройте Pull Request
|
||||||
|
|
||||||
## 📝 Лицензия
|
## 📝 Лицензия
|
||||||
|
|
||||||
MIT License - подробности в файле [LICENSE](LICENSE).
|
MIT License - подробности в файле [LICENSE](LICENSE).
|
||||||
|
|
||||||
## 💡 Поддержите проект
|
## 💡 Поддержите проект
|
||||||
|
|
||||||
Лучшая поддержка - это:
|
Лучшая поддержка - это:
|
||||||
- Делитесь обратной связью
|
- Делитесь обратной связью
|
||||||
- Предлагайте идеи
|
- Предлагайте идеи
|
||||||
- Рекомендуйте друзьям
|
- Рекомендуйте друзьям
|
||||||
- Сообщайте о проблемах
|
- Сообщайте о проблемах
|
||||||
- Поставьте звезду репозиторию
|
- Поставьте звезду репозиторию
|
||||||
|
|
||||||
Если хотите финансово поблагодарить, можете отправить небольшой токен признательности в USDT:
|
Если хотите финансово поблагодарить, можете отправить небольшой токен признательности в USDT:
|
||||||
|
|
||||||
**USDT Кошелек (TRC10/TRC20):**
|
**USDT Кошелек (TRC10/TRC20):**
|
||||||
`TXC9zYHYPfWUGi4Sv4R1ctTBGScXXQk5HZ`
|
`TXC9zYHYPfWUGi4Sv4R1ctTBGScXXQk5HZ`
|
||||||
|
|
||||||
*Open-source создается страстью сообщества!* 🚀
|
*Open-source создается страстью сообщества!* 🚀
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
Создано с ❤️ и Claude 3.5 Sonnet для сообщества Home Assistant
|
Создано с ❤️ и Claude 3.5 Sonnet для сообщества Home Assistant
|
||||||
|
|
||||||
[Сообщить об ошибке](https://github.com/smkrv/ha-text-ai/issues) · [Предложить функцию](https://github.com/smkrv/ha-text-ai/issues)
|
[Сообщить об ошибке](https://github.com/smkrv/ha-text-ai/issues) · [Предложить функцию](https://github.com/smkrv/ha-text-ai/issues)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user