NEWS
Test Adapter AI Toolbox v0.1.3 GitHub/Latest
-
In Version 0.0.7 gibt es nun auch die Möglichkeit lokale Pfade zu Bildern anzugeben (siehe Readme auf Github). Dies ermöglicht es z.B. direkt Bildanfragen vom Telegram Adapter von KI Tools verarbeiten bzw analysieren zu lassen.
@oxident Ich habe da noch einen zweiten Adapter in Entwicklung welcher eher in die Richtung geht als vollumfänglicher Assistent in ioBroker zu funktionieren. Den werde ich die Tage auch mal auf Github stellen zum testen.
-
@toge88 sagte in Test Adapter AI Toolbox v0.0.7 GitHub/Latest:
In Version 0.0.7 gibt es nun auch die Möglichkeit lokale Pfade zu Bildern anzugeben (siehe Readme auf Github). Dies ermöglicht es z.B. direkt Bildanfragen vom Telegram Adapter von KI Tools verarbeiten bzw analysieren zu lassen.
Klappt auch wunderbar um snapshots von der Überwachungskamera auszuwerten. Liegt ein Paket vor der Tür, steht ein Auto in der Einfahrt etc. Man kann den Bot ja so definieren, dass er bei Bedarf ein true oder false ausgibt.
-
@toge88 Sehr genial. Dann startet das neue Jahr definitiv spannend!
-
Ich habe mal eine kleine Offtopic Frage.
Evtl hast du da ja schon mal was zu gelesen.Weißt du, warum die Ergebnisse der Api zur Bildanalyse VIEL schlechter sind als über die Website bzw App direkt? Mit den Tokens die man einstellt hat es nichts zu tun.
Ich habe gelesen, dass bei der Api die Auflösung vom Bild angepasst wird vor der Analyse. Aber das macht der "normale" weg ja vermutlich auch.... -
@david-g Ich habe noch nicht wirklich viel mit der Bilderkennung ausprobiert daher fehlen mir da ein wenig die Vergleichswerte. Ist das Verhalten denn bei allen Modellen gleich?
Der Adapter wandelt das Bild lediglich in einen Base64 String um und übergibt es an die jeweiligen Anbieter Schnittstelle, wenn es da eine Reduzierung der Auflösung gibt müsste das auf Anbieterseite passieren.
Ein Ansatz wäre vielleicht dem Modell einen gewissen "Freiraum" zum denken zu geben bei seiner Antwort. Damit konnte ich für Textausgaben zumindest die Qualität deutlich steigern. Ich löse dass so das ich das Werkzeug im Adapter Json ausgeben lasse und als erstes Attribut "reasoning" festlege. In diesen soll das Modell dann seinen Prozess schreiben wie es zu seinem Ergebnis gekommen ist. Bei der weiteren Verarbeitung verwerfe ich diesen Inhalt dann einfach und nutze nur die für mich relevanten Daten weiter.
Könnte sein dass es bei der Bildverarbeitung auch klappt.
-
@toge88
Habe hier glaube was gefunden.
https://www.ai-for-devs.com/blog/gpt-vision-learn-how-to-use-gpt-4-to-understand-imagesUnter "Improving Image Fidelity: Low and High Resolution Image Understanding" steht ein wenig.
Das Modell entscheidet scheinbar selber, wenn man keine Qualität der Verarbeitung angibt.
Vermutlich ist er bei der Api was konservativer.Wenn ich in meine frage mit schreibe, dass das Bild in einer hohen Qualität verarbeiten soll ist das Ergebnis schon besser.
ML sehen, ob man das in den Einstellungen vom bot mitgegeben bekommt. -
Habe gerade mal einen Test versucht mit Perplexity/LLama huge und dem simple-chatbot Tool. Die Eingabe der Anfrage über ai-toolbox.0.Tools.simple-chatbot.text_request funktioniert zwar, aber über ai-toolbox.0.Tools.simple-chatbot.text_response kommt nichts zurück. Im Datenpunkt ai-toolbox.0.Tools.simple-chatbot.response.raw steht dennoch eine passende JSON Antwort und auch im Debug Log ist die Antwort enthalten. Die Anfrage über request/response beim Datenmodell selbst funktioniert dagegen anscheinend wie beabsichtigt.
Mache ich da noch etwas falsch oder sollte man hier die raw Response einfach selbst zerlegen?
-
@mick70 Das könnte ein Bug sein, da ich selber keinen Perplexity API Zugang habe wäre es super wenn du mal das Debug Log einer Anfrage schicken könntest!
Edit: Der Inhalt von raw response wäre auch hilfreich
-
@david-g Das klingt tatsächlich so als ob man das am besten über den Prompt bzw die Anfrage lösen sollte. Es gibt ja laut deinem Link den Parameter in der API um die höhere Qualität zu erzwingen, ich glaube es wäre aber nicht zielführend das für jede Anfrage an OpenAI zu setzen. Kannst du das Verhalten über den Prompt denn konsistent steuern?
-
ein wahrlich interessantes projekt - leider fehlt mir die weitsicht, wenn es um anwendungen geht - daher die hoffnung, ihr werdet projekte oder tests in einem evlt. eignenen thread vorstellen
-
@toge88 Super Projekt. Herzlichen Dank. Nutze es für eine Wettervorhersage für den Tag 2x pro Tag via Pushover bekommen wir jetzt eine Wettervorhersage auf das Smartphone.
Funktioniert top. Bin schon am überlegen welche anderen Daten und Möglichkeiten ich nutzen werde. Sobald ich noch neue Use Cases am Laufen habe, melde ich mich.
Weiter so - echt genial
-
@halsi82 Danke für das Feedback! Bin gespannt welche Anwendungsfälle den Benutzern hier noch so einfallen
Der Adapter hat heute nochmal ein Update bekommen und sollte dann bald im Beta Repo veröffentlicht werden. Neben kleinen Korrekturen und Verbesserungen wurde Deepseek als API Anbieter mit aufgenommen.
-
@toge88 super, ich wollte gerade fragen, ob deepseek machbar ist.. leider busy.. wegen apikey..
-
@halsi82 Kannst Du grob umreißen, wie Du das umgesetzt hast?
-
Kann ich mich nur @liv-in-sky anschliessen.
Ich denke, hier ist, für den Laien, zuviel Text und zu wenig Beispiel(bilder).
Aus Neugier habe ich es mal installiert und selbst nach dem 100. Durchlesen hab ich kein Plan , was ich damit machen kann , soll oder wie es funktioniert.
Ich zähle mich noch zu der 40+ Generation, also eigentlich noch sehr aufnahmefähig , aber hier bin ich tatsächlich ratlos.Eventuell gibt es demnächst nen Thread mit ein paar Beispielen , mit Screenshots und leichterer Erklärkost
Edit:
@ToGe88
Damit will ich in keinster Weise Deine Anleitung am Anfang schmälern!
Ich kriege es halt nicht in meine Birne -
Ich fand die Anleitung sehr gut, und wusste direkt was los war. Zumindest wenn man den Adapter dann einmal auf hatte.
Im Endeffekt holt der Adapter "nur" Zb ChatGPT in den iobroker, wo du über einen Bot für verschiedene Fälle sein verhalten bestimmen kannst wie er reagiert.
Für mich ist der Adapter eine schlauere Alexa mir mehr Einstellungen.
Nutze Ihn aber auch noch nicht wirklich produktiv, das kommt wenn die Ausenkamera aufgehangen wird.
-
Generell kann ich euch allen nur empfehlen, legt euch bei openai oder openrouter oder bei anderen KI Instanzen einen TestAccount/API Account an. Openrouter ist kostenlos bei vielen KI Modellen. Allerdings habe ich meine besten Ergebnise mit GTP-4 bei OpenAI bekommen, ist allerdings kostenpflichtig und wird pro Anfrage abgerechnet.
Wenn ihr dort mal einen Account habt, dann macht den Chat auf.
Schickt die Beschreibung zum Chat - die Beispielanfrage und die Beispielantwort.
Und dann spielt euch mit dem Chatbot herum. Das hilft im Normalfall die KI besser zu verstehen und zu bedienen.Jedes Werkzeug das man im Adapter anlegt hat ein Text_request und ein Text_response als Objekt. Ähnlich wie ein KI Chat. Thats it.
Ich habe mittlerweile ein Werkzeug angelegt um meine Heizkurve zu steuern. Das bedeutet - je nach Wettervorhersage und Daten der Bewölkung (bei viel Sonne muss ich viel weniger heizen in meinem Haus, weil wir viel Fensterfläche Richtung Süden haben) meine Heizkurve jeden Tag bevor die Heizung startet anhand der Prognose zwischen einer bestimmten Range 0,3-0,5 angepasst wird.
Folgende Beschreibung habe ich da der KI zum Beispiel gegeben.@oxident
Mit dem AI Adapter gibst du ja der KI zunächst die Beschreibung was die KI tun soll, dann eine Beispielanfrage und eine Beispielantwort. Siehe Screenshot unterhalb.Danach muss man über ein Javascript dem Adapter für das jeweilige Modell die Daten übermitteln - sprich das muss gleich sein wie die Beispielanfrage.
In meinem Fall ein Javascript das so aussieht:
var day = new Date().toLocaleString(); var cloudCover = getState('weatherunderground.0.forecast.0d.cloudCover').val; var rlf = getState('javascript.0.Wetterstation.Aussenfeuchtigkeit').val; var pressure = getState('javascript.0.Wetterstation.Druck_absolut').val; var rain = getState('javascript.0.Wetterstation.Regen_Stunde').val; var temp = getState('mqtt.0.ebusd.700.DisplayedOutsideTemp').val; var wind = getState('javascript.0.Wetterstation.Wind').val; var trend = getState('javascript.0.Wetterstation.Wetter_Trend').val; var tempmax = getState('weatherunderground.0.forecast.0d.tempMax').val; var sonnenstrahlung = getState('javascript.0.Wetterstation.Sonnenstrahlung').val; var message = 'Aktuelles Datum und Uhrzeit ' + day + '. Wetterdaten: Temperatur ' + temp + '°C, ' + 'Vorhersage Tageshöchstemperatur' + tempmax + '°C, ' + 'Luftfeuchtigkeit ' + rlf + '%, ' + 'Wolkendecke ' + cloudCover + '%, ' + 'Wind ' + wind + 'kmh, ' + 'Regenmenge pro Stunde ' + rain + 'mm, ' + 'Sonnenstrahlung ' + sonnenstrahlung + +'W/m2, ' + 'Trend: ' + trend +'.'; sendTo('ai-toolbox.0', 'tool_request', { 'tool': 'weather-reporter', 'text': message, }, async (result) => { log(result); });
Dann hab ich ein Blockly gebaut, dass mir 2 mal täglich das Javascript auslöst und mir das Ergebnis des AI Adapters und des jeweiligen Modells (Objekt Text-Response) per Push Nachricht auf mein Smartphone schickt.
-
@halsi82 Die Heizkurve musst du demnach noch manuell anpassen, d.h. deine Heizung hat keinen Datenpunkt für die Heizkurve?
-
@mick70 Richtig - mehr oder weniger. Meine Heizung wird über EBUS gesteuert und über ein Skript kann ich die Heizkurve verändern. Nehme den Wert der zurück kommt - z.b. 0.35 - und schreibe den dann im Skript direkt an die Heizung.
var command = "bash /home/Heizkurve.sh "+ heatcurve; - und die heatcurve kommt von dem AI Adapter.
-
@halsi82 Sehr hübsch!
Ich selbst verwende bisher eigene, parametergesteuerte Modelle, um bei PV-Überschuss innerhalb einer vorgegebenen Bandbreite eine Klimaanlage automatisch entweder zum Heizen oder Kühlen in unterschiedlichen Leistungsstufen mit Berücksichtigung der Schutzzeiten für den Kompressor zu regeln und um Überschusshitze aus einem kollektorgespeisten Boiler in den Pufferspeicher der Wärmepumpe abzuleiten.
Klappt zwar durchaus ordentlich, meine starren Modelle sind bei zusätzlichen Parametern aber nur schwer anzupassen und prädiktiv/adaptiv sind sie natürlich auch nicht. Wenn ich Zeit habe, werde ich mal mit Versuchen ganz ähnlich wie bei dir beginnen, aber vermutlich mit dem Assistant Adapter, der der KI direkten Zugriff auf verschiedene Datenpunkte gibt.
Den Toolbox Adapter nehme ich derzeit (zusammen mit dem iobroker custom skill und den alexa2 sowie text2command Adaptern) im Moment nur als verbesserte Sprach-Antwortmaschine für meine Echos bei schnellen Fragen (zB "Alexa, frage i o broker, welche Auswirkungen kann die Einführung von Deep Search auf den Markt für künstliche Intelligenz haben"). Wird hier im Moment wegen der Hörschwäche von Alexa gerade bei Fachbegriffen aber nicht stark genutzt. Mal sehen, ob mir da noch etwas besseres einfällt.