7 Administrace a konfigurace
Vše se ukládá do config přes webové rozhraní administrace.
Po uložení proběhne přesměrování (bez opakovaného odeslání formuláře).
Všechny tři varianty exponátu (základní SVG, Rive, D-ID) čtou stejnou konfiguraci.
Po nasazení do veřejného provozu doporučujeme
zabezpečení provozu včetně
vlastního názvu configu.
| Sekce v adminu | Co nastavíte |
|---|---|
| Využití API & kredity | Statistiky dnes/měsíc, stav klíčů Gemini/OpenAI/D-ID, poslední požadavky, odhad USD. Plánovací odhad nákladů → |
| Provozní profil | Doporučená nastavení pro mládež, muzeum, firmu, veletrh nebo domácí demo – system prompt, bublina, styl omluv, testovací režim. návod k profilům, nevhodný obsah a filtry AI |
| AI & API | Poskytovatel (Gemini / ChatGPT), API klíče, modely, tarif free/placený, OpenAI varianta (Instant / Thinking) – viz návod k nastavení Gemini |
| Databáze MySQL | Připojení k MySQL, test spojení, mysql_enabled (katalog jen v MySQL) |
| Ikony s dotazy (icons.php) | Sady ikon podle oboru (muzeum, divadlo, gastro, firma, technické výstaviště), kontrola a vytvoření MySQL tabulek,
aktivní sada (icon_set_slug) –
podrobný návod,
kontrola tabulek v admin.php,
název vs. dotaz pro AI,
admin-icons.php |
| Znalostní báze exponátů | Katalog hlavních expozic a exponátů v MySQL, zapnutí vyhledávání v chatu, vytvoření tabulky, náhled a dvě varianty hromadného uložení AI textů, tisk textů pro hlas a bublinu, označení uložených řádků (zelená ikona) – podrobný návod, náhled před uložením, tisk katalogu, označení uložených řádků |
| Log konverzací | Anonymní ukládání dotazů a odpovědí do MySQL pro analýzu (jen admin); vytvoření tabulky, zapnutí modulu, prohlížení záznamů – podrobný návod včetně GDPR, povinnosti provozovatele, informace pro návštěvníky |
| Exponát | Nadpisy, uvítání, system prompt, sada omluv při chybě, testovací režim. Texty zadávejte v češtině – překlad pro návštěvníka řeší přepínač jazyků na kiosku. |
| Hlas | TTS engine, hlas, voice_lang (výchozí/API TTS), barge-in, nepřetržité poslouchání, rychlost odpovědi.
Jazyk STT na kiosku řídí spíše vlajky CS/EN/DE/PL/SK. |
| Bublina & hledání | Komiksová bublina nad avatarem, volitelné vyhledávání Gemini, odkazy v bublině – návod k použití, náklady |
| Nečinnost | Timeout bez interakce, volitelná idle prezentace webových stránek; při vypnuté prezentaci návrat na „Klepněte pro start“ |
| Avatary | Rive (.riv, animace) a D-ID (klíč, fotka, hlas Microsoft TTS) |
| Barvy & motiv | Jednotný vzhled všech variant exponátu – přehled motivů |
| Bezpečnost | Heslo administrace; volitelně vlastní název konfiguračního souboru (ukládání do skryté provozní složky, ukazatel aktivního souboru) – návod níže, zabezpečení provozu |
Výběr AI poskytovatele
- Gemini – pole
api_key, modelymodel_free/model_paid - ChatGPT (OpenAI) – pole
openai_api_key, varianty modelu v administraci - Oba klíče můžete mít uložené; aktivní je jen ten podle
ai_provider - Chat i TTS směruje podle zvoleného poskytovatele (u D-ID včetně video vrstvy)
Bezpečnost – heslo a vlastní název configu
Sekce Bezpečnost v admin (poslední blok před tlačítkem Uložit) řeší přístup do administrace
a umístění konfiguračního souboru na disku. Kompletní kontext:
Zabezpečení provozu.
Admin heslo
Změňte výchozí heslo hned po prvním přihlášení. Slabé heslo umožní komukoli s URL admin
měnit API klíče, prompt a nastavení kiosku. V diagnostice check sledujte
exhibit_ready – varování při výchozím hesle.
Vlastní název konfiguračního souboru
Pole Název konfiguračního souboru slouží k tomu, aby citlivá data neležela pod obecným názvem
config v kořeni webu. Po uložení s vlastním názvem (např. moje-dataxx):
- konfigurace se přesune do skryté provozní složky pod zvoleným názvem (koncovku
.jsondoplní aplikace, pokud ji nezadáte), - aktivní soubor určí malý ukazatel ve stejné složce – jeden řádek s názvem, bez API klíčů (zápis jen do provozní složky, ne do kořene webu),
- původní
configv kořeni se odstraní, - všechna další ukládání z adminu i běh kiosku používají novou cestu automaticky.
Kdy nastavit: před otevřením exponátu veřejnosti (muzeum, veletrh, recepce).
Ve vývoji můžete nechat výchozí config v kořeni; před nasazením doporučujeme vlastní název.
Zapnutí MySQL nepřesouvá config do databáze – název souboru řešíte zvlášť.
Ověření: check → config_storage_mode: "data", config_active_pointer,
config_file_exists: true, config_readable: true;
v produkci ideálně config_writable: false u samotného JSON (zápis do provozní složky pro admin zůstává).
Skutečný název souboru uvidíte jen v administraci – nesdílejte ho veřejně.
HTTP test: URL k vašemu configu ve skryté složce musí vrátit 404 – viz
config ne ke stažení.
Režim nečinnosti (idle)
Sekce Nečinnost v administraci řídí, co exponát udělá po určité době
bez dotyku a bez nové otázky. Společný parametr je
idle_timeout_seconds (v adminu „Nečinnost před startem“, výchozí 120 s).
Podle toho, zda je zapnutá idle prezentace, se chování liší – viz tabulka níže.
Funguje na všech variantách exponátu (základní SVG, Rive, Live2D, D-ID).
idle_mode_enabled |
Po timeoutu bez interakce | Typický provoz |
|---|---|---|
| Vypnuto (checkbox nezaškrtnutý) | Návrat na obrazovku „Klepněte pro start“ – mikrofon se vypne, historie chatu se vymaže, avatar čeká v klidu. Další návštěvník klepne a začne nová relace (uvítání, volba jazyka vlajkami). | Recepce, veletrh, kiosk s rychlým střídáním lidí – každý začíná od startu |
| Zapnuto (idle prezentace) | Automatické procházení seznamu webových stránek – u každé stránky AI složí krátký monolog a avatar ho přečte. Klepnutí nebo mluvení režim ukončí a vrátí běžný dialog. | Muzeum, areál, dlouhodobý provoz – orientace i když nikdo neklade dotaz |
Společné nastavení (oba režimy)
- Timeout –
idle_timeout_seconds: počet sekund od poslední interakce (klepnutí, klávesa, odeslaná otázka). Během mluvení AI nebo čekání na odpověď se odpočet pozastaví. - Interakce – resetuje odpočet; při zapnuté idle prezentaci také ukončí právě běžící monolog.
Idle prezentace zapnutá (idle_mode_enabled)
Volitelná funkce pro dlouhodobý provoz: exponát sám prochází stránky ze seznamu v administraci. U každé stránky server načte obsah, AI z něj složí krátký projev (2–4 věty) a avatar ho přečte hlasem.
- Seznam stránek – řádky ve tvaru
Název atrakce|https://váš-web.cz/…(idle_pages); stránky se střídají v pořadí - Povolené domény – server stahuje jen hostitele odvozené z vašich URL (
idle_allowed_hosts) - Extrakce z HTML – titulek, meta popis, otevírací doba, stav otevřeno/zavřeno, zajímavosti z textu stránky
- AI monolog – krátký projev ve zvoleném stylu; při výpadku AI záložní text ze stránky (hlas prohlížeče)
- Pauza mezi stránkami –
idle_page_seconds(výchozí 12 s) - Obrazovka – bez overlay; ve stavovém řádku název aktuální atrakce, hlavní kanál je hlas
- Ukončení idle – klepnutí, klávesa nebo mluvení (alespoň 3 znaky) okamžitě vrátí běžný dialog
- Styl mluvení – teen slang, klasický tón, nebo stejný jako omluvy při chybě (
idle_phrase_set); volitelně vlastní system prompt (idle_narrator_prompt) - Varianta D-ID – idle používá běžné TTS, ne generování D-ID videa (úspora kreditů a času)
Příklady nastavení pro běžné scénáře
Níže jsou vzory, které můžete zkopírovat do administrace → sekce Nečinnost. Časy upravte podle toho, jak rychle se u vás střídají návštěvníci a jak dlouhé monology chcete.
| Scénář | Idle prezentace | Timeout | Pauza mezi stránkami | Proč tak |
|---|---|---|---|---|
| Recepce / veletrh | Vypnuto | 60–120 s | — | Každý návštěvník začíná u „Klepněte pro start“. Fronta u stánku, žádné samovolné mluvení do prázdna. |
| Muzeum, galerie | Zapnuto | 180 s (3 min) | 15–20 s | Když nikdo neptá, průvodce sám představí expozice z vašeho webu. Návštěvník může jen poslouchat nebo kdykoli promluvit. |
| Průmyslový areál, závod | Zapnuto | 120 s | 12 s | Rotace hal, výrob a bezpečnosti – stránky z intranetu nebo veřejného webu firmy. |
| Info panel venku (náměstí, park) | Zapnuto | 90 s | 10 s | Kratší timeout – kolemjdoucí často jen přejde kolem; idle drží panel „živý“ i bez dotazu. |
| Škola, dílna (demo) | Vypnuto | 300 s | — | Skupina pracuje s projektorem – po pauze raději klidná obrazovka než monolog přes hodinu. |
Ukázka seznamu stránek (pole „Stránky k prezentaci“ – jeden řádek = jedna atrakce):
TXT idle_pages – muzeum
# řádky s # se ignorují
Úvod a mapa areálu|https://www.muzeum-vzor.cz/navstevnici
Stálá expozice – pravěk|https://www.muzeum-vzor.cz/expozice/pravek
Planetárium|https://www.muzeum-vzor.cz/planetarium
https://www.muzeum-vzor.cz/oteviraci-doba
Stačí i samotná URL bez názvu – titulek se doplní z webu. Všechny adresy musí být z domén,
které server smí stahovat (po uložení se odvodí automaticky).
TXT idle_pages – průmyslový areál
Vítejte v areálu|https://firma.cz/o-nas
Hala B – montáž|https://firma.cz/prohlidky/hala-b
Bezpečnost práce|https://firma.cz/bozp-navstevnici
Kontakt a objednávky|https://firma.cz/kontakt
Co návštěvník zažije (příběh)
- Idle vypnuto: Po rozhovoru odejde. Za 2 minuty se na monitoru znovu objeví „Klepněte pro start“. Další člověk klepne, uslyší uvítání a může hned mluvit – předchozí konverzace se neukáže.
- Idle zapnuto: Po 2 minutách ticha avatar sám řekne např. „Teď vám představím planetárium…“ (text složí AI z vaší stránky). Po krátké pauze pokračuje další atrakcí. Návštěvník přijde, klepne nebo řekne „Kde je šatna?“ – idle skončí a začne normální dialog.
- Přerušení během monologu: Stačí klepnout nebo krátce promluvit (alespoň pár slov) – exponát přestane přednášet a čeká na otázku jako obvykle.
Idle prezentace vypnutá
Checkbox „Zapnout režim nečinnosti (idle prezentace)“ nechte prázdný.
Po uplynutí idle_timeout_seconds bez interakce se exponát chová jako na začátku dne:
- Znovu se zobrazí overlay „Klepněte pro start“ (v jazyce zvolené vlajky – viz Jazyk exponátu)
- Mikrofon a aktivní dialog se ukončí, historie chatu se smaže
- Avatar přejde do klidového stavu (Rive/Live2D: animace idle)
- Nepotřebujete vyplňovat
idle_pages– seznam stránek se v tomto režimu nepoužívá
Doporučení: pro profily Mládež nebo domácí demo často necháváme idle vypnutý; pro Muzeum nebo veletrh s vlastním webem idle zapnutý.
Náklady na TTS při dlouhém idle provozu (jen při zapnuté prezentaci) viz Náklady provozu.