Nostr + AI – ako som vytvoril Eso Level Estimator 8000

Tento článok je o dvoch témach – o tom ako veľmi “ezo” niečo je, a o tom ako funguje Nostr a v čom je tento prístup iný ako tradičná tvorba aplikácií. Je to skôr technologický pohľad, ale poďme sa pozrieť na tú ezo časť pre netechnických ľudí.

Eso level estimator 8000

S kamarátmi a kamarátkami často vtipkujeme, čo má aký ezo level. Rozprávať sa s mimozemšťanmi z paralelného vesmíru je ezo level 10 (mimochodom, je o tom moja obľúbená knižka Alien Information Theory, ktorá je paradoxne z veľkej časti informatickým pohľadom na fyziku a skoro do konca knihy by som jej pridelil ezo level 3/10). Terapia červeným svetlom je ezo level 3, logika je ezo level 0.

Po vtipkovaní s kamarátmi som sa rozhodol využiť na určovanie ezo levelu umelú inteligenciu a napísal som špeciálny prompt, podľa ktorého ezo level určujem.

Na tom, aký ezo level niečo má sa samozrejme s mnohými ľuďmi nezhodnem, preto som urobil autoritatívny zdroj, aby bolo všetkým jasné ako to je a skončili sa zbytočné diskusie. Napríklad centrálne banky a centrálne plánovanie sú u mňa ezo level 8.

Obrázok: Centrálna plánovacia komisia centrálnej banky v mojej hlave vyzerá takto. Ezoterická viera v dobrotivých centrálnych plánovačov, ktorí robia obete na oltári boha agregátneho dopytu.

Mimochodom, decentralizované systémy mi prídu oveľa menej ezo. A keďže máme autoritatívny zdroj informácií, tak vedzte, že Bitcoin má ezo level 4 – decentralizované systémy a emergentné javy z komplexných systémov sú výrazne menej ezo ako viera v plánovacie komisie.

Vyskúšajte sami.

AI model

Aj keď pôvodný prompt funguje s akýmkoľvek AI modelom, samozrejme chcem používať najmä také, ktoré môžem bežať sám. Každopádne zaujímavé je, že multimodálne modely ako napríklad ChatGPT-4o vedia určiť ezo level aj z fotografie 🙂

Keďže som chcel model bežať lokálne, používal som môj obľúbený Dolphin vo verzii LLaMA3-70B cez projekt ollama. Ollama vytvorí na lokálnom porte API, na ktoré sa viem pripojiť z Python skriptu. Tento model fungoval super na notebooku, ktorý má veľa RAM, dokonca aj keď bol notebook zapnutý v aute a fungoval cez mobilnú sieť (krása Nostru), ale jedného dňa som si povedal, že pre permanentné fungovanie by bolo lepšie, ak by v čase, keď je notebook niekde v taške projekt tiež fungoval, tak som rovnaký skriptík pustil na Mac Mini. Prečo Mac? Je dobré mať AI akceleráciu, čo funguje na Apple Silicon čipoch s ollama (ktorá používa projekt llama.cpp). Problém však je, že môj Mac Mini má iba 32GB RAM, takže je lepšie bežať nejaký menší model. Prekvapivo dobrý je otvorený model od Google s názvom gemma2, ktorý bežím v 27B verzii.

Nostr

Nostr je pomerne jednoduchá technológia, ktorá umožňuje robiť zaujímavé veci decentralizovanejším spôsobom. Každý užívateľ má identitu, ktorá je založená na kľúčovom páre, podobne ako väčšina Bitcoinových adries. O identitu neprídete, ak neprídete o kľúče a zároveň nie je jednoduché zabrániť vám posielať správy. Tie sa ukladajú na serveroch, zvaných relays vo forme “notes”, čo sú podpísané (ale štandardne nešifrované) dátové štruktúry (vo formáte JSON).

Väčšina užívateľov má s Nostr skúsenosť vo forme aplikácie podobnej Twittru alebo inej sociálnej sieti – váš Nostr profil môže sledovať iné profily, mať informácie o sebe, dostávať privátne správy a podobne.

Eso Level Estimator som pôvodne vytvoril ako Nostr bota (tu s ním môžete interagovať), ktorý odpovedá na privátne správy, aj na verejné notes, kde je otagovaný.

Keďže identifikácia je iba kľúč, tak ho môžem bežať niekedy na laptope a niekedy na “serveri” (spomínaný Mac Mini) a nemusím nič rekonfigurovať.

K webovej verzii bola iba krátka cesta – pomocou chatgpt som vytvoril web, ktorý vidíte. Po načítaní vytvorí nový kľúčový pár, ktorým sa pred chatbotom identifikuje, pripojí sa na Nostr relays a pošle botovi správu. Keď dostane odpoveď, zobrazí ju užívateľovi. Animácia “Connecting to higher intelligence” kedy čaká na odpoveď nemá úzke hrdlo v generovaní odpovede cez jazykový model, ten odpovede generuje pomerne rýchlo, ale komunikácia cez relays je trochu pomalšia.

Čo je na tomto webe zaujímavé je, že nie je špecifický na môj projekt (dokonca funguje úplne rovnako s mojim iným projektom JurAI, stačí zmeniť kľúč). A dokonca z pohľadu front-endu je to čisto statické HTML, ktoré sa baví s relays.

Oproti iným prístupom ako napríklad ten, ktorý má projekt Pear by Holepunch je skvelé, že funguje na nemodifikovanom webovom prehliadači. To umožňuje tvorbu aplikácií ako progressive web apps. Eso Level Estimator 8000 tak funguje úplne rovnako ako appka na mobile, môžem si ju pridať na hlavnú obrazovku ako ikonku a vyzerá nerozoznateľne od akejkoľvek inej appky. Na druhej strane nemá “backend” tak ako ho poznáme a komunikuje síce cez relays, ale svojim spôsobom peer to peer. Zoznam relays môžem meniť (na oboch stranách) a ak je niektorý relay dole, tak sa správa prenesie cez iný relay.

Front-end nájdete tu, back-end tu.

Vízia

Umelá inteligencia, aj ak ju považujete len za glorifikovanú štatistiku zvyšuje množstvo inteligencie vo vesmíre a to mi príde kúl (a tak trochu ezo). Ak nás všetkých nezabije lokálna verzia SkyNetu, budeme s umelou inteligenciou stále čoraz viac interagovať. Dúfam, že tento projekt k tomu prispeje a prepojí umelú a ľudskú inteligenciu – toto prepojenie povedie k rastu vesmírneho vedomia. Cítite ako stúpa ezo level?