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.
1. Připojení k databázi
V webové administraci AI-MODE:
- Otevřete sekci Databáze MySQL.
- Vyplňte hostitele, uživatele, heslo a název databáze (např.
expo_katalognebo vlastní prázdná databáze). - Zaškrtněte Používat MySQL a uložte nastavení.
- Katalog exponátů ukládá data výhradně do MySQL – v administraci není volba JSON úložiště.
- Klikněte Otestovat připojení – musí být zelené „Připojení OK“.
- 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.
| Situace | Co 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 idK | Význam | Příklad |
|---|---|---|
0 | Hlavní expozice (sál, STC blok) | „STC – Dětský svět“ |
> 0 | Exponát pod vybraným sálem | „Atmosferický parní stroj“, idK = 1000 |
Důležité sloupce pro AI
| Sloupec | Účel |
|---|---|
name | Název exponátu / sálu |
description | Technický popis z redakce – interní, pro generování AI textů |
descriptionAI | Text pro návštěvníky v komiksové bublině |
ai_short_desc | Krátký text pro hlas (TTS), 1–3 věty |
ai_enabled | 1 = 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 |
ok | 0 = aktivní, 1 = skrytý |
inventorynumber | Inventá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_descz 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 = pouzedescriptionAI(bez technickéhodescriptionz 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í.
| Sloupec | Zdroje (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.
- Stránka ukáže, kolik záznamů odpovídá filtru, a prázdnou tabulku s progress barem.
- Pro každý záznam se vygeneruje TTS text, text do bubliny a zdroj (popis / Wikipedia / název).
- Hotový řádek se ihned objeví v tabulce – nemusíte čekat na celý výběr.
- Po dokončení náhledu zvolte jednu z akcí uložení (tabulka níže).
| Tlačítko | Co 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
namea technickýdescriptionse 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ý zdroj | Význam |
|---|---|
| Wikipedia | Text z české nebo anglické Wikipedie podle názvu exponátu. |
| Popis | Úryvek z technického sloupce description (DOVIS), vázaný na název. |
| Popis + Wikipedia | Bublina zkombinovala blok z DOVIS a text z Wikipedie. |
| Název | Wikipedia 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
- Po generování projděte náhled – řádky se zdrojem Název nebo — doplňte přes Upravit náhled.
- U exponátů bez Wikipedie vyplňte v DOVIS smysluplný technický popis – při dalším generování se použije zdroj Popis.
- U jednoho exponátu lze v editaci použít tlačítko Vyhledat z internetu (zkusí Wikipedii znovu jen pro ten záznam).
- 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):
- Návštěvník položí otázku o exponátu nebo sálu.
- Model zavolá nástroj
exhibit_get,exhibit_searchneboexhibit_list. - Server načte záznam z katalogu v databázi (jen aktivní položky, volitelně s
ai_enabled). - Odpověď: hlas z
ai_short_desc, bublina zdescriptionAI(název, sál, popis).
| Typ dotazu návštěvníka | Chová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)
?exhibit=ID,
vícejazyčné sloupce v DB, export/import CSV, statistiky dotazů na exponáty.
Související kapitoly
- Administrace a konfigurace
- Komiksová bublina – zobrazení
descriptionAI - Provozní profily – tón odpovědí pro muzeum, firmu, STC…
- Jazyk exponátu – UI kiosk v CS/EN/DE/PL/SK (texty exponátů zatím primárně v jazyce redakce)
- Server a platforma – MySQL, webový server