Historie vývoje
Chronologický přehled projektu AI-MODE / AI-EXPO – co se kdy implementovalo a proč. Technické detaily fází aplikace jsou v kapitole Fáze implementace.
O datech: fáze 1–8 (červen 2026) vznikaly postupně bez denního deníku. Záznamy od 3. 7. 2026 vycházejí ze session vývoje, statistik API, interní dokumentace a nasazení na lokálním IIS.
-
Jádro aplikace – fáze 1 až 8
Proč: postupně sestavit hlasového průvodce pro veřejný kiosk – nejdřív funkční dialog (hlas → AI → TTS), pak bohatší vizuál, odolnost při chybách, druhý provider, idle prezentaci, přehled nákladů a jednotný vzhled bez úprav kódu u každé instituce.
- Fáze 1 – základní SVG kiosk, Gemini, admin, omluvy, diagnostika (detail)
- Fáze 2 – Rive, vertikální layout, výběr postav (detail)
- Fáze 3 – stavy animace, teen/klasika omluvy, D-ID video (detail)
- Fáze 4 – OpenAI jako druhý provider + TTS (detail)
- Fáze 5 – idle režim – prezentace webů při nečinnosti (detail)
- Fáze 6 – statistiky API, probe klíčů, nový layout adminu (detail)
- Fáze 7 – barevné motivy napříč variantami (detail)
- Fáze 8 – katalog Gemini, fallback modelů (detail)
Doplňky ve stejném období: vícejazyčný kiosk, varianta Live2D, komiksová bublina s groundingem, provozní profily – část detailně zapsána pod 3.–4. 7. 2026.
Počátek na IIS: první verze od prázdné instalace – základní Gemini kiosk, barge-in, výběr hlasu, náhodné omluvy při výpadku API, interní návrh exponátu, první Rive postavy a D-ID varianta.
-
První měřené využití API
Co: v lokálních statistikách se objevují první záznamy chat/TTS/idle požadavků (Gemini, OpenAI).
Proč: ověřit reálnou zátěž před nasazením u zákazníka a ladit idle režim a TTS na živém hardware.
-
Návrh modulu deníčku uživatele
Co: interní návrhový dokument – osobní deník (nákupy, autobus, finance) jako možné budoucí rozšíření kiosku.
Proč: oddělit „průvodce po expozici“ od domácího asistenta; zatím jen návrh k diskusi, není součástí veřejného provozu exponátu.
-
Prezentační úvod návodu a SEO
Čas: večer, cca 18:00–19:00
Co a proč:
- Úvodní stránka návodu – prezentace s plovoucími boxy a odkazy na kapitoly (ne celý obsah na jedné stránce)
- Kompletní obsah – samostatná stránka se všemi kapitolami
- SEO – unikátní titulky u odkazů, stránka klíčová slova
- Tisk obsahu – čtyři sloupce na jednu A4
- Google Translate – widget pro překlad návodu v prohlížeči
-
Komiksová bublina, jazyky a provozní profily
Čas: večer, cca 19:15–21:40
Co a proč:
- Komiksová bublina – vizuál odpovědí, Gemini Search grounding, volitelné odkazy v textu
- Vícejazyčnost – vlajky CS/EN/DE/PL/SK, překlad UI, chybových hlášek a TTS
- Provozní profily – přednastavení pro mládež, muzeum, firmu… (provozní profily)
- Bezpečnost obsahu – kapitola o filtrech AI v návodu
- Náklady bubliny – doplnění nákladů provozu
- Provoz – redirect manuálu na HTTPS doménu AI-EXPO, kompatibilita s PHP 8.5
-
Znalostní báze exponátů v MySQL (fáze 9)
Co: tabulka exponátů v databázi, admin katalog, AI sloupce, náhled generování po řádcích, function calling v chatu, tisk katalogu – popsáno v interní návrhové dokumentaci.
Proč: hlasový průvodce má odpovídat z ověřených dat muzea (číslo exponátu, název, sál), ne jen z obecné znalosti modelu – pilotně pro Velký svět techniky Ostrava (VSTO).
-
Admin znalostní báze – katalog a AI sloupce
Čas: dopoledne a odpoledne
Co a proč:
- Katalog exponátů – tabulka v administraci, řazení, filtry, hromadné akce
- Editor – dlouhé popisy exponátů přímo v administraci
- AI sloupce – generované shrnutí, klíčová slova, návrhy odpovědí pro hlasového průvodce
- Function calling – chat vyhledá exponát podle čísla
- Hromadné doplnění – vyplnění AI polí u existujících záznamů katalogu
-
Barevné motivy a workflow kurátora
Čas: odpoledne
Co a proč:
- Parametr barvy v URL – rychlé přepnutí barevného motivu na všech variantách avatara
- Workflow kurátora – náhled generace po řádcích, označení zkontrolovaných záznamů
- Tisk katalogu – export tabulky exponátů pro tisk nebo PDF
-
Zvětšení komiksové bubliny a ukázky v návodu
Čas: večer
Co a proč:
- Šířka bubliny 620 px – čitelnější text na velkém monitoru kiosku
- Ukázky v manuálu – screenshoty a popis chování bubliny pro instalátora
-
Mobilní layout administrace
Co a proč:
- Administrace na telefonu – přilepená navigace, bez horizontálního scrollu
- Údržba v terénu – kurátor může měnit nastavení a katalog z mobilu při obchůzce expozice
-
Dokumentace kiosku a kontrolní seznam
Čas: cca 6:30–7:01
Co a proč:
- Skrytí plochy Windows v autostart skriptu – návštěvník z kiosk prohlížeče neskončí na hlavním panelu (návod)
- Přehled parametrů kiosk režimu – Chrome/Edge, autoplay pro TTS, co nepoužívat (anonymní režim bez uložení mikrofonu)
- Zvýraznění příkazů v návodu – čitelnější postup pro instalátora
- Rozepis kontrolního seznamu v kapitole technického serveru – server, kiosk, hlas, hlasitost, barge-in, D-ID před otevřením veřejnosti
- Aktualizace klíčových slov a souboru pro LLM – aby vyhledávače a jazykové modely našly nové sekce
-
Rozšíření diagnostiky
Čas: cca 7:06–7:22
Co a proč:
- Více polí v diagnostice – připravenost exponátu, varování, stav konfigurace bez klíčů, MySQL, HTTPS, síťový test – jedna adresa místo ručního testování desíti věcí
- Zkrácení MySQL hlášení – bez hostname a názvu DB ve veřejném JSON (bezpečnost na sdíleném hostingu)
- Odkaz na diagnostiku v administraci – instalátor nemusí hádat adresu
- Oprava chyby serveru – načtení úložiště konfigurace po zavedení vlastního názvu configu
-
Doplnění návodu – idle, obsah, config
Čas: cca 7:29–8:19
Co a proč:
- Příklady idle režimu – muzeum vs. veletrh, aby provozní věděl kdy zapnout (administrace → idle)
- Odkazy v obsahu návodu na idle a nevhodný obsah AI
- Vysvětlení read-only configu – kiosk může běžet bez zápisu; zápis jen při údržbě
- Rozhodnutí ponechat config ve souboru (ne migrace do MySQL) – MySQL jen pro katalog exponátů, citlivé klíče zůstávají v konfiguraci
-
Kapitola zabezpečení a vlastní název configu
Čas: cca 8:01–9:31
Co a proč:
- Nová stránka Zabezpečení provozu – HTTPS, kiosk, config ne ke stažení, kontrolní seznam; veřejný návod nesmí prozrazovat skutečné cesty ani názvy skriptů
- Vlastní název configu v administraci – uživatel zvolí vlastní název; aplikace přesune JSON do skryté provozní složky
- Úložiště konfigurace – ukazatel aktivního souboru jen ve skryté složce (ne zápis do kořene serveru) – po nasazení na hostingu přestal fungovat zápis do kořene → přechod na skrytý ukazatel
- Rollback při selhání zápisu – aby přejmenování nerozbilo běžící provoz
- Fiktivní názvy v návodu – veřejná dokumentace neusnadňuje útok skenerem URL
-
Samostatný návod, tisk a úvodní box
Čas: cca 9:34–11:06
Co a proč:
- Návod běží samostatně – vlastní instalace s potřebnými moduly, aby šel publikovat na AI-EXPO.eu bez celé instalace exponátu
- Tisk obsahu na jednu A4 – čtyři sloupce, plná výška stránky
- Tisk konceptu monitoru – mockup monitoru se znovu zobrazuje v PDF
- Box Zabezpečení na úvodní stránce návodu – rychlý vstup do kapitoly před provozem
- Stránka Historie vývoje (tato) – chronologie pro obchod i techniky
-
Gaze avatar – oči sledující návštěvníka
Čas: večer 6. 7. 2026
Proč: nová varianta avatara, kde oči reagují na pohyb návštěvníka jako u člověka – bez generování videa, bez placeného API, vhodné pro kiosk s webkamerou. Stejný hlasový dialog, jazyky a komiksová bublina jako u ostatních exponátů.
Co vzniklo:
- Varianta Gaze – SVG hlava s realistickými očima (duhovka, zornice, víčka, obočí), animace úst při TTS, stavy poslech/mluví jako u základního exponátu
- Sledování očí – webkamera a knihovna MediaPipe Face Landmarker (CDN, GPU/CPU fallback); záloha sledování prstu na dotykovém kiosku; přirozené mrkání a idle sakkády
- Společný dialog – stejná architektura hlasu, jazyků, bubliny a idle jako u ostatních variant
- Navigace – odkazy na Gaze mezi variantami Rive, Live2D a D-ID
- Administrace – sekce Avatary → Gaze avatar, tlačítko na test exponátu
- Barevné motivy – Gaze v tabulce barev administrace
Technické poznámky:
- Po klepnutí Start se žádá povolení kamery (kromě mikrofonu)
- Landmarky obličeje (nos, oči) → normalizovaný vektor pohledu → plynulý posun duhovky v rámci bělma
- Přepínání stylů očí bez obnovení stránky
-
Exponát „jen oči“ na celou obrazovku
Čas: večer 6. 7. 2026
Proč: na vertikálním kiosku má návštěvník vidět pouze velké oči bez rámečku, jména asistenta a ovládacích prvků – maximální dojem „živého pohledu“, zbytek řeší hlas a bublina.
Co vzniklo:
- Varianta Eyes – fullscreen SVG oči, skryté ovládací prvky jen pro hlasový dialog
- Layout na celou výšku – výběr stylů v patičce, bublina nad očima
- Šest vykreslovacích presetů očí a obočí
- Výběr stylu návštěvníkem – přepínač v patičce, volba se pamatuje v prohlížeči
Presety očí (přepínač v patičce, názvy lokalizovatelné):
- Neutrální – modrá duhovka, výchozí
- Ženské – mandlový tvar, jemné řasy, zelená duhovka, obloukové obočí
- Mužské – užší oko, tmavě hnědá duhovka, silnější rovné obočí
- Dětské – velké kulaté oči, světle modrá duhovka, jemné obočí, nádech tváří
- Realistické – hnědá duhovka, bohatší stíny a detaily víček
- Anime – velká duhovka, malá zornice, kreslené obočí (jediný nestylizovaně-realistický preset)
U presetů kromě anime jsou realistické oči i vyplněné obočí s gradientem (ne bílé čáry jako u původního náčrtu).
Nastavení v administraci:
- Výchozí styl očí, zapnutí výběru pro návštěvníka, volitelný vlastní seznam presetů
- Veřejné API konfigurace – seznam presetů pro přepínač a překlady
-
Ladění Gaze/Eyes – směr, rychlost, odlesky
Čas: večer 6. 7. 2026 · iterace podle testu na webkameře
Co a proč:
- Invertovat osu X / Y v administraci – přední webkamery často zrcadlí obraz; bez invertu oči jely opačně než pohyb návštěvníka
- Rychlost pohybu očí (škála 1–10, posuvník v adminu) – mapování na vyhlazení sledování; výchozí střední hodnota; platí pro Gaze i Eyes
- Odlesky podle osvětlení (výchozí zapnuto) – vzorkování jasu z videa kamery v mřížce 3×3; posun bílých odlesků v duhovce směrem k nejjasnější zóně; v tmě ztlumení. Volitelné vypnutí v adminu
- Oprava statických kruhů kolem duhovky – okraj duhovky zůstával při sledování na místě; odstraněn, okraj jen v radiálním gradientu uvnitř pohyblivé skupiny
- Sjednocený pohyb odlesků – duhovka, zornice i odlesky se posouvají společně; dynamické přepočítání středů očí při změně presetu
-
Doplnění historie vývoje
Čas: večer 6. 7. 2026
Co a proč: zpětné doplnění časové osy podle session vývoje od 3. 7. 2026 (návod, bublina, znalostní báze, admin, Gaze/Eyes) – jeden přehled pro obchod i techniky.
-
Log konverzací v MySQL a dokumentace GDPR
Čas: 7. 7. 2026
Co a proč:
- Modul log konverzací – anonymní ukládání textu dotazů a odpovědí do MySQL
(
exhibit_chat_log), zapnutí v adminu, vytvoření tabulky, prohlížení vadmin-chat-log - Oddělení od usage-stats – statistiky API dál bez textu konverzace
- session_id – UUID relace na kiosku při „Klepněte pro start“, bez IP a jména
- Návod – podstránka Log konverzací včetně GDPR pro provozovatele a vzorových informací pro návštěvníky; odkaz ze zabezpečení a administrace
- Modul log konverzací – anonymní ukládání textu dotazů a odpovědí do MySQL
(
-
Plánovaná rozšíření (fáze 10)
Proč zatím ne: vyšší náklady, zakázková integrace, nebo závislost na API bez free trial.
- Placené TTS bez fallbacku prohlížeče
- Vlastní Rive postava na míru instituce
- HeyGen full-body video – pouze placený vývoj na zakázku
- Deníček uživatele – z návrhu 3. 7. 2026
- Další presety očí (např. staří, zvířecí)
- Přesnější odhad směru světla (HDR / více světel) – nad rámec mřížky 3×3