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

Systém

Governance runtime

Pravidlový engine nad vektorovou databází, který stojí mezi AI nástroji a firmou. Dostane kus textu a jeho kontext, najde pravidla, která platí, spustí jejich kontroly a vrátí strukturovaný verdikt — ok, warn, block nebo insufficient_data — s pravidly, která se shodla, kontrolami, které selhaly, a konkrétními kroky, jak text opravit. Vlastní model pro rozhodování nemá: volající pošle text, dostane verdikt a podle něj jedná.

Problém

Pravidla nad volným textem jsou těžší než průchod regulárním výrazem. Která pravidla platí, závisí na kontextu — pravidlo o číslech karet je v interním logu bezpředmětné a v e-mailu ven zásadní. Jak přísně, závisí na místě. Tón a rozpor nejsou otázka klíčových slov. A každé rozhodnutí musí jít dohledat a vrátit.

Jak probíhá konzultace

  1. Spouštěče — vyhodnocovač s uzavřenou sadou operátorů (žádné eval) rozhodne, které playbooky platí.
  2. Vektorové vyhledání — pgvector s embeddingy sentence-transformers vytáhne relevantní uložené kusy a dřívější případy.
  3. Kontroly — každý platný playbook spustí své kontroly: regulární výraz, test odvozování v přirozeném jazyce (NLI) nebo malý výraz v izolovaném prostředí.
  4. Verdikt — platné playbooky, varování, kroky a odkazy, k tomu použitá úroveň kontroly.

Na čem stojí

  • Pravidla jako data. Playbooky jsou soubory YAML se spouštěči, kontrolami (každá se závažností) a úrovní kontroly; validují se a verzují, takže se pravidla mění bez nového nasazení.
  • Tři úrovně kontroly — doporučit, varovat, zablokovat. Pravidlo určí nejnižší úroveň, kterou potřebuje; volající může přísnost zvýšit, nikdy potichu snížit.
  • Kotva proti odbíhání. Relace nese kotevní embedding svého tématu; každé volání hlásí míru a stav odchýlení a vyzve k návratu, když rozhovor odběhne.
  • Závora pro akce ven. Závažnost se odvozuje pravidlem z typovaného snímku dat — nikdy z toho, jak volající sám popíše, co dělá — zpráva se sestaví ze šablony a rozhodnutí se zapíše jako auditní záznam.
  • Při pochybnosti zavřeno. Playbook bez spouštěčů se nikdy nespustí; neznámý operátor se vyhodnotí jako nepravda; úroveň kontroly jde jen zvýšit.
  • Oddělení nájemců po schématech. Každý nájemce má vlastní schéma v Postgresu; trojí závora (nájemce → role → dokument) drží data jednoho nájemce mimo výsledky druhého.

Technologie

Python 3.11 · FastAPI · SQLAlchemy 2 (async) · Alembic · Postgres + pgvector · sentence-transformers (BGE-M3, CPU) · Pydantic v2. Jednotkové testy běží v CI bez databáze.

Kód je soukromý a zpřístupňuji ho na pozvání — požádat o přístup.