ENCSPožádat o přístup ke kódu
EST. 2025

Laboratorní deník — vyhledávání, oprávnění, governance

Výzkum toho, co AI smí vidět, kdy musí říct „nevím“ a jak odpověď dokáže, odkud pochází.

Dva fungující systémy a poznámky k nim. Každé rozhodnutí je zapsané i se zamítnutými možnostmi a s tím, co stojí.

OBR. 1 — OBR. 2

Každá odpověď projde stejnými závorami.

O přístupu se rozhoduje v SQL, ještě než se cokoli dostane k modelu. Slova se párují podle lemmatu a kmene. Bez dokladu se model nevolá — a odpověď to řekne.

QUESTION ACCESS FILTERSQL · BEFORE MODEL HYBRID RETRIEVALVECTOR + LEMMA/STEMRRF · k=60 EVIDENCE GATERARE WORDS · IDF MODEL CITEDANSWER “NOT IN THEKNOWLEDGE BASE” NO EVIDENCE · NO CALL VOCABULARY, DF: SCOPED
FIG. 1Cesta odpovědi — znalostní báze →
$ curl -s /qa/ask -d '{"question": "Kdo je Novák?"}'
{ "grounded": true,
  "answer": "… [Invoice note]",
  "sources": [{ "document_title": "Invoice note",
                "excerpt": "Poslal jsem fakturu Novákovi, …" }] }

$ curl -s /qa/ask -d '{"question": "What does the green hummingbird drink?"}'
{ "grounded": false,
  "answer": "This is not in the knowledge base. …",
  "sources": [] }            # no model call
Musí najít · pes / psa · den / dne · liška / lišce · Novák / Novákovi
Nesmí najít · pes / pesto · Pavlovi / pavlač · mech / mechanika · ruka / rukavice
Vynucené selhání · každá oprava jednou vrácená — její testy musí spadnout

Systémy

Dva fungující systémy.

Systém 01

Znalostní báze →

Odpovědi nad vlastními dokumenty firmy, s řízením přístupu.

  • Přístup filtrovaný v SQL před modelem — vektory, slova, statistiky, slovník překlepů
  • Hybridní vyhledávání: vektor + klíče lemma / kmen, sloučené přes RRF
  • Bez dokladu → „tohle ve znalostní bázi není“, model se nevolá
  • Zdroje jsou jen to, co odpověď cituje v [závorkách]
  • Tokeny propojených služeb uložené šifrovaně, použité jen na serveru
Záznamy rozhodnutí 0001–0006 →

Systém 02

Governance runtime →

Pravidla, která stojí mezi AI nástroji a firmou.

  • Pravidla jako YAML playbooky: spouštěče, kontroly, závažnost
  • Kontroly: regulární výrazy, NLI, malé výrazy v izolovaném prostředí
  • Doporučit / varovat / zablokovat — zpřísnit lze, potichu zmírnit nikdy
  • Kotva proti odbíhání v každé relaci, s výzvou k návratu
  • Závora pro akce ven: závažnost z typovaných dat, auditní záznam
Požádat o přístup ke kódu →

Problémy

O čem ta práce je.

Jak pracuji

Návyky, ne hesla.

Texty a rozhodnutí

Laboratorní deník.

E.01Proč nám samotné vektorové vyhledávání nestačiloKrátká poznámka, otázka v jiném tvaru slova — test, který to zachytil, a jak se musela opravit i sama oprava.2026-10EsejE.02Oprávnění před modelemProč řízení přístupu patří do dotazu, ne do promptu — včetně statistik slov a slovníku překlepů.2026-10EsejADR 0001Oprávnění se vynucují před modelem, v SQLKde žije řízení přístupu → v SQL každého dotazu, který čte kusy; bez výjimky, ani pro majitele.2026-08PřístupADR 0002Samotné vektorové vyhledávání nestačí: hybridní vyhledávání s filtrem relevanceVektorové hledání minulo krátký záznam → hybridní vyhledávání s RRF a filtrem relevance. Párování slov nahradilo 0006.2026-10Vyhledávání · nahrazenoADR 0003Citace jsou zdroj pravdy; bez dokladu „nevím“Co je zdroj → jen to, co odpověď cituje; bez dokladu se model nevolá.2026-10CitaceADR 0004Produkt neběží přes osobní předplatné AIOsobní předplatné AI, nebo API → API poskytovatele za obchodních podmínek, klíče pro každé prostředí.2026-09ProvozADR 0005Nasazovací brány při pochybnosti zavírajíKdy smí nasazení ven → jen když prošla každá očekávaná kontrola; kontrola, která neproběhla, selhala.2026-09NasazeníADR 0006Klíče lemma + kmen nahrazují kmeny z předponKmeny z předpon selhaly oběma směry → klíče lemma + kmen spočítané jednou v Pythonu; předpona jen jako pojistka.2026-10Vyhledávání

Frankie Research

Ty části systémů s jazykovými modely, které se snadno přeskočí a draze se platí: co model smí vidět, kdy má říct „nevím“, jak odpověď dokáže, odkud pochází, a jak nasazení prokáže, že funguje, dřív než se dostane k lidem.

Systémy

Znalostní báze s řízením přístupu. Firma se ptá nad vlastními dokumenty. Některé dokumenty jsou pro všechny, jiné jen pro majitele nebo pro konkrétní lidi. Přístup se vynucuje přímo v databázovém dotazu, ještě než se cokoli dostane k modelu — včetně statistik slov, podle kterých se řadí výsledky, protože kdyby se počítaly i z dokumentů, které uživatel nesmí vidět, prozradily by jejich slovník.

Vyhledávání je hybridní: vektorová podobnost a vedle ní fulltextový index, ve kterém je každé slovo uložené jako svůj slovníkový základní tvar (lemma) a svůj kmen. V ohebném jazyce právě to spáruje všechny tvary jednoho slova — pes / psa, den / dne, liška / lišce — a zároveň drží od sebe slova, která si jsou jen podobná (pes není pesto); oba směry jsou regresní testy. Slovo v otázce s překlepem nebo bez diakritiky se opraví podle slovníku sestaveného jen z dokumentů, které tazatel smí vidět.

Filtr relevance pak rozhodne, jestli vůbec existuje doklad. Pokud ne, odpověď zní „tohle ve znalostní bázi není“ a model se vůbec nevolá. Jako zdroje se zobrazují jen dokumenty, které odpověď skutečně cituje. Přístupové údaje k propojeným službám jsou uložené šifrovaně a používá je jen proxy na serveru, takže token se do prohlížeče nikdy nedostane.

Governance runtime

Druhý systém stojí mezi AI nástroji a firmou a rozhoduje, co smějí udělat.

  • Pravidla jako data. Pravidla jsou soubory YAML („playbooky“) se spouštěči, kontrolami a závažností. Kontrolou může být regulární výraz, test odvozování v přirozeném jazyce (NLI) nebo malý výraz v izolovaném prostředí. Změna pravidel nepotřebuje nové nasazení.
  • Tři úrovně: doporučit, varovat, zablokovat. Pravidlo určí nejnižší úroveň, kterou potřebuje; volající ji může zpřísnit, nikdy potichu zmírnit.
  • Kotva proti odbíhání. Pracovní relace nese kotevní embedding svého tématu; každé volání hlásí, jak daleko se rozhovor odchýlil, a když odběhne, vyzve k návratu k tématu.
  • Závora před vším, co jde ven. Má závoru pro akce ven, která odvozuje závažnost pravidlem z typovaných dat — nikdy z toho, jak volající sám popíše, co dělá —, sestaví zprávu ze šablony a zapíše auditní záznam.
  • Při pochybnosti zavřeno. Pravidlo bez spouštěčů se nikdy nespustí a neznámý operátor se vyhodnotí jako nepravda.

Oba systémy jsou soukromé. Kód zpřístupňuji na pozvání — požádat o přístup.

Problémy, které mě baví

  • Udělat z „nevím“ vlastnost, ne selhání.
  • Vyhledávání v ohebných jazycích, kde má jedno slovo mnoho tvarů. Mým příkladem je čeština: liška, lišku, lišce — jedna liška, tři pády.
  • Řízení přístupu, které vydrží, i když je model vynalézavý.
  • Kontroly a nasazovací brány, které při pochybnosti zavírají: kontrola, která neproběhla, je neúspěšná kontrola.

Texty

Rozhodnutí

Krátké záznamy rozhodnutí — kontext, možnosti, které jsem zamítl, co jsem zvolil a co to stojí: záznamy rozhodnutí.

Jak pracuju

  • Nejdřív napíšu selhávající případ jako test, teprve pak opravu.
  • Model držím za jedinou funkcí, aby šel nahradit atrapou, měřit nebo vyměnit.
  • „Nebyla hlášena chyba“ pro mě znamená „neověřeno“.
  • Zapisuju si, proč rozhodnutí padlo a co stojí — další člověk, často já sám, to bude potřebovat.

Kontakt

Frankie Research · [email protected] · Telegram t.me/frankie_research · požádat o přístup ke kódu