Markdown changes

This commit is contained in:
SMKRV
2024-11-26 15:37:06 +03:00
parent a0ccb86bd4
commit 7391dbf5b1
+315 -315
View File
@@ -4,7 +4,7 @@
![GitHub release](https://img.shields.io/github/release/smkrv/ha-text-ai.svg?style=flat-square) ![GitHub downloads](https://img.shields.io/github/downloads/smkrv/ha-text-ai/total.svg?style=flat-square) ![GitHub stars](https://img.shields.io/github/stars/smkrv/ha-text-ai.svg?style=social) ![GitHub last commit](https://img.shields.io/github/last-commit/smkrv/ha-text-ai.svg?style=flat-square) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT) [![hacs_badge](https://img.shields.io/badge/HACS-Custom-41BDF5.svg?style=flat-square)](https://github.com/hacs/integration) ![GitHub release](https://img.shields.io/github/release/smkrv/ha-text-ai.svg?style=flat-square) ![GitHub downloads](https://img.shields.io/github/downloads/smkrv/ha-text-ai/total.svg?style=flat-square) ![GitHub stars](https://img.shields.io/github/stars/smkrv/ha-text-ai.svg?style=social) ![GitHub last commit](https://img.shields.io/github/last-commit/smkrv/ha-text-ai.svg?style=flat-square) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT) [![hacs_badge](https://img.shields.io/badge/HACS-Custom-41BDF5.svg?style=flat-square)](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>