Obsah · Kapitola 7 · Znalostní báze exponátů

Znalostní báze exponátů (MySQL)

← Kapitola 7: Administrace a konfigurace

Modul znalostní báze ukládá katalog hlavních expozic (sálů) a exponátů v MySQL. Hlasový kiosk pak u dotazů typu „Co je Projekce Šroub?“ nebo „Najdi parní stroj“ načítá ověřená data z databáze místo hádání z obecných znalostí modelu.

Stav: modul je součástí AI-MODE (2026) – správa katalogu, náhled a hromadné uložení AI textů, tisk textů pro hlas a bublinu, trvalé označení uložených řádků (zelená ikona v seznamu i tisku). Plánují se další zdroje dat, synchronizace s CMS a rozšířené scénáře.

1. Připojení k databázi

V webové administraci AI-MODE:

  1. Otevřete sekci Databáze MySQL.
  2. Vyplňte hostitele, uživatele, heslo a název databáze (např. expo_katalog nebo vlastní prázdná databáze).
  3. Zaškrtněte Používat MySQL a uložte nastavení.
  4. Katalog exponátů ukládá data výhradně do MySQL – v administraci není volba JSON úložiště.
  5. Klikněte Otestovat připojení – musí být zelené „Připojení OK“.
  6. Uložte nastavení.

Bez funkčního MySQL modul katalogu neběží. Chat exponátu může fungovat dál v obecném režimu (Google Search*, obecné znalosti), ale nevyhledá konkrétní exponáty z vašeho seznamu.

2. Kontrola tabulky a první instalace

Katalog používá jednu tabulku v MySQL (výchozí název lze změnit v konfiguraci klíčem knowledge_base_table). Aplikace při startu kontroluje, zda tabulka existuje a má potřebné sloupce.

SituaceCo udělat
Nová databáze – tabulka chybí Admin → Znalostní báze exponátů → tlačítko Vytvořit tabulku v MySQL
Existující databáze s katalogem Tabulka už je – v adminu zkontrolujte stav; pokud chybí sloupce pro AI texty (ai_short_desc, descriptionAI, ai_enabled) nebo sloupec admin_reviewed_at pro označení uložených řádků v seznamu, doplní je tlačítko Spustit migraci schématu tabulky ve stejné sekci
Tabulka existuje, 0 záznamů Postup: hlavní expozice → exponáty → volitelně generování AI textů

U čerstvě vytvořené tabulky jsou sloupce pro AI texty i admin_reviewed_at součástí schématu (soubor tools/create-webcollab-exposition.sql). U starší tabulky z jiného systému je doplníte migrací z administrace nebo skriptem tools/migrate-webcollab-exposition-ai.sql.

3. Hlavní expozice a exponáty (jedna tabulka)

Hierarchie je plochá – dva typy záznamů ve stejné tabulce:

Sloupec idKVýznamPříklad
0Hlavní expozice (sál, STC blok)„STC – Dětský svět“
> 0Exponát pod vybraným sálem„Atmosferický parní stroj“, idK = 1000

Důležité sloupce pro AI

SloupecÚčel
nameNázev exponátu / sálu
descriptionTechnický popis z redakce – interní, pro generování AI textů
descriptionAIText pro návštěvníky v komiksové bublině
ai_short_descKrátký text pro hlas (TTS), 1–3 věty
ai_enabled1 = nabízet v AI kiosku
admin_reviewed_atČas posledního uložení v adminu (ručně, z náhledu i hromadné přegenerování) – zelený řádek a ikona v seznamu i tisku
ok0 = aktivní, 1 = skrytý
inventorynumberInventární číslo / vitrína

4. Správa katalogu v administraci

Katalog otevřete odkazem Spravovat katalog ze sekce Znalostní báze exponátů v administraci (stránka admin-expositions.php).

  • + Hlavní expozice – nový sál (idK = 0)
  • + Exponát – položka pod existujícím sálem (výběr rodiče)
  • Filtr seznamu – hledání, konkrétní sál (idK), aktivní/skryté záznamy; filtr určuje i rozsah akce Přegenerovat AI texty…
  • Úprava – formátovaný editor pro text do bubliny (descriptionAI), technický popis v sbalitelné sekci
  • Vyhledat z internetu – u jednoho záznamu doplní ai_short_desc z Wikipedie
  • Tisk / PDF (hlas + bublina) – odkaz v seznamu i u editace jednoho záznamu; viz kapitola níže

Doporučený postup u nové instalace: nejdřív vytvořte alespoň jednu hlavní expozici, teprve potom pod ni přidávejte exponáty. Uložení exponátu ověří, že rodič existuje a je sál (idK = 0).

Označení uložených řádků

Po uložení v administraci (tlačítko Uložit, Uložit náhled do databáze nebo Přegenerovat znovu a uložit) se v databázi nastaví čas ve sloupci admin_reviewed_at. V seznamu katalogu pak uvidíte:

  • zelený řádek s levým pruhem – rychlá orientace v dlouhém seznamu
  • zelenou ikonu fajfky u názvu exponátu – po najetí myší datum a čas uložení

Označení je trvalé v MySQL – přežije odhlášení z administrace i restart prohlížeče. Platí pro všechny tři způsoby uložení výše. Záznamy uložené před doplněním sloupce admin_reviewed_at zůstanou bez ikony, dokud je znovu neuložíte. U starší tabulky bez sloupce spusťte migraci schématu (viz kontrola tabulky).

Tisk katalogu (texty pro hlas a bublinu)

Pro kontrolu redakce nebo tisk na papír / PDF slouží samostatná tisková stránka. Otevřete ji:

  • ze seznamu katalogu – odkaz Tisk / PDF (hlas + bublina) nebo Tisk celého výběru (respektuje aktivní filtr, max. 5000 záznamů)
  • z editace jednoho exponátu – tlačítko Tisk hlas + bublina
  • z náhledu generováníTisk náhledu (ještě neuložené texty) nebo Tisk uložených textů z DB

Tisk se otevírá v jednom pojmenovaném okně prohlížeče – další klik na tisk přepíše obsah stejného okna, nehromadí se desítky záložek. Tlačítko Zpět na tiskové stránce okno zavře a vrátí vás k seznamu (pokud prohlížeč zavření nepovolí, proběhne běžná navigace zpět).

Výtisk uložených dat z DB je rozdělen podle hlavní expozice (sálu):

  • nadpis skupiny: název sálu + inventární číslo hlavní expozice vpravo
  • tabulka exponátů: sloupce Opr. (ikona u uložených řádků), ID, Inv. číslo, Název, volitelně AI (zapnuto v kiosku), Hlas (TTS) = ai_short_desc, Bublina = pouze descriptionAI (bez technického description z DOVIS)

V záhlaví tisku je počet záznamů a kolik z nich má označení uložení v adminu. Tisk spusťte tlačítkem Tisk / uložit PDF na tiskové stránce (Ctrl+P).

5. Generování AI textů (hromadně)

V seznamu katalogu zvolte filtr (sál, hledání, aktivní/skryté) a spusťte akci Přegenerovat AI texty…. Nejdřív se zobrazí náhled po řádcích (viz níže) – do databáze se nic nezapíše, dokud nepotvrdíte jedno z tlačítek uložení.

SloupecZdroje (po pořadí)
ai_short_desc (TTS) Technický popis DOVIS (blok k názvu) → Wikipedia (cs, pak en) → název exponátu
descriptionAI (bublina) Blok z technického popisu → odstavec z Wikipedie → název (HTML odstavce)

Náhled před uložením do databáze

Generování probíhá ve dvou krocích – nejdřív náhled, teprve potom zápis do MySQL. Po spuštění akce se stránka hned otevře; texty se zobrazují postupně po řádcích (progress „Generuji náhled… 3 / 37“), abyste viděli průběh i na pomalejším serveru nebo při volání Wikipedie.

  1. Stránka ukáže, kolik záznamů odpovídá filtru, a prázdnou tabulku s progress barem.
  2. Pro každý záznam se vygeneruje TTS text, text do bubliny a zdroj (popis / Wikipedia / název).
  3. Hotový řádek se ihned objeví v tabulce – nemusíte čekat na celý výběr.
  4. Po dokončení náhledu zvolte jednu z akcí uložení (tabulka níže).
TlačítkoCo udělá
Uložit náhled do databáze (N) Zapíše do MySQL texty z tabulky náhledu (včetně úprav z Upravit náhled). Doporučený postup po kontrole. Jedním kliknutím uloží celý filtr (max. 5000).
Přegenerovat znovu a uložit (N) Ignoruje náhled – texty se na serveru znovu vygenerují z DOVIS/Wikipedie a přepíší ai_short_desc a descriptionAI. Před spuštěním je potvrzovací dialog.

Obě akce nastaví u uložených řádků admin_reviewed_at – v seznamu uvidíte zelený řádek a ikonu.

Na Windows serveru s IIS a PHP přes CGI se náhled posílá po jednom řádku v samostatném požadavku (spolehlivější než jeden dlouhý stream). Stránku nechte otevřenou – u desítek záznamů s Wikipedií počítejte s minutami.

Úprava jednotlivých řádků z náhledu

U každého řádku v tabulce náhledu je tlačítko Upravit náhled. Otevře editaci exponátu s předvyplněnými vygenerovanými texty (ai_short_desc i descriptionAI) – ještě nejsou v databázi. Text upravíte a uložíte tlačítkem Uložit – změna se zapíše do MySQL a synchronizuje do cache náhledu (při hromadném Uložit náhled do databáze se použijí i tyto úpravy). Ostatní záznamy zůstanou beze změny, dokud nespustíte hromadné uložení celého náhledu nebo je neupravíte stejným způsobem. Po uložení se řádek v seznamu označí zeleně a ikonou (viz označení uložených řádků).

Tlačítko Zpět na náhled generování v editaci vrátí na tabulku náhledu (u již vygenerovaných řádků zůstávají data v paměti relace).

Co si pohlídat

  • Vygenerované texty jsou návrh – redakce je v editaci doladí.
  • Uložit náhled do databáze zapíše přesně texty z tabulky náhledu (doporučeno po kontrole).
  • Přegenerovat znovu a uložit přepíše AI texty novým generováním — náhled v tabulce se nepoužije.
  • Po jakémkoli uložení (ručním, z náhledu i hromadném) se řádky v seznamu označí zeleně.
  • Sloupce name a technický description se hromadnou akcí nemění.
  • U sdíleného popisu více exponátů se bere úryvek vázaný na název, ne první cizí blok.
  • Řádky se zdrojem (prázdné TTS i bublina) při uložení přeskočí – viz Wikipedia a záložní zdroje.

Wikipedia a záložní zdroje

Při hromadném generování (náhled i Přegenerovat znovu a uložit) server volá Wikipedii zdarma (REST API, nejprve česká wiki, pak anglická). U mnoha vitrínových exponátů ale článek neexistuje nebo se neshoduje s názvem – to není chyba aplikace, běžný stav u vlastních názvů muzea.

Kdy Wikipedia „nepomůže“
  • Žádný článek – např. „Hraj si s magnety“, „Setrvačnost oka“ (typické u interaktivních stanic).
  • Timeout – dotaz má limit cca 6 s; při pomalé síti může doběhnout čas.
  • Síť serveru – chybí odchozí HTTPS, firewall, výpadek internetu, chybí PHP rozšíření curl.
  • Omezení API – příliš mnoho požadavků za krátkou dobu (HTTP 429) nebo jiná chyba Wikipedie.
  • Rozcestník – stránka s více významy se nepoužije.

Aplikace nespadne – u každého řádku zkusí záložní zdroje. Mezi řádky, které Wikipedii opravdu použily, je krátká pauza (0,2 s), aby se API nepřetěžovalo.

Co uvidíte v náhledu (sloupce Zdroj TTS / Zdroj bubliny)
Zobrazený zdrojVýznam
WikipediaText z české nebo anglické Wikipedie podle názvu exponátu.
PopisÚryvek z technického sloupce description (DOVIS), vázaný na název.
Popis + WikipediaBublina zkombinovala blok z DOVIS a text z Wikipedie.
NázevWikipedia ani použitelný popis nenašly nic lepšího – použit samotný název exponátu.
Nic se nevygenerovalo; řádek se při hromadném uložení přeskočí.
Doporučený postup redakce
  1. Po generování projděte náhled – řádky se zdrojem Název nebo doplňte přes Upravit náhled.
  2. U exponátů bez Wikipedie vyplňte v DOVIS smysluplný technický popis – při dalším generování se použije zdroj Popis.
  3. U jednoho exponátu lze v editaci použít tlačítko Vyhledat z internetu (zkusí Wikipedii znovu jen pro ten záznam).
  4. Při výpadku sítě na serveru počítejte s víc řádky Název / ; po obnovení spusťte generování znovu pro stejný filtr.

Volání Wikipedie je zdarma a neúčtuje se v API Gemini/OpenAI – jde jen o čas generování a provoz serveru. Viz také náklady znalostní báze.

6. Použití v AI aplikaci (chat na kiosku)

Po zapnutí v adminu (Zapnout znalostní bázi v chatu + funkční MySQL):

  1. Návštěvník položí otázku o exponátu nebo sálu.
  2. Model zavolá nástroj exhibit_get, exhibit_search nebo exhibit_list.
  3. Server načte záznam z katalogu v databázi (jen aktivní položky, volitelně s ai_enabled).
  4. Odpověď: hlas z ai_short_desc, bublina z descriptionAI (název, sál, popis).
Typ dotazu návštěvníkaChování
„Co je Projekce Šroub?“ / „Exponát číslo 12“Data z MySQL (exhibit_get)
„Najdi parní stroj“Vyhledání v DB (exhibit_search)
„Jaké jsou sály?“ / „Co je v expozici X?“Seznam z DB (exhibit_list)
„Kde je divadlo v Ostravě?“ (mimo expozici)Obecné znalosti / Google Search*, ne katalog

* Google Search jen pokud je v adminu zapnuto vyhledávání v bublině a dotaz není o exponátech z katalogu. Viz Komiksová bublina. Odhad dopadu na API: náklady znalostní báze a náklady bubliny.

Náklady provozu katalogu

Samotný MySQL katalog nepřidává poplatek za tokeny u Google/OpenAI. Dotazy na exponáty z databáze obvykle nevyužívají placený webový grounding – platíte jen běžný chat a TTS. Hromadné generování textů v administraci volá Wikipedii zdarma (příprava obsahu, ne provoz kiosku). Souhrn v kapitole Náklady provozu – znalostní báze.

7. Možnosti využití – příklady podle typu instituce

Znalostní báze dává kiosku ověřená fakta o vašich exponátech. Níže jsou typické scénáře – modul se bude dál rozšiřovat (sync s CMS, QR u vitrín, více jazyků v DB…).

Muzea a galerie

  • Hlasový průvodce u vitríny: „Řekni mi o tomto obrazu“ → detail z descriptionAI.
  • Přehled sálů: „Co je v expozici barokního umění?“
  • Bez halucinací – pokud exponát v DB není, avatar to přizná.

Příklad dotazu: „Kdo namaloval tento portét?“ (po načtení exponátu podle názvu nebo ID vitríny)

Science centra a technická muzea (VSTO, EC1…)

  • Desítky interaktivních stanic – každá jako exponát pod sálem (Energie, Doprava…).
  • Krátký hlasový úvod (ai_short_desc) + delší vysvětlení v bublině pro školní skupiny.
  • Hromadné generování textů z technické dokumentace + Wikipedia jako start pro redakci.

Příklad dotazu: „Jak funguje atmosferický parní stroj?“

Firmy a firemní muzea

  • Prohlídky výroby / historie firmy – exponáty = stroje, produkty, milníky.
  • Kiosk v recepci: „Co vyrábíme v hale B?“
  • Provozní profil Firma + vlastní katalog v MySQL.

Příklad dotazu: „K čemu slouží tento lis?“

Veletrhy a expoziční stánky

  • Rychlé naplnění katalogu před akcí – hlavní expozice = stánek, exponáty = produkty na ukázce.
  • Návštěvník se ptá na konkrétní vystavený přístroj místo obecné reklamy.

Příklad dotazu: „V čem je jiný než konkurence?“ (odpověď jen z textů, které redakce vložila do DB)

Školy, knihovny, infocentra

  • Menší katalog (10–50 položek) – expozice tematické sestavy, literatura, region.
  • Profil Mládež / vzdělávání + jednoduché popisy v descriptionAI.

Příklad dotazu: „Co je to fotosyntéza?“ u vzdělávacího panelu registrovaného jako exponát

Zoo, botanické zahrady, skanzeny

  • Exponát = pavilón, druh, historická stavba; sál = celý areál nebo trasa.
  • TTS u cedule bez čtení dlouhého textu na tabuli.

Příklad dotazu: „Proč je tady tento druh ohrožený?“

Nemocnice, veřejné budovy, turistické body

  • Orientace v areálu – hlavní expozice = budova / patro, exponáty = služby, památky v budově.
  • Bez náhrady lékařské informace – jen vámi schválené texty v DB.

Příklad dotazu: „Kde je rentgen?“ (pokud je místo v katalogu jako exponát s popisem)

Plánované rozšíření dokumentace a modulu: synchronizace s redakčním systémem, QR parametr ?exhibit=ID, vícejazyčné sloupce v DB, export/import CSV, statistiky dotazů na exponáty.

Související kapitoly