NEWS
Test Adapter AI Assistant v0.0.3 GitHub/Latest
-
Aktuelle Test Version 0.0.3 Veröffentlichungsdatum 31.12.2024 Github Link https://github.com/ToGe3688/ioBroker.ai-assistant Hallo zusammen
da es ja Interesse an einem KI Assistenten für ioBroker gab habe ich mich dem mal angenommen und einen Adapter dafür programmiert. Der Assistent funktioniert mit mehreren Anbietern für LLMs wie OpenAI, Anthropic, Perplexity, OpenRouter und auch lokalen Modellen. Die Qualität und Stärke des genutzten Modells hat natürlich direkte Auswirkungen auf die Qualität vom Assistenten. Auf Github habe ich eine Liste mit Modellen im Readme eingefügt die ich bisher getestet habe.
Fähigkeiten
States verwalten
Die freigegebenen States lesen und schreiben. Auch multiple Lese und Schreibbefehle sind in einer Anfrage umsetzbar durch des Assistenten. z.B.
Schicke mir einen Bericht über alle Temperaturen in der Wohnung
oderErzeuge mir einen Bericht über die PV-Anlage
Zeitplanung
Der Assistent kann Timeouts / Cronjobs verwalten um sich selbst aufzuwecken und dann Instruktionen auszuführen.
Schalte in 30 Sekunden das Flurlicht aus
oderSchicke mir jeden Tag um 7:30 einen Wetterbericht mit den Daten der Wetterstation
Trigger verwalten
Der Assistent kann Trigger auf states im ioBroker System erstellen welche ihn mit einer optionalen Bedingung aufwecken und dann Instruktionen ausführen lassen.
Wenn der Bewegungsmelder in der Küche das nächste mal ausgelöst wird, erinnere mich daran den Müll rauszubringen
Eigene Funktionen
Es können eigene Funktionen implementiert werden, siehe Github! Dies bietet z.B. auch die Möglichkeit den KI Toolbox Adapter einzubinden.
Verkettung
Der Assistent kann Funktionen verketten z.B.
Wenn die Haustür geöffnet wird, warte 30 Sekunden und prüfe dann die Zustände aller Fenster und schicke mir den Status
Nachrichtenverlauf löschen
Manchmal ist es hilfreich den Nachrichtenverlauf zurückzusetzen wenn sich der Assistent verrannt hat. Dies geht einfach per Spracheingabe wie z.B.
Lösche alle vorigen Nachrichten
oderLösche dein Gedächtnis
. Alternativ kann auch der entsprechende Datenpunkt dafür genutzt werden.Ausgabe der internen Vorgänge
Fürs testen ist es hilfreich die Ausgabe der Gedanken und Aktionen vom Assistenten zu aktivieren, diese werden dann in den response datenpunkt geschrieben.
Am besten nutzen lässt sich der Assistent wenn ihn z.B. mit dem Telegram Adapter kombiniert. Ein einfaches Script zum verknüpfen der Ein- und Ausgabe Datenpunkte reicht hier aus.
Noch als Hinweis: Bitte Vorsicht bei der Freigabe des States, der Assistent hat danach die Möglichkeit diese auszulesen und zu steuern!
Viel Spaß beim testen und danke schon jetzt für euer Feedback!
Viele Grüße!
-
Ist das der selbe Fehler wie vorher im ANDEREN Adapter von dir mit openai?
Liest sich gleich.ai-assistant.0 2024-12-30 17:22:05.550 warn Request for Assistant failed Text: Was kannst du für mich machen? Error: Cannot read properties of undefined (reading 'bot_name')
Auch wenn ich noch nicht so ganz weiß, was ich mit dem Adapter machen soll / kann ^^
-
@david-g Ja ist tatsächlich der gleiche Fehler gewesen, sollte jetzt behoben sein
Primär ist der Adapter als Assistent, ähnlich Alexa oder Google Home, gedacht, nur das er halt Texteingaben akzeptiert und ein wesentlich besseres Kontextverständnis hat als andere Sprachassistenten. Mit den eigenen Funktionen kann man dann z.B. die Brücke zur AI Toolbox schlagen und die Werkzeuge dem Assistent zugänglich machen.
-
Jetzt klappt es.
Hab mal ein paar simple Dinge getestet. Welche Lampen habe ich alle, schalte ein aus etc, wie lange ist die und die Lampe schon eingeschaltet...EDIT
Hab im Log eben gesehen, dass der Adapter 2x abgeschmiert ist beim rumprobieren.ai-assistant.0 2024-12-30 22:44:20.178 warn Terminated (UNCAUGHT_EXCEPTION): Without reason ai-assistant.0 2024-12-30 22:44:20.178 info terminating ai-assistant.0 2024-12-30 22:44:20.176 error Cannot read properties of null (reading 'replace') ai-assistant.0 2024-12-30 22:44:20.176 error TypeError: Cannot read properties of null (reading 'replace') at AiAssistant.startAssistantRequest (/opt/iobroker/node_modules/iobroker.ai-assistant/main.js:590:45) ai-assistant.0 2024-12-30 22:44:20.176 error unhandled promise rejection: Cannot read properties of null (reading 'replace') ai-assistant.0 2024-12-30 22:44:20.176 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
-
@david-g Danke dir fürs testen! Habe das mal geprüft und wahrscheinlich kam die Antwort nicht im erwarteten JSON Format sondern einfach nur als Text rein, ich werde da mal eine Prüfung vorsehen welche die Anfrage dann wiederholt bzw einen Fehler ausgibt.
Edit: Die neue Version auf Github hat die Prüfung jetzt drin!
-
Ich würde deinen Adapter gerne mal ausprobieren. Wird die Funktion "Objekte aus enum.rooms importieren" noch implementiert? Nach dem Bestätigen der Mitteilung geschieht kein Import.
ai-assistant.0 2025-01-10 17:17:20.491 warn No available endpoints found in config