Přeskočit obsah

Rozhodnutí: Knowledge Base pro AI (Odkud Sofie ví?)

Problém

Sofie (AI Concierge) musí odpovídat na dotazy typu "Co má mít Anička na školu v přírodě?". K tomu potřebuje znát školní dokumenty, pravidla, jídelníčky. Odkud data vezme a jak zajistíme, že jsou správná?

Rozhodnutí: Google Drive + Úrovně důvěryhodnosti

Dokumenty žijí na Google Drivu (škola už v něm pracuje). Složky určují, zda jim AI může věřit.

Struktura složek

📁 Sofie Knowledge Base (sdílená složka)
├── 📁 ✅ Ověřené (AI se může spolehnout)
│   ├── Školní řád 2025.pdf
│   ├── ŠVP.pdf
│   └── Pravidla vyzvedávání.docx
├── 📁 📅 Aktuální (platí do odvolání)
│   ├── Jídelníček - únor 2026.pdf
│   └── Rozvrh kroužků.docx
└── 📁 📝 Drafty (AI NEPOUŽÍVÁ)
    └── Návrh výletu - neschváleno.docx

Pravidla

Složka AI může citovat? Kdo nahrává Kdo schvaluje
✅ Ověřené ✅ Ano Kancelář Ředitel
📅 Aktuální ✅ Ano Kancelář / Učitel — (automaticky platné)
📝 Drafty ❌ Ne Kdokoliv

Technický Flow

  1. Sync (noční cron nebo manuální trigger): Kosmo přečte složky a 📅 přes Google Drive API.
  2. Embedding: Text se rozseká na chunky → Gemini text-embedding-004 → uloží do pgvector (Supabase).
  3. Dotaz: Rodič se zeptá → Sofie prohledá vektorovou DB → najde chunk → odpoví s citací ("Podle školního řádu, čl. 5...").
  4. Smazání: Při dalším syncu zmizí smazaný dokument z vektorové DB.

FAQ: Samoučící se znalostní báze

Sofie se nejen ptá dokumentů — sama si vytváří FAQ z reálných dotazů rodičů.

Flow

Rodič:   "Můžeme přivést na školu v přírodě vlastní jídlo?"
Sofie:   (Nenašla odpověď v Knowledge Base)
         "Dobrý dotaz! Na to nemám ověřenou odpověď. 
          Zeptám se ředitele a vrátím se k vám."
         Vytvoří Ticket (kategorie: 'info_request')
         Předpřipraví draft odpovědi (pokud má kontext)
Ředitel: Vidí v dashboardu: "Nový FAQ dotaz"
         Upraví/schválí odpověď:
         "Ano, ale musí splňovat hygienické normy (viz příloha)."
         [✅ Schválit a publikovat do FAQ]
Sofie:   1. Odpoví rodiči: "Ředitel odpověděl: Ano, ale..."
         2. Uloží do tabulky `faq_entries` (verified: true)
         3. Příště odpoví sama: "Ano, vlastní jídlo je povolené,
            ale musí splňovat hygienické normy. (FAQ #42)"

Proč je to silné

  • Ředitel má kontrolu: Žádná odpověď se nepublikuje bez schválení.
  • AI se učí: Každý schválený FAQ je nový fakt pro Sofii.
  • Méně práce: Stejný dotaz od 5 rodičů = 1 odpověď ředitele, ne 5.
  • Transparentnost: Rodič vidí, že odpověď přišla od vedení, ne od AI.

Zdroje dat (souhrn)

Typ Příklad Zdroj Aktualizace
Strukturovaná data Rozvrh, docházka Supabase (DB) Automaticky z appky
Dokumenty Školní řád, ŠVP Google Drive Manuálně (Kancelář)
FAQ Ověřené odpovědi Supabase (faq_entries) Schválením ředitele
Jídelníček Denní menu strava.cz (XML feed) Automaticky (cron)

Alternativa: Paperless-ngx

  • Co to je: Open-source DMS pro správu dokumentů (OCR, tagování, fulltext).
  • Verdikt: Zatím NE (rozhodnuto 2026-02-09).
  • Důvod:
    1. Overkill: Pro malou školu je Google Drive s fulltextem dostatečný.
    2. Údržba: Další self-hosted služba (Docker, zálohování, security).
    3. Adopce: Další UI pro administrativu. Drive znají.
  • Kdy přehodnotit: Až bude dokumentů 10 000+ nebo bude potřeba složité schvalovací workflow nad fakturami.