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

Záznam rozhodnutí 0003

0003 — Citace jsou zdroj pravdy; bez dokladu „nevím“

Stav: přijato · Datum: 2026-10

Kontext

Každá odpověď ukazuje své zdroje. První verze vypisovala všechny vyhledané kusy. Uživatelé ten seznam četli jako „z tohohle odpověď vychází“ — a nebyla to pravda: vyhledávání vrací kandidáty, model jich použije pár. Seznam zdrojů s nepoužitými kusy je nepravdivé tvrzení a učí lidi přestat ověřovat.

Druhé selhání bylo opačné: když vyhledávání nenašlo nic dobrého, model i tak vyrobil plynulou, věrohodně znějící odpověď ze slabého kontextu.

Možnosti

  1. Vypsat všechny vyhledané kusy (dosavadní stav).
  2. Požádat model o strukturovaný seznam ID zdrojů.
  3. Model cituje názvy dokumentů přímo v textu; zdrojem se stanou jen citované kusy. Bez dokladu se model nevolá.

Rozhodnutí

Možnost 3.

  • Systémový prompt vyžaduje u každého tvrzení citovat název dokumentu v hranatých závorkách: [Postup vydání]. Po vygenerování odpovědi jsou zdroji ty vyhledané kusy, jejichž název dokumentu je citovaný — přesný název uvnitř závorek (velikost písmen a mezery se sjednotí; přípona oddílu jako [Postup vydání › Návrat zpět] se přijme). Jeden zdroj na dokument (nejlépe seřazený kus), zobrazený se čitelným úryvkem (app/sources.py).
  • Když filtr relevance (rozhodnutí 0002) nenechá nic, endpoint vrátí pevnou zprávu „tohle ve znalostní bázi není“, bez zdrojů a bez volání modelu.
  • Když je model nedostupný, uživatel stejně dostane kusy s doklady, jasně označené jako „nejde o odpověď“ (grounded=false), místo chybové hlášky.

Proč ne 2: strukturovaná ID vypadají na papíře čistěji, ale model, který si vymyslí odpověď, si vymyslí i věrohodné ID. Citace názvem si člověk ověří přímo v textu odpovědi a převod zpět na kusy dělá deterministický kód, ne výstup modelu.

Dodatek (2026-10): první verze brala název jako citovaný, kdykoli se v odpovědi objevil jako podřetězec. Krátké, běžné názvy („Postup vydání“, „Onboarding“, „FAQ“) se pak staly zdroji, kdykoli odpověď ta slova použila v běžném textu. Teď se počítají jen značky v závorkách s přesným názvem; případy falešných shod jsou testy (tests/test_sources.py).

Cena

  • Když model závorky zapomene, odpověď nemá zdroje. To je bezpečné selhání (nedoložené tvrzení o doložení je horší než chybějící doložení) a je vidět.
  • Párování podle názvu předpokládá rozlišitelné názvy. Dva dokumenty se stejným názvem by se ukázaly oba; v tomto měřítku přijatelné a důvod později vynutit jedinečné názvy.
  • „Nevím“ je viditelné selhání. Je to zamýšlené chování, ale díry v pokrytí jsou pak na první pohled vidět — užitečná zpětná vazba, při předvádění občas nepohodlná.