Späť na blog
Implementácia15. augusta 20267 min čítaniaAktualizované 22. augusta 2026

RAG Query Rewriting: Ako správne vyriešiť doplňujúce otázky pre AI chatbotov

Krátke doplňujúce otázky fungujú v RAG chatbotoch len so správnym kontextom. Tento sprievodca ukazuje prepisovanie dotazov (Query Rewriting), spresňujúce otázky, limity a testy pre spoľahlivé výsledky vyhľadávania.

Jediná otázka ako „A ako dlho to platí?“ je pre ľudí často jednoznačná. Pamätajú si predtým preberaný produkt, lokalitu aj spomínanú lehotu. Vyhľadávanie vo vedomostnej databáze však vidí najprv len niekoľko slov. Bez vhodného kontextu konverzácie nenájde možno vôbec nic alebo bude hľadať nesprávnu tému. RAG Query Rewriting rieši tento problém tým, že doplňujúcu otázku závislú od kontextu transformuje pred vyhľadávaním na samostatný vyhľadávací dotaz.

Reštaurátor keramiky v svetlej dielni zaraďuje jediný úlomok do kontextu misky
Rovnako ako pri reštaurovaní sa jediný úlomok stáva zrozumiteľným až vďaka správnemu kontextu.

Znie to ako malý medzikrok, ale často rozhoduje o kvalite viacrozhovorového webového chatu. Tento sprievodca ukazuje, ako tímy riešia doplňujúce otázky, kedy je lepšie sa opýtať a ako zabrániť tomu, aby prepis vniesol do vyhľadávania nové fakty, nesprávne oprávnenia alebo zastaraný kontext.

Prečo doplňujúce otázky preťažujú vyhľadávanie vedomostí

Prvá otázka používateľa je väčšinou konkrétna: „Aká záruka platí pre model A?“ Potom nasledujú krátke slovné spojenia ako „A pre väčšiu variantu?“, „Platí to aj na Slovensku?“ alebo „Čo k tomu potrebujem?“. Zámená, vynechané subjekty a odkazy na predchádzajúce odpovede sú v konverzácii prirodzené. Ako izolované vyhľadávacie dotazy sú však slabé.

Klasické kľúčové slová, vektorové vyhľadávanie alebo Hybrid-Search-Pipeline dokážu vyhodnotiť len to, čo dostanú ako dotaz. Reranking síce zlepšuje poradie existujúcich výsledkov, ale nenahradí chýbajúci význam slov „to“ alebo „k tomu“. Query Rewriting preto stojí pred ním: Z aktuálnej otázky a relevantnej histórie vytvorí samostatný dotaz vhodný na vyhľadávanie.

Čo musí spĺňať dobré prepísanie

Úspešne prepísaný dotaz je dostatočne úplný pre vyhľadávanie (retrieval), ale zostáva tesne pri zámere používateľa. Z „A pre Slovensko?“ sa môže stať napríklad „Aké záručné podmienky platia pre model A na Slovensku?“, ak sú model A a záruka v bezprostredne predchádzajúcom dialógu jednoznačne určené. Prepísanie ešte neodpovedá na otázku. Slúži výhradne na nájdenie vhodných zdrojov.

Aktuálny architektonický sprievodca Azure pre konverzačné RAG odporúča zahrnúť relevantnú históriu konverzácie a sformulovať aktuálnu otázku pred vyhľadávaním ako samostatný dotaz s vyriešenými odkazmi. Dôležité je tam takisto zjavné oddelenie: Pre neskoršiu odpoveď zostáva zachovaná pôvodná otázka používateľa. Systém tak môže skontrolovať, či nájdené podklady skutočne zodpovedajú položenej otázke.

Dopĺňať, ale nevymýšľať

Modul pre prepisovanie (rewriter) môže prevziať jednoznačne prítomné údaje: produkt, verziu, krajinu, jazyk alebo naposledy spomenutý úkon. Nesmie však dopĺňať chýbajúce zákaznícke číslo, určovať predpokladanú variantu produktu ani meniť neistý časový údaj na konkrétny dátum. Užitočne znejúce, ale vymyslené spresnenie spoľahlivo nasmeruje vyhľadávanie nesprávnym smerom.

Oprávnenia zostávajú mimo textového modelu

Klientske konto (tenant), prihlásený používateľ, sprístupnené oblasti dokumentov a roly sa určujú na strane servera. Nepatria do prepísaného dotazu ako voľne formulované tvrdenie. Backend nastavuje príslušné filtre metadát oddelene a nemenne. Ani predchádzajúci príspevok v chate, ani prepis modelom nesmie odomknúť väčší priestor na vyhľadávanie.

Kontext potrebuje premiestnené limity

Odoslanie kompletnej histórie chatu bez filtrovania rewriteru je zriedkavo dobrým riešením. Staré témy môžu prekryť aktuálnu otázku, osobné údaje sa môžu zbytočne prenášať ďalej a dlhé konverzácie zvyšujú latenciu a náklady. Ako praktickú orientáciu uvádza sprievodca od Microsoftu dve až päť nedávnych kôl rozhovoru a zhrnutie staršieho obsahu. Nejde o univerzálny limit, ale o štartovací bod pre vlastné testy.

Kompaktný kontextový balík sa môže skladať z nasledujúcich prvkov:

  • nezmenenej aktuálnej otázky používateľa,
  • niekoľkých bezprostredne relevantných príspevkov používateľa a asistenta,
  • už potvrdených entít, ako je produkt, úkon alebo lokalita,
  • Locale a časového pásma ako technických polí,
  • krátkodobého, overeného zhrnutia starších častí dialógu a
  • verzie pravidla prepisu, indexu vedomostí a konfigurácie vyhľadávania.

Skutočné oprávnenia k dokumentom zostávajú od toho oddelené. Rovnako by mali byť pred prepisom odstránené nepotrebné e-mailové adresy, čísla objednávok alebo úplné odpovede. História šetrná k dátam navyše uľahčuje neskoršie hľadanie chýb.

Robustný postup v šiestich krokoch

  1. Skontrolovať samostatnosť: Jasná nová otázka ako „Ako si zmením heslo?“ môže ísť priamo do vyhľadávania. Nie každá správa vyžaduje prepis modelom.
  2. Rozpoznať odkazy: Systém označí zámená, elipsy, porovnávacie slová a odkazy ako „tam“, „obidva“ alebo „druhá možnosť“.
  3. Vybrať relevantný kontext: Preberú sa len tie príspevky, ktoré tieto odkazy logicky vyriešia. Vedomá zmena témy ukončí starý kontext.
  4. Rozhodnúť o prepise alebo spresňujúcej otázke: Ak je spoľahlivé práve jedno riešenie, vznikne samostatný vyhľadávací dotaz. Ak existuje viacero možných významov, chatbot položí krátku spresňujúcu otázku.
  5. Vyhľadať a prípadne rozložiť: Dotaz prejde cez vyhľadávanie kľúčových slov, vektorové alebo hybridné vyhľadávanie. Viacdielne otázky sa môžu rozložiť na jasne pomenované podotázky.
  6. Odpovedať na pôvodnú otázku: Odpoveď sa vygeneruje z nájdených zdrojov, vzťahuje sa na pôvodné znenie a otvorene pomenúva neistotu alebo chýbajúce podklady.

Prehľad agentového vyhľadávania od Microsoftu (Agentic Retrieval) opisuje podobný postup: Dotaz a história konverzácie vstupujú do plánovania, zamierené podotázky sa vykonávajú paralelne a výsledky sa následne spokoja. Dokumentácia k Amazon Bedrock takisto opisuje plánovanie, iteratívne podotázky a kontrolu, či nájdený obsah postačuje na odpoveď. Takéto produktové funkcie môžu prevziať časti procesného reťazca; kontrolné mechanizmy kvality a bezpečnosti vlastnej aplikácie však zostávajú naďalej potrebné.

Rewrite, spresňujúca otázka alebo Query Decomposition?

n
Vstup Vhodná reakcia Odôvodnenie
„A platí to aj na Slovensku?“ po jednoznačnej otázke týkajúcej sa záruky Sformulovať samostatný dotaz Predmet aj odkaz sú jednoznačné.
„A čo tá druhá?“ po spomenutí troch variantov Položiť krátku spresňujúcu otázku Viacero vysvetlení je pravdepodobných.
„Porovnaj cenu, dodaciu lehotu a vrátenie pre obidva modely“Rozložiť na zamerané podotázky Viacero nezávislých aspektov vyžaduje spoľahlivé výsledky.
„Nová téma: Ako kontaktujem podporu?“ Hľadať bez starého kontextu produktu Používateľ signalizuje zmenu témy.

Query Decomposition teda nie je to isté ako Query Rewriting. Rewriting robí zo závislej otázky samostatnú; Decomposition rozdeľuje komplexnú otázku na viacero vyhľadávacích úloh. Dokumentácia Bedrock ku Query Decomposition ukazuje, že viacero podotázok môže zlepšiť pokrytie. Každá dodatočná otázka však vyžaduje limit, spoločný model oprávnení a prehľadné spájanie.

Zaobchádzajte s výstupmi prepisu ako s kódom

Aj keď je výsledkom len text, mal by mať pevne stanovenú štruktúru. Vhodný je štruktúrovaný objekt s poľami ako standaloneQuery, decision, resolvedReferences a reason. Povolené rozhodnutia sú napríklad SEARCH_AS_IS, REWRITE, CLARIFY a DECOMPOSE. Backend pred spustením vyhľadávania validuje dĺžku, jazyk a povolené polia.

Rewriter nedostáva žiadne nástroje a neodpovedá priamo používateľovi. Systémové pokyny z histórie chatu, vložené texty dokumentov alebo výzvy typu „Ignoruj pravidlá“ zostávajú dátami, nie riadiacimi príkazmi. Pre rizikové oblasti vyhľadávania môže deterministické pravidlo navyše vynútiť, aby filtre produktov, Locale alebo klientskych kont nikdy nepochádzali z voľného textu.

Testovanie pomocou vlastnej testovacej sady doplňujúcich otázok

Kvalitu nie je možné dokázať len jednotlivými podarenými ukážkami. Doplňte existujúci Golden Set pre kvalitu odpovedí o reálne viacrozhovorové dialógy. Pre každý prípad sa zaznamenáva pôvodný priebeh, aktuálna otázka, očakávané rozhodnutie o prepise, povolené entity, zakázané doplnenia a očakávané zdroje.

  • Zámená a vynechané subjekty v krátkych doplňujúcich otázkach
  • Opravy ako „Nie, myslel som model B“
  • Zmeny tém a návrat k predchádzajúcej téme
  • Viacznačné varianty, ktoré nevyhnutne vyžadujú spresňujúcu otázku
  • Zmeny Locale, dátumu a časového pásma
  • Neoprávnené pokusy o zmenu priestoru vyhľadávania alebo klientskeho konta
  • Dlhé konverzácie s nerelevantnými staršími detailmi
  • Viacdielne otázky, ktoré sa rozložia a znova spoja

Merajte oddelene: Zodpovedá prepis zámeru používateľa? Nájde vyhľadávanie očakávané zdroje? Pýtala sa aplikácia pri skutočnej viacznačnosti? Zostali filtre oprávnení nezmenené? Koľko dodatočnej latencie tento krok spôsobuje? Rámec NIST AI RMF Core zaraďuje opakované testovanie, meranie a dokumentovanie do celého životného cyklu AI. Pre tím spravujúci web to znamená: Meniť pravidlo prepisu, model alebo výber kontextu len s regresným testom a monitorovaným nasadením.

Kompaktný kontrolný zoznam pre tímy spravujúce web

  • Zostáva pôvodná otázka používateľa nezmenená až po vygenerovanie odpovede?
  • Zahŕňajú sa len relevantné časti histórie šetrné k dátam?
  • Môže si rewriter jasne vybrať medzi prepisom, spresňujúcou otázkou a rozložením?
  • Dopĺňa výhradne potvrdené entity a žiadne dohady?
  • Nastavuje backend Locale, klientske konto a oprávnenia nezávisle od prepisu?
  • Má každá podotázka pevné limity množstva, času a nákladov?
  • Hodnotia sa výsledky vyhľadávania vzhľadom na pôvodnú otázku?
  • Pokrýva testovacia sada viacrozhovorových dialógov odkazy, opravy a zmeny tém?

Záver: Najprv ujasniť vyhľadávací dotaz, potom odpovedať

RAG Query Rewriting robí z prirodzenej stručnosti konverzácie spoľahlivý vyhľadávací dotaz. Najväčší prínos nevzniká prostredníctvom čo najkreatívnejších prepisov, ale vďaka jasným hraniciam: prevziať potvrdený kontext, vyriešiť neistotu spresňujúcou otázkou, spravovať oprávnenia na strane servera a odpoveď naďalej posudzovať vzhľadom na pôvodnú otázku. Začnite s dvadsiatimi typickými doplňujúcimi otázkami z vašej podpory, označte očakávané rozhodnutie a testujte každú zmenu voči tým istým prípadom. Vďaka tomu bude viacúrovňový chat zrozumiteľnejší bez toho, aby vyhľadávanie potichu odpovedalo na inú otázku.

Zdroje

Premieňajte návštevy webu na lepšie rozhovory

Spustite AI chatbota, ktorý je už od začiatku užitočný

Natrénujte ChatReact na vašom webe, dokumentoch a overených faktoch, aby návštevníci dostávali rýchlejšie odpovede a váš tím menej opakovaných požiadaviek.

Súvisiace články

Pokračovať v čítaní