ИИ-помощник

Адаптер AI Assistant позволяет вам управлять вашим ioBroker с помощью искусственного интеллекта на основе LLM.

Текущий релиз
0.1.4
Разработчик
ToGe3688
Лицензия
MIT

Обзор

Адаптер ioBroker AI Assistant запускает интеллектуального помощника в вашей системе ioBroker. Помощник может использоваться для взаимодействия с вашей системой ioBroker, установки инструкций на основе времени, инструкций на основе триггеров и вызова пользовательских функций. Помощник может быть настроен с использованием различных языковых моделей от разных поставщиков (например, OpenAI, Anthropic, Perplexity, OpenRouter) или пользовательских/самостоятельно размещенных моделей. Помощник может использоваться для автоматизации задач, управления вашим умным домом или предоставления информации.

Функции

  • Настройте имя и характер своего помощника.
  • Получение списка, чтение и запись состояний ioBroker.
  • Настройте тайм-ауты и задания cron для выполнения инструкций, привязанных ко времени.
  • Настройте триггеры для состояний ioBroker с условиями, которые запускают инструкции при выполнении этих условий.
  • Создавайте пользовательские функции, используя собственные данные и логику.
  • Используйте вкладку «Администрирование», чтобы пообщаться со своим личным помощником.

Поддерживаемые поставщики


Быстрый старт

  1. Установите адаптер.
  2. Настройте поставщика услуг (например, OpenAI, Anthropic, Perplexity, OpenRouter) и получите API-токен.
  3. Настройте адаптер с использованием токена API.
  4. Выберите модель, которую вы хотите использовать в качестве ассистента.
  5. Добавьте несколько состояний ioBroker в разделObjects вкладка, которая будет доступна ассистенту.
  6. Начните общаться со своим ассистентом, отправляя текстовые запросы на его экран.text_request изложить свою позицию и получить ответы отtext_response Используйте вкладку администратора с названием "Помощник" или настройте её вручную.

Протестированные модели

Следующие модели были протестированы с данным адаптером и, как известно, работают исправно:

  • Сонет Клода 3.5 (антропический)
  • gpt-4o-mini (OpenAI)
  • meta-llama/llama-3.3-70b-instruct (OpenRouter)
  • deepseek/deepseek-chat (OpenRouter)
  • x-ai/grok-beta (OpenRouter)
  • perplexity/llama-3.1-sonar-huge-128k-online (Perplexity)
  • perplexity/llama-3.1-sonar-large-128k-online (Perplexity)

Конфигурация

Помощник

Настройте своего ассистента, используя следующие параметры:

ПараметрОписание
ИмяИмя вашего помощника.
МодельВыберите модель LLM, которую должен использовать ваш ассистент (настраивается в разделе «Поставщики»).
ЛичностьОпишите характер вашего ассистента.
ЯзыкВыберите язык, который должен использовать ваш ассистент (в настоящее время поддерживаются только английский/немецкий).
Вывод отладки / CoTВ активном состоянии внутренние мысли и процессы, используемые помощником, записываются в состояние text_response.
История сообщенийВключать предыдущие сообщения (для работы в режиме чат-бота). Установите значение 0 для инструментов одноразового использования, чтобы минимизировать расход токенов.
ТемператураКонтролирует креативность/последовательность ответов.
Макс. токеновОграничивает количество токенов ответа.
Задержка повторной попыткиЗадержка между повторными попытками, если запрос не удался.
Максимальное количество повторных попытокМаксимальное количество повторных попыток на один запрос.

Объекты

ВНИМАНИЕ: Будьте осторожны с тем, к каким состояниям вы предоставляете доступ помощнику, поскольку он может читать и записывать данные во все состояния, к которым у него есть доступ.

Настройте объекты и состояния ioBrokers, к которым ассистент должен иметь доступ.

ПРИМЕЧАНИЕ: При импорте или добавлении объектов убедитесь, что добавляете только точки данных типа «состояние», которые можно напрямую контролировать или которые содержат значение для чтения!

ПараметрОписание
Импорт из Enum.RoomsИмпортирует все ваши состояния из перечисления enum.rooms, сортируемого в ioBroker. (Перезаписывает все ранее установленные объекты!)
СортировкаВсе объекты с одинаковым полем сортировки будут представлены ассистенту группой (например, комнатой).
ИмяИспользуйте описательное название, чтобы помощник понимал функцию объектов.
ОбъектИдентификатор состояния ioBroker

Функции

Настройте пользовательские функции, которые должны быть доступны помощнику. Ваши пользовательские функции должны записывать ответ в состояние, определенное вами.State (Response) поле послеState (Request) Результат может быть в любом удобном для вас формате (например, JSON, обычный текст), просто убедитесь, что ассистент может его понять. Совет: Вы можете использовать адаптер AI-Toolbox для интеграции вашего ассистента с пользовательскими инструментами ИИ.

ПРИМЕЧАНИЕ: Если вы не ответите наState (Response) Если значение поля изменится через 60 секунд, вызов функции завершится неудачей!

ПараметрОписание
СортировкаВсе объекты с одинаковым полем сортировки будут представлены ассистенту группой (например, комнатой).
ИмяИспользуйте описательное имя для пользовательской функции.
ОписаниеОпишите, что делает ваша функция, чтобы ассистент понимал, когда её нужно вызвать.
Штат (Запрос)При вызове функции помощник запишет в эту строку данные о состоянии.
Государство (Реакция)Это состояние будет считано помощником для получения ответа от функции.

Поставщики программ магистратуры в области права

Настройте каждого поставщика ИИ индивидуально:

Антропический

ПараметрОписание
API-токенВведите свой токен Anthropic API.
МоделиУкажите модели, которые следует использовать.

OpenAI

ПараметрОписание
API-токенВведите свой API-токен OpenAI.
МоделиУкажите модели, которые следует использовать.

Замешательство

ПараметрОписание
API-токенВведите свой API-токен Perplexity.
МоделиУкажите модели, которые следует использовать.

OpenRouter

ПараметрОписание
API-токенВведите свой API-токен OpenRouter.
МоделиУкажите модели, которые следует использовать.

Обычай

ПараметрОписание
URL сервера выводаURL пользовательского/самостоятельно размещенного сервера вывода результатов.
API-токен для сервера выводаAPI-токен для вашего сервера вывода.
МоделиУкажите модели, которые следует использовать.
ПримечаниеОбеспечьте соответствие общим стандартам API AI LLM (например, API LM Studio).

Использование

Простой разговор

Вы можете взаимодействовать со своим ассистентом, отправляя текстовые запросы.text_request государство и получение ответов отtext_response состояние.

Вызов функции

Ассистент может вызывать все доступные функции. Он делает это, определяя функцию для вызова на основе текстового запроса. Если у вас включен вывод отладки/CoT, вы можете увидеть внутренний процесс ассистента вtext_response состояние.

Взаимодействие состояний

Помощник может одновременно отображать, считывать и записывать несколько состояний ioBroker. Вы можете использовать его.Objects Вкладка для определения того, к каким состояниям должен иметь доступ помощник.

Инструкции, основанные на времени

Помощник может устанавливать тайм-ауты для инструкций относительного времени и заданий cron для заданного времени. Задания cron будут отображаться в дереве объектов помощника в разделеCronjobs Тайм-ауты будут временными и будут сняты после истечения срока действия тайм-аута или перезапуска адаптера. При срабатывании тайм-аута или cron-задания помощник будет разбужен, и инструкция будет выполнена.

Инструкции, основанные на триггерах

Помощник может устанавливать триггеры для состояний ioBroker с необязательными условиями, которые запускают инструкции при выполнении условий. Триггеры будут перечислены в дереве объектов помощника в разделеTriggers При срабатывании команды помощник активируется, и инструкция будет выполнена.

Пользовательские функции

Ассистент может вызывать пользовательские функции, которые вы определили вFunctions Вкладка. Ассистент запишет запрос на вкладку.State (Request) в поле и ожидает ответа вState (Response) поле.

Последовательность функций

Этот помощник позволяет объединять несколько функций в цепочку. Например, можно настроить cron-задание, которое при выполнении запускает проверку состояний ioBroker, а затем вызывает пользовательскую функцию с полученными результатами.

Очистка истории чата

Иногда может быть полезно сбросить историю чата. Для этого попросите голосового помощника очистить историю. Это удалит все предыдущие сообщения из памяти помощника. (например)Clear history илиForget the previous messages )

Дополнительная информация

Статистика

Статистические данные для вашего ассистента регистрируются и могут быть просмотрены вStatistics дерево объектов.

Точка данныхОписание
.statistics.lastRequestОтметка времени последнего запроса.
.statistics.requestCountКоличество отправленных запросов помощнику
.statistics.messages*JSON-массив истории сообщений (если история сообщений > 0).
.statistics.clear_messages*Кнопка «Очистить историю сообщений».
.statistics.tokens_inputВсего использовано входных токенов.
.statistics.tokens_outputОбщее количество использованных выходных токенов.

Разработка

Данный адаптер находится в стадии разработки и может содержать ошибки. Пожалуйста, сообщайте о любых обнаруженных проблемах.

Отладка

Установите уровень логирования наdebug Подробные журналы доступны в административном интерфейсе ioBroker.

Changelog

0.1.4 (2025-06-05)

  • (@ToGe3688) Added tab to interact with the assitant in the admin adapter
  • (@ToGe3688) Added a custom timeout parameter
  • (@GermanBluefox) Corrected using of the states with the multi-language names

0.1.3 (2025-29-01)

  • (@ToGe3688) Added support for Deepseek as api provider
  • (@ToGe3688) Better display of providers in model selection for admin config
  • (@ToGe3688) Fixed object hirarchy
  • (@ToGe3688) Fixed state roles
  • (@ToGe3688) Fixed onStateChange handler

0.1.2 (2025-12-01)

  • (@ToGe3688) Better error handling for Provider APIs
  • (@ToGe3688) Anthropic API Versioning

0.1.1 (2025-12-01)

  • (@ToGe3688) Better error handling for Provider APIs

0.1.0 (2025-04-01)

  • (@ToGe3688) Beta Release

0.0.3 (2024-31-12)

  • (@ToGe3688) Improved handling of malformed model responses
  • (@ToGe3688) Fixed a bug where the names of the states were not provided to the assistant

0.0.2 (2024-30-12)

  • (@ToGe3688) Fixed Bug in OpenAI Provider

0.0.1 (2024-30-12)

  • (@ToGe3688) initial release

License

The MIT License (MIT)

Copyright (c) 2024-2025 ToGe3688 toge3688@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.