Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for controlling smart home devices #2

Open
black-roland opened this issue Oct 24, 2024 · 6 comments
Open

Support for controlling smart home devices #2

black-roland opened this issue Oct 24, 2024 · 6 comments

Comments

@black-roland
Copy link
Owner

black-roland commented Oct 24, 2024

From Yandex's recent announcement, it seems tools support should be available in YandexGPT 4:

Новое семейство моделей умеет обрабатывать более сложные запросы, работать с расширенным контекстом, поддерживает скрытые рассуждения и вызов функций для работы с внешними инструментами. 1

Maybe not, who knows. Some investigation needed.

@black-roland
Copy link
Owner Author

Assistant tools is probably what I'm looking for.

@black-roland
Copy link
Owner Author

yandex-cloud-ml-sdk v0.2.0 implements assistants support but that version can't be used with Home Assistant 2024.11:

ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package yandex-cloud-ml-sdk==0.2.0: × No solution found when resolving dependencies:
  ╰─▶ Because yandexcloud>=0.319.0 depends on protobuf>=4.25.3,<5 and
      protobuf==5.28.3, we can conclude that yandexcloud>=0.319.0 cannot be
      used.
      And because only the following versions of yandexcloud are available:
          yandexcloud<=0.319.0
          yandexcloud==0.320.0
          yandexcloud==0.321.0
          yandexcloud==0.322.0
          yandexcloud==0.323.0
          yandexcloud==0.324.0
      we can conclude that yandexcloud>=0.319.0 cannot be used.
      And because yandex-cloud-ml-sdk==0.2.0 depends on yandexcloud>=0.319.0
      and you require yandex-cloud-ml-sdk==0.2.0, we can conclude that your
      requirements are unsatisfiable.
ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration 'yandexgpt_conversation': Requirements for yandexgpt_conversation not found: ['yandex-cloud-ml-sdk==0.2.0'].

And I'm not even sure that assistants support is required for this feature.

@black-roland
Copy link
Owner Author

black-roland commented Dec 2, 2024

// List of tools that are available for the model to invoke during the completion generation.
// Note: This parameter is not yet supported and will be ignored if provided.1

да :) по секрету скажу, что в API поддержку уже сделали, но модель ещё плохо их детектит. мы сейчас работаем над тем, чтобы сджойнить модель FC и текущую модель, затем катнём и вам расскажем2

Уже сегодня по планам в API можно будет явно указывать функции и модель будет стараться их использовать. Функциональность запускаем в альфа-режиме и дальше будем работать над качеством в тех сценариях, где его будет не хватать на основе фидбека early adopter'ов.
В течении осени планируем добавить в SDK.
Кроме этого, у нас уже в планах обновление с улучшением в качестве, но оно пока на стадии финализации модели и внутреннего тестирования.3

Пример флоу работы чат-бота с использованием внешних инструментов.

@aerosh
Copy link

aerosh commented Dec 17, 2024

Подскажите, пожалуйста, получилось ли реализовать?
У меня версия HA 2024.12.3, версия интеграции 1.2.1, я разрешил доступ к устройствам в настройках голосового ассистента, но управлять не получается (говорит, что команда выполнена, но по факту нет)

@black-roland
Copy link
Owner Author

black-roland commented Dec 17, 2024

Подскажите, пожалуйста, получилось ли реализовать?

Если кратко, то пока нет. Но я, честно говоря, пока и не особо разбирался, потому что сейчас с этим море проблем.

В качестве альтернативного решения могу предложить комбинированный вариант (Assist + YandexGPT), который появился в декабрьском HA. Комбинированный вариант можно включить в настройках голосового ассистента. В этом режиме простые команды на включение/выключение (и интенты) будут отрабатываться через Assist, а если Assist что-то не понял, то запрос будет передаваться в YandexGPT.

Щас отдельным сообщением еще все проблемы перечислю.

@black-roland
Copy link
Owner Author

black-roland commented Dec 17, 2024

В других интеграциях HA для работы с нейронками (OpenAI, например) везде используются tools. Я не особо разбирался что это и зачем, но видимо tools нужны для того, чтобы можно было с помощью языковой модели разбирать намерения и команды на управление устройствами.

Но tools в YandexGPT на данный момент официально не поддерживаются. Я так понял там какие-то проблемы с качеством возникли и поэтому публично пока поддержку tools не анонсировали, хотя чисто технически tools уже есть.

По крайней мере tools поддерживаются в низкоуровневом SDK yandexcloud, но я не знаю поддерживаются ли они в высокоуровневом yandex-cloud-ml-sdk, который я использую.

Недавно вышла новая версия yandex-cloud-ml-sdk с поддержкой ассистентов, и у этих ассистентов есть какие-то tools. Только я так понял это не те tools, которые мне надо, хотя возможно теперь высокоуровневый yandex-cloud-ml-sdk пробрасывает нужные мне tools в низкоуровневый yandexcloud. Проверить это я пока не могу, потому что последняя версия yandex-cloud-ml-sdk не устанавливается из-за конфликта зависимостей.

Последняя версия yandex-cloud-ml-sdk использует последнюю версию yandexcloud, в которой недавно запинили зависимости и эти зависимости несовместимы теми, что используются в HA. Разработчики yandexcloud недавно поправили одну проблему с зависимостями, которая меня блокировала (yandex-cloud/python-sdk#121), но это не единственная проблема (yandex-cloud/python-sdk#127). С последним фиксом новой версии пока не выходило, поэтому обновиться я пока не могу. А даже когда смогу обновиться, не факт что другие проблемы не всплывут. Ну и официальной поддержки tools все равно нет, так же как нет и документации, поэтому обновление yandex-cloud-ml-sdk на данный момент мне все равно никак не поможет.

В итоге, мне просто не хочется разбираться с этим ворохом проблем и я просто жду, когда все само починится.

P8AAAgK3BeA-960

Жду:

  • Когда команда YFM официально доделают поддержку tools;
  • Когда в yandex-cloud-ml-sdk добавят поддержку tools и подготовят примеры того, как это работает;
  • Когда команда yandexcloud выпустят новую версию с имеющимися исправлениями и доисправят остальные конфликты с зависимостями, если они возникнут.

Ребята в Яндексе довольно отзывчивые и в чатике YFM постоянно помогают, но мне лень куда-то писать и лень заводить issue. Слишком уж много чего сейчас не работает и мне проще подождать.

Но вообще если хотя бы получится SDK обновить, то может быть попробую как-нибудь закостылить управление устройствами.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants