← Zpět na Ducha Třince

Technická dokumentace projektu

Tato dokumentace popisuje technické pozadí, architekturu a infrastrukturu projektu Duch Třince (hostovaného na eljir.com), který kombinuje data o počasí a astrologii s generativní AI.

Architektura a Technologie

Systém je postavený na decentralizovaném zpracování dat na pozadí pomocí Bash skriptů, napojených na systém umělé inteligence (OpenClaw) a Docker kontejnery. Generování probíhá staticky – výsledkem je čistý HTML, CSS a Vanilla JS kód.


Logika Aplikace a Životní Cyklus

Aplikace funguje na bázi pravidelného přegenerování statického obsahu. O to se starají dva spárované bash skripty.

1. Časování (Crontab)

Pravidelné spouštění je řízeno Linuxovým plánovačem cron pro uživatele openclaw. Spouští se automaticky každé 3 hodiny v časovém okně od 06:00 do 21:00.

0 6-21/3 * * * /home/openclaw/pocasi.sh > /home/openclaw/weather_cron.log 2>&1
2 6-21/3 * * * /home/openclaw/pocasi_agent2.sh > /home/openclaw/weather_agent2_cron.log 2>&1

Všimněte si, že druhý skript (pocasi_agent2.sh) se spouští úmyslně s dvouminutovým zpožděním, aby měl první skript čas na dokončení své práce.


2. Generování obsahu - pocasi.sh (Agent 1)

Tento skript sestavuje hlavní kostru webu index.html.

  1. API Volání: Pomocí nástroje curl si stáhne aktuální počasí z OpenWeatherMap a rozparsuje jej přes jq (teplota, stav oblohy, systémová ikona).
  2. Jmeniny: Otevře lokální databázový CSV soubor (jmenne_svatky.csv) a přes nástroj awk vyextrahuje aktuálního a zítřejšího svátečného oslavence.
  3. AI Volání (Poezie): Spustí v příkazové řádce lokální instanci OpenClaw klienta. Přečte osobnost agenta ze SOUL.md a předá počasí jako kontext. Modulu s gemini-2.5-pro přikáže vytvořit poetický popisek Třince (Nálada krajiny).
  4. AI Volání (Horoskop): Znovu zavolá OpenClaw, tentokráte propojený s externím Task dokumentem a nechá vygenerovat HTML strukturu 12 znamení zvěrokruhu pomocí značky <details>.
  5. Robustní Parsování Výstupu: Odpovědi AI jsou zachytávány extrémně robustním jednořádkovým perl filtrem, který vydoluje přesně obsah v tagu i v nejzazším případě a ošetřuje případné halucinace markdown syntaxe u AI.
  6. Statistický build: Skript složí všechny texty dohromady a natvrdo propíše do souboru /var/www/eljir.com/index.html.

3. Cynický Komentář - pocasi_agent2.sh (Agent 2)

Skript, který kriticky komentuje výstupy prvního agenta.

  1. Zadání: Otevře hotový index.html a pomocí bash rour (sed, tr) z něj vyřízne texty Nálady krajiny a Horoskopů a vytvoří krystalický čistý zdrojový text.
  2. Promptování: Podstrčí vydolovaný text jako prompt novému AI agentovi společně s jeho temnější osobností. Úkolem modelu je napsat jízlivý protiargument.
  3. Docker Exec: Ke generování komentáře nepoužívá novou instanci, nýbrž bleskové příkazové volání do již existujícího Docker kontejneru na pozadí.
  4. Pokročilé čištění: Podobně jako u prvního agenta perl extrahuje text. Zde navíc zasahuje hluboká čistící roura regex příkazů, která zničí jakékoliv nechtěné AI uvozovky a znaky zpětných apostrofů před nebo za odstavcem.
  5. Výstup: Uloží hotový textový snippet do /var/www/eljir.com/komentar_agenta2.html.

4. Spojení v prohlížeči (Frontend)

Když uživatel navštíví eljir.com, stáhne se mu hlavní statický soubor. Následně Vanilla JS skript v těle stránky asynchronně pošle fetch požadavek a stáhne text druhého agenta. Abychom zabránili ukládání reliktního komentáře v cache paměti telefonu uživatele, k požadavku dynamicky přidáváme "Cache-buster" časové razítko (?t=1234567).


Konfigurace Dockeru

Pro běh OpenClaw AI jsou v domovském adresáři nakonfigurovány 2 nezávislé služby skrze docker-compose.yml:

Díky této architektuře projekt nepotřebuje pro provoz dynamickou databázi jako je SQL a udrží extrémně vysokou rychlost odezvy na straně finálního koncového návštěvníka.

← Zpět na Ducha Třince