Transkrypcja:
Dzień dobry, dzień dobry!
Świetna sprawa – deyje 6 kW jednofazowy, 90% mojego zapotrzebowania pokrywa bateria 15 kW (użytkowe jest faktycznie 11 kW). Skonfigurowany BMS jest ustawiony tak, aby około 4 kW oddawał. Natomiast, jeżeli z baterii idzie 4 kW, a ze słoneczka jeszcze kilka, udało mi się dociążyć ją na 7 kW. Bez problemu – pracował, pracował i pracował. Spróbuję dorzucić tutaj (zrzucić) – i tak nie mam zastrzeżeń. Natomiast tutaj znajduje się większa część bałaganu.
Jedziemy dalej – drukareczka cały czas pracuje, ziemię też – jestem bardzo zadowolony. Co prawda poziomowanie jest nieco upierdliwe, gdy chcemy, aby odbywało się ono poprzez aplikację. Tutaj mam OctoPrint, który leci sobie po kabelku i steruje drukarką; w wielu miejscach jest to bardzo wygodne. Natomiast z poziomowaniem nadal nie potrafię się dokładnie dogadać, bo pierwsza warstwa wydruku mogłaby być lepsza. Ale mimo wszystko, jestem bardzo, bardzo zadowolony z tego sprzętu – uważam, że to jedna z lepszych drukarek w tych pieniądzach.
Tak jak do tej pory, kiedy miałem okazję oglądać ostatnie testy, ale nie o tym właśnie chcę mówić. Częściowo jednak o tym – w końcu trzeba będzie dokończyć pająka, a także panele, które leżą przed domem. One pójdą na ogrodzenie, ułożą się w pionie. Uzupełnię wtedy kable – planuję poprzeciągać je tak, aby wychodziły ładnie, a nie przechodziły pod bramą.
Dzisiaj chciałem Wam zaprezentować coś, co jest powiązane z moim systemem oraz siecią. Nie chcę pokazywać tej części, bo wygląda strasznie – mam nadzieję, że uda się to w końcu posprzątać, jednak potrzebuję na to jeszcze czasu. Jak to dokończę, wtedy dopiero pokażę tę część kadru, bo w kadrze była część mojego świata, z której nie jeden elektryk mógłby się popłakać. System jest zabezpieczany różnicówkami, a aby wszystko dobrze działało, potrzebujemy falownika z baterią, panelami fotowoltaicznymi oraz integracji z moim zużyciem energii.
Chciałem Wam pokazać kawałek – spory kawałek – konwersacji, którą przeprowadziłem. Przeprowadziłem prezentację, którą podrzuciłem znajomym na komunikatorze. Miała to być odpowiedź na pytanie jednego z nich, ale przerodziło się to w długą wypowiedź, dlatego postanowiłem ją opublikować. Mogą to być ciekawe informacje dotyczące integracji falownika, baterii i zużycia energii w domu, z uwzględnieniem taryfy G12 – aby pobierać jak najmniej prądu z sieci, a jeżeli już, to po najniższej cenie. Nie jest to jeszcze kompletne rozwiązanie, ale mam nadzieję, że z czasem będzie – to prezentacja sposobu, w jaki można do tego podejść. Wstępne informacje wrzucam tutaj, a na zakończenie dodam jeszcze kilka słów, ale to już na koniec filmu.
Prezentacja modeli językowych i integracji API z Home Assistant
Raz, dwa, trzy, cztery. Dzień dobry, dzień dobry!
Obrzucę Wam coś, pokażę coś – to jest wiadomość dla osób zainteresowanych tematyką modeli językowych (MLM). To, jak działają, to jest rewelacja, ale chciałem Wam coś pokazać. Jak wspominaliście w komentarzach, chcieliście, aby wyszukał informacje w internecie o tych modelach językowych. One nie zawsze znajdują potrzebne dane – jeśli informacji nie ma, próbują odpowiedzieć i szukają, a w pewnym momencie zaczynają improwizować. Częściowo opierają się na improwizacji, ale dopóki mają dostęp do dużej ilości danych, szczególnie w tematach technicznych, sprawdzają się bardzo dobrze.
Na przykład, jeżeli programista tworzy stronę internetową, często korzysta z portali branżowych, takich jak GitHub, gdzie znajduje się wiele materiałów, a wiedza jest uporządkowana. Nie jest to jak Facebook, gdzie ciężko cokolwiek znaleźć. Dlatego też GitHub doskonale sprawdza się w tematach technicznych. Oczywiście, nie mówię, że tylko tam warto szukać – nawet napisanie maila nie wymaga takiej wiedzy technicznej, ale gdy potrzebujemy czegoś bardziej zaawansowanego, modele językowe są naprawdę zajebiste. Już od kilku miesięcy korzystam z płatnych wersji tych modeli, a darmowe były używane przez kilkunastu, a nawet kilkudziesięciu miesięcy, odkąd pojawiły się pierwsze wersje. To, co się dzieje dzisiaj, to prawdziwe wariactwo.
Przykładowo, przeprowadziłem czat z ChatGPT, wykorzystując kilka różnych modeli językowych. Pojawił się moment, kiedy zapytałem (po prawej stronie) o pomoc w napisaniu prompta, który pozwoliłby mi stworzyć integrację API chatbota z moim systemem Home Assistant. Mógłbym poprosić, aby napisał integrację API do Home Assistanta – jest to ustandaryzowany sposób komunikacji między systemami, gdzie jeden system odpyta drugi. Na przykład, gdybym stworzył aplikację pokazującą kursy walut, odwołałbym się do API Narodowego Banku Polskiego, które udostępnia dane (waluta, kurs zakupu, kurs sprzedaży, data, godzina), tworząc uporządkowaną „tabelkę” danych.
Ja poprosiłem, aby napisał prompta umożliwiającego opracowanie integracji – czyli jesteśmy jeszcze na etapie koncepcji. Odpowiedź brzmiała, że jeśli chcesz napisać integrację API chatbota z Home Assistantem, możesz użyć określonych narzędzi. Zaproponował: „Napisz prompt umożliwiający ciągłą integrację i wygeneruj kod API”. Podał także opis dla zainteresowanych – proszę, spauzujcie i przeczytajcie, nie będę jechał zbyt szybko, ale podaje najważniejsze kwestie.
Następnie, z mojego jednego zdania, rozwinął zapytanie do czegoś większego. Uszczegółowiłem, że nie potrzebuję pomocy w samym opisie problemu, lecz chcę, aby integracja wyliczała, w jakim stopniu magazyn energii musi być naładowany, aby wystarczyło na kolejny dzień, przy uwzględnieniu prognozy pogody na następny dzień.
W opisie problemu pojawiły się kolejne założenia i dane:
– Dane pogodowe i historyczne o produkcji PV
– Dane o zużyciu energii
– Stan magazynu energii
– Aktualny cel integracji – czyli co chcemy osiągnąć i jak to zrobić
Podrzucił także dodatkowe zapytania. W wersji płatnej model został częściowo nauczony, jak chcę, aby odpowiedzi wyglądały – ma odpowiadać pełnymi zdaniami, wyjaśniać i dorzucać pomysłów. Dlatego odpowiedzi wyglądają właśnie w ten sposób. Mamy tutaj podstawową oczekiwaną odpowiedź i dodatkowe możliwości – model miał znaleźć informacje, jakie rozwiązania najlepiej użyć i dlaczego, uwzględniając potencjalne konfabulacje. Źródła, na które się powołuje, są zapisane w moim profilu, co dotyczy zapytań opartych o dane wejściowe/wyjściowe z JSONa, choć na razie nie są one ustandaryzowane.
Kolejne zapytanie miało uwzględniać poprawki i dodatkowe zadania – oczekiwany format odpowiedzi. Dzięki temu model nie tylko wykona obliczenia, ale również przeanalizuje je, uzasadni, jakie metody są najlepsze do realizacji integracji, uwzględni taryfę G12, parametry instalacji PV oraz pojemność magazynu energii. Dorzucił także zadania związane z formatowaniem odpowiedzi w Node-RED, przygotowaniem formatu JSON i poszukiwaniem dodatkowych informacji w dokumentacji API.
W dalszej części opisu wykorzystałem model O1 Mini, który, według moich badań, jest najtańszy – koszt około 1 dolara za milion tokenów. Dane przesyłane będą w formacie JSON, co ułatwia ich parsowanie. Odpowiedź API zawierać będzie konfigurację parametrów instalacji, aby osiągnąć założone cele, a wynik przetworzymy przy pomocy Node-RED w Home Assistant.
Model dorzucił dodatkowe zadania, na przykład analizę zapytania pod kątem błędów, nieścisłości czy brakujących informacji, a także wskazanie ewentualnych usprawnień. Ja wrzuciłem cały prompt do Google AI Studio – ponieważ płatny pakiet mi się skończył – a przypominam, że korzystanie z takich narzędzi często wymaga podpięcia karty płatniczej (w moim przypadku naliczyli mi ok. 110 zł za miesiąc). Przez dwa miesiące korzystałem z wersji eksperymentalnej Jaminal 2.0 Pro, ale ostatecznie wybrałem ChatGPT, który bardziej mi odpowiada pod względem rozwojowym.
Mamy również możliwość korzystania z narzędzi takich jak Jimminaja, EA Studio czy inne API, dzięki którym możemy tworzyć kompletne konfiguracje integracyjne. W okienku wyświetlającym wyniki (inbuilt output) widzimy m.in. informację o limicie zapytań (Free RPM – Request Per Minute) oraz dane dotyczące „katofonu”, czyli momentu, do którego model był trenowany. W wersji eksperymentalnej cena może wynosić zero, ale limit zapytań – np. 2 na minutę lub 50 dziennie – jest istotny przy planowaniu wysyłania zapytań.
Dalej opisuję proces budowania prompta:
– Stworzenie pełnego zapytania (ok. 500–700 słów, czyli około 1000 tokenów)
– Ustalenie „temperatury” modelu, która wpływa na kreatywność odpowiedzi (zbyt wysoka temperatura może prowadzić do improwizacji i konfabulacji)
– Otrzymanie odpowiedzi zawierającej analizę zapytania i propozycje usprawnień.
Model zaproponował m.in. obliczenie prognozy produkcji energii z fotowoltaiki na podstawie danych historycznych oraz model fizyczny, a także optymalizację zużycia energii. Przy prognozie produkcji analizujemy dane (kąt nachylenia paneli, zacienienie, sprawność inwertera, temperatura) oraz dane historyczne, dzięki czemu możemy obliczyć współczynnik korekcji. Następnie, prognoza zużycia energii opiera się na średnich ważonych z ostatnich dni lub tygodni, co pozwala na dynamiczne dostosowanie profilu zużycia.
Dalej mamy optymalizację ładowania magazynu energii, gdzie algorytm bierze pod uwagę:
– Prognozę produkcji (etap pierwszy)
– Prognozę zużycia (etap drugi)
– Aktualny stan naładowania i pojemność magazynu
– Sprawność magazynu oraz minimalny/maksymalny poziom SOC (np. nie schodzimy poniżej 25% dla bezpieczeństwa, a maksymalny SOC to 90% dla ewentualnych korekt)
Wszystkie te dane mają być zbierane i przetwarzane w Node-RED, a sama integracja powinna być parametryzowana. Dzięki precyzyjnemu formułowaniu promptów dla OpenAI oraz podziale zadań na etapy (dostarczanie wstępnie przetworzonych danych) możemy uzyskać skuteczną integrację. Model hybrydowy, łączący prosty model fizyczny z korekcją na podstawie danych historycznych, pozwoli na optymalizację wykorzystania energii – zarówno przy produkcji z paneli fotowoltaicznych, jak i przy zużyciu energii w domu.
Podsumowując, kluczowe jest, aby precyzyjnie formułować zapytania do modeli językowych (prompt engineering). Dzięki temu możemy uzyskać kompletne, precyzyjne odpowiedzi, które pozwolą nam na budowę skutecznych rozwiązań, takich jak integracja API chatbota z Home Assistantem, optymalizacja produkcji i zużycia energii oraz konfiguracja systemów fotowoltaicznych. Ja osobiście, pracując nad tym projektem, rozbiłem cały proces na mniejsze elementy, co pozwala na stopniowe wdrażanie kolejnych funkcjonalności.
Na koniec – kilka słów ostrzeżenia. Jeśli jeszcze nie korzystacie z modeli LLM, pamiętajcie, żeby nie pokładać w nich zbyt dużych nadziei. Modele te mogą konfabulować lub halucynować, gdy brakuje im danych. Dlatego zawsze weryfikujcie wyniki i szukajcie dodatkowych źródeł informacji. Korzystajcie z nich jako z narzędzi wspomagających, ale nie zapominajcie o własnej wiedzy i doświadczeniu, szczególnie przy implementacjach technicznych, które mogą wpływać na bezpieczeństwo instalacji (np. podłączenie falownika, kabli czy zabezpieczeń).
Na sam koniec ciekawostka – gdy pierwsze modele LLM, takie jak GPT-3/3.5, pojawiały się na rynku, jeden prawnik w USA przygotował umowę opartą na danych wygenerowanych przez taki model. Po weryfikacji okazało się, że kilka z przedstawionych spraw było wymyślonych przez sztuczną inteligencję. Dlatego zawsze miejcie na uwadze, że nawet najlepsze modele mają swoje ograniczenia.
Dajcie znać w komentarzach, czy korzystacie z modeli LLM i z jakich narzędzi, bo jestem ciekaw, jakie rozwiązania stosujecie. Zapraszam również do subskrybowania kanału oraz lajkowania tego filmu. Jeśli ktoś chciałby mnie wesprzeć finansowo, pod filmem znajdziecie odpowiednie linki.
Na dzisiaj to tyle. Trzymajcie się, cześć!
Film znajdziecie pod linkiem:
https://youtu.be/_js_OjPHiiM