NEWS
Test Adapter AI Toolbox v0.0.2 GitHub/Latest
-
Aktuelle Test Version 0.0.2 Veröffentlichungsdatum 07.12.2024 Github Link https://github.com/ToGe3688/ioBroker.ai-toolbox Hallo zusammen,
ich möchte euch den neuen ioBroker AI Toolbox Adapter vorstellen, den ich kürzlich entwickelt habe. Der Adapter bringt KI-Modelle in eure ioBroker Smart-Home-Umgebung.
Was macht der Adapter?
Der AI Toolbox Adapter ermöglicht die Integration von KI-Modellen (Large Language Models, LLMs) in ioBroker. Damit könnt ihr maßgeschneiderte Tools erstellen, die spezifische Aufgaben automatisieren oder auch als intelligente Chatbots dienen. Die wichtigsten Features sind:
- Unterstützung für verschiedene KI-Anbieter, darunter OpenAI, Anthropic, OpenRouter, Perplexity und lokale / selbst gehostete Modelle wie LocalAI oder LM Studio.
- Erstellung individueller Tools mit flexiblen Einstellungen wie System-Prompts, Beispielnachrichten, Nachrichtenverläufen und Kreativitätsparametern.
- Direkte Kommunikation mit euren Tools und den Modellen über Datenpunkte oder via sendTo über Scripte im Javascript Adapter
- Token- und Nutzungsstatistiken zur Optimierung und Kostenkontrolle.
Beispiele für die Anwendung
- Chatbots: Eigene Assistenten die sich wie ein Chatbot verhalten und zur Kommunikation genutzt werden können.
- Wetter-Bot: Personalisierte Wetterberichte basierend auf euren Sensordaten die ihr via ioBroker zur Verfügung stellt.
- Musik-Assistent: Musikempfehlungen passend zur Stimmung oder zum Wetter für Smartspeaker z.B. Alexa
- Lichtsteuerung: Automatische RGB-Beleuchtungsvorschläge je nach Musikrichtung. Hier können JSON Daten zur weiteren Verwendung in Scripten erzeugt werden.
- Individuelle Begrüßungen: Erzeuge individuelle Begrüßungen basierend auf den zur Verfügung gestellten Daten. Die Begrüßungen können gekoppelt mit der Anwesenheit z.B. über Alexa ausgegeben werden.
Wie funktioniert’s?
Nach der Installation könnt ihr eure Tools direkt im Admin Interface anlegen und konfigurieren. Mit einem Klick stehen Datenpunkte für Anfragen (
text_request
) und Antworten (text_response
) bereit. Beachtet dabei eure Tools so präzise wie möglich zu formulieren um gute Ergebnisse zu erhalten. Die Beispielanfragen und -antworten helfen hierbei das Model zu formen um konsistente Ausgaben zu erhalten. Auch die Integration in Skripte ist möglich, z. B.:Mit Tools interagieren
sendTo('ai-toolbox.0', 'tool_request', { tool: 'simple-chatbot', text: 'Hallo, wie geht’s?', }, (result) => { console.log(result); // Antwort vom Tool als Textstring });
Direkt mit Modellen interagieren
sendTo('ai-toolbox.0', 'model_request', { 'model': 'MODEL-NAME', 'system_prompt': 'System prompt for your request' 'temperature': 'Temperature setting for your request' 'max_tokens': 'Max number of tokens to generate' 'text': 'The message for the tool to respond to', }, async (result) => { console.info(result.text); // Text response of the model console.info(result.model); // Used model for request console.info(result.tokens_input); // Used input tokens console.info(result.tokens_output); // Used output tokens console.info(result.error); // Error, populated if request fails console.info(result.request_data); // JSON object with request data console.info(result.response_data); // JSON object with raw response of the API call });
Feedback gesucht!
Ich freue mich über euer Feedback, sei es zu den Funktionen, der Benutzerfreundlichkeit oder Ideen für neue Anwendungsfälle. Auch Bug-Reports und Verbesserungsvorschläge sind willkommen! Da es mein erster Adapter für ioBroker ist bitte ich um Nachsicht falls ich Dinge nicht korrekt umgesetzt habe.
Den Adapter findet ihr auf Github unter https://github.com/ToGe3688/ioBroker.ai-toolbox
Eine detaillierte Anleitung und ein Quick-Start Guide ist im Readme enthalten.
Danke schon jetzt für eure Rückmeldungen!
Viele Grüße!
-
Habe gerade über git installiert und mit einem openrouter Account getestet.
Die Tools sind sehr praktisch für verschiedene Szenarien, eine sehr gute Idee.
Die Tools klappen und auch das direkte interagieren.Auch wenn der Adapter noch ganz am Anfang ist eine Frage ^^.
Ist auch eine Integration zur Bildanalyse geplant?
Ähnlich wie hier
https://community.home-assistant.io/t/llm-vision-let-home-assistant-see/729241
Hab es auch hier schonmal angesprochen und mit curl erste Ergebnisse:
https://forum.iobroker.net/topic/78608/bilder-mittels-llm-analysieren/5Edit
Die gpt Modelle klappen bei mir alle nicht.
Als Fehler kommtCannot read properties of undefined (reading 'bot_name')
Egal ob in einem Tool oder direkt über den DP des Modells.
-
Mega!
Habe es ganz kurz schon erfolgreich mit einer LocalAI-Instanz und "llama-3.2-3b-instruct:q8_0" getestet. Der "Simple Chat-Bot" klappt auf jeden Fall schon
In dem Adapter steckt extrem viel Potential. Danke für die ausführliche Doku und den Start!
-
Spontan fällt mir direkt ein kleiner Verbesserungsvorschlag ein:
Könnte man nicht die verfügbaren Modelle via API auslesen und zur Auswahl bereitstellen?Dann könnte man ihnen im Adapter auch z.B. Alias-Namen verpassen und es etwas übersichtlicher gestalten.
-
@ToGe88 Werden die Beispielfragen/-antworten eigentlich auch an das LLM weitergegeben?
-
Du hast jeweils den DP request.body.
Der sieht Zb so aus. Ich denke, das ist alles was übermittelt wird.{"model":"meta-llama/llama-3.2-3b-instruct:free","max_tokens":2000,"temperature":0.6,"messages":[{"role":"user","content":"Wie viel ist 5+5?"}]}
-
@david-g Ahh, ok. Dann ist das vermutlich eher als Gedankenstütze für den Anwender gedacht.
Im Code auf Github sieht es jedoch so aus, als würde das irgendwie doch mit übergeben...
Mich würde brennend interessieren, welche Modelle (für selbst gehostete LLMs) ihr so verwendet. Bisher habe ich mit "llama3-sauerkraut" schon gute Erfahrungen gemacht. Die Wortwahl hakt jedoch noch ein wenig.