Kihagyás

Flow – A folyamatok leírása

A Gránit Guru átfogó működése falhasználói szemszögből nézve számos kisebb nagyobb flow segítségével írható le. Most ezek közül következik a fontosabbak nagyvonalú leírása.

A dokumentáció ezen része szorosan összefügg a Modulok szekcióval. Míg jelen egység a nagyvonalú leírásokat tartalmazza, a Moduloknál az egyes lépésekhez használt eszközök részletes leírása található.

Válaszadás

A Guru legfőbb funkciója: a felhasználó beír egy kérdést, és erre kap egy választ. A modulok jelentős hányada ezen folyamat szerves része. Következzen tehát a válaszadás flow leírása.

A Beérkező üzenet feldolgozása

Ezen lépés célja a felhasználói üzenetek előkészítése, hogy ezáltal optimalizáljuk a keresési eredményeket.

Első lépés a kérdés újra fogalmazása (Question reform), ez segít kiszűrni az elgépeléseket, formázza a kérdést és összeségében olyan alakra hozza, amivel a lehető legjobban lehet keresni a következő lépésekben. Valamint a másik célja, hogy több üzenetből álló beszélgetés esetén a szükséges kontextust is hozzáadjuk az újra fogalmazott kérdéshez (például follow-up kérdések esetén).

Beérkező üzenetek ellenőrzése

Ebben a szakaszban meghatározzuk az üzenet rendeltetését, valamint kiszűrjük az irreleváns és potenciálisan rosszindulatú tartalmakat.

Semantic routing lényege, hogy a kérdés szemantikai tartalma alapján eldöntsük, vajon az banki témához kapcsolódik-e, amely esetben érdemes a válasz előtt az adatkollekciós keresést végrehajtani. Amennyiben a kérdés banki témájú, akkor megkülönböztetjük, hogy milyen jellegű banki szándékról van szó:

  • A PRODUCT_INFO kategóriába tartoznak azok a kérdések, amelyek egy vagy több banki termékre vonatkoznak, és általánosságban vagy összehasonlítás céljából fogalmazzák meg az üzenetet. Ide tartozik például, ha a felhasználó a termék feltételeire, jogosultsági szempontjaira, jellemzőire, vagy elérhető opciókra kérdez rá, de nem nevez meg egyetlen konkrét paramétert (pl. kamatláb, lekötési idő, EBKM).
  • A BANK_SPECIFIC_QA kategóriába kerül minden más banki információs kérdés.

Amennyiben a kérdés banki szempontból irreleváns, egy általános válaszadás következik és az AI chatbot azonnal visszajelzi, hogy ezeken a területeken nem segít.

Ezzel párhuzamosan fut az Input guardrails, amely védelmi szerepet tölt be. Ez a funkció kiszűri azokat az üzeneteket, amelyeknek rosszindulatú a célja. Például, ha egy felhasználó arra próbálja rávenni a chatbotot, hogy sértő tartalmakat jelenítsen meg, megváltoztassa a működését vagy kiadjon olyan bizalmas információkat, mint a chatbot belső működése.

Adatok gyűjtése

Ez a folyamatnak az a része, ahol különböző eszközökkel információt gyűjtünk az adatbázisunkból a beérkezett kérdésre.

Topic exctractor Type és Subtype szinten meghatározza melyik témához kapcsolódik a kérdés. (Pl. Type a Bankszámlák, Subtype a Bajnok számla)

Suggestion routing A válaszhoz kiválasztja a Topic és a kérdés alapján, hogy milyen ajánló gombok jelenhenek meg az üzenet alatt.

Predefined question search egy előre meghatározott kérdés-válasz párokból álló adatbázisból keres szemantikai alapon a felhasználó kérdéséhez kapcsolódókat.

Hybrid search: két részből áll össze, amelyek együttes használata jobb eredményt ad mintha külön-külön csak az egyiket használnánk:

  • Semantic search: az információként szolgáló dokumentumokat kisebb, jelentés szempontjából egybefüggő darabokra bontottuk. A keresés ezeken az információ darabokon (chunk-ok) zajlik, ezeket és a feltett kérdés szemantikai tartalmát hasonlítjuk össze.
  • Keyword search: a feltett kérdésből kinyert kulcsszavakra keresünk és ez által választunk ki releváns dokumentum részleteket.

Ezeknek a kereséseknek az eredményeit sorba rendezzük relevancia szerint egy Cross encoder segítségével, és az így kapott legjobb eredmények lesznek a kiválasztott dokumentum részletek.

Miután ezek a keresések párhuzamosan lefutottak, megvizsgáljuk, hogy az eddig összegyűjtött információ alapján képesek vagyunk-e válaszolni a kérdésre. Ha igen, akkor tovább lépünk a folyamatban. Ha nem, akkor viszont indíthatunk egy második keresési kört. Ekkor a fent leírt módszereket egy új bemenettel újra meghívhatjuk, valamint egy további eszközt is használhatunk.

Product info search: a PRODUCT_INFO kategóriába tartozó kérdések esetén használatos. Ezeknél az eseteknél a cél nem egy összetett számítás vagy hosszabb magyarázat, hanem egy konkrét banki termékre és annak egy jellemzőjére vonatkozó rövid, pontos információ.

A tool megkapja a termékre és annak tulajdonságaira vonatkozó lekérdezést, valamint a keyword search kereséssel kiválasztott legrelevánsabb chunkokat. A tool egy LLM ami::

  • kiválaszt egyetlen chunkot, amely tartalmazza a szükséges információt és kizárólag az ebben szereplő tartalom alapján válaszol,
  • a lehető legrövidebb, csak a tényleges értéket tartalmazó választ adja meg.

Ez a folyamat biztosítja, hogy a felhasználó szűk fókuszú, de mégis átfogó választ kapjon a banki termékekről kártyás megjelenítéseken.

Releváns szövegrészek kiválasztása

Ezen lépés során történik a keresésekkel összegyűjtött összes potenciálisan hasznos részletből a valóban relevánsak kiszűrése.

Ezt a feladatot a Relevance extractor modul végzi. A feltett kérdés és a beszélgetés előzmények alapján minden szövegrész egy pontszámot kap, amely azt jelzi, hogy az adott információ egyáltalán nem, részben vagy teljesen válaszolja meg a kérdést. A releváns szövegrészeket ezután továbbítja a válaszadás modulnak, amely ezek alapján állítja össze a megfelelő választ.

Scope extractor

A Scope extraction tool feladata annak meghatározása, hogy a felhasználó által kért számítás melyik fő kategóriába esik, melyek alapján tudjuk választani a megfelelő megoldási utat.

Ez által tudjuk hogy a kalkulációt eltudjuk végezni, vagy egyszerre több kalkulációt vagy esetleg hybrid kalkulációt szeretnénk végezni.

Ha a kérdés megválaszolásához olyan számításra van szükség, amelyet az eszköz nem tud elvégezni, vagy ha egy általános hitelezéssel kapcsolatos kérdést kap, amelyre szintén nem feladata válaszolni, akkor ezt jelezni fogja.

Az ilyen típusú hibák bekerülnek a gyűjtött hibalistánkba, így az Answer tool tisztában lesz vele, hogy a kérdés túlmutat a hatáskörén.

Rule checker

A Rule checker tool feladata ellenőrizni, hogy a felhasználó által beérkezett kérés megfelel-e bizonyos szabályoknak.

Ha a kérdés megszegi a tool hatáskörébe tartozó szabályok valamelyikét, akkor az eszköz ezt jelzi. A hiba bekerül a gyűjtött hibalistánkba, így az Answer tool tájékoztatni tudja a felhasználót a vonatkozó szabály megszegése alapján a szükséges lépésekről.

Jelenleg csak két szabályt tartalmaz, ez rugalmasan bővíthető és módosítható új igények alapján:

  • nem számolunk bruttó havi jövedelemmel, a felhasználónak nettóban kell megadnia
  • nem számolunk ki a felhasználó által megadott matematikai kifejezéseket (például „Mennyi 62+12?“)
Extract loan information

Az Information extractor tool feladata a beérkezett kérdés és annak előzményei alapján kinyerni a felhasználó által megadott fontosabb adatokat és információkat, amelyekkel később számolni fogunk.

Ezeket lementjük egy Felhasználó profilba (user profile), amelyből a megfelelő számítás elvégzésekor kivesszük a szükséges értékeket.

Intent recognizer

Az Intent recognizer tool feladata, hogy felismerje a felhasználó szándékát.

Mivel többféle számítást, különféle feltételekkel támogatunk, így előre meghatározzuk a felhasználó szándékát annak érdekében, hogy a tool választó és az Answer toolok már csak a szükséges (a felhasználó szándékához kapcsolódó) információkat kapják meg dinamikusan, ne pedig minden információt egyszerre.

Ezzel csökkentjük a rajtuk lévő felelősséget és a kapott kontextus hosszát, könnyebbé és hatékonyabbá téve számukra a választást és a válaszadást.

Tool selector

A Tool selector feladata, hogy meghatározza a kapott információk alapján a következő lépést. Megkapja a felhasználótól összegyűjtött adatok alapján összeállított Felhasználói profilt, valamint azt, hogy egyes számítások elvégzéséhez milyen információkra van szükség a felhasználótól.

  • Amennyiben a szükséges kalkulációhoz minden kötelezően bekérdendő adattal rendelkezünk, kiválasztja a megfelelő kalkulációt.

  • Amennyiben valamilyen adat még hiányzik, kiválasztja a „Missing information“ nevű lehetőséget és megadja, hogy milyen információt kell még elkérni a felhasználótól. Ezt továbbítjuk az Answer toolnak, aki ennek megfelelően fog válaszolni.

  • Amennyiben olyan kérdés érkezett, amelyhez nem szükséges kalkuláció vagy amihez már minden szükséges információval rendelkezünk, a válaszadás lehetőséget választja.

Válasz megfogalmazása

Az előzőekben leírtak alapján gyűjtött információkat megkapja és meghatározott szabályok alapján megírja a választ, amelyet már streamelve folyamatosan jelenítünk meg a felhasználónak.

Kimenő üzenet ellenőrzése

A fentebb ismertetett védelmi mechanizmus másik eleme az Output guardrails. Ez az eszköz a generált válaszokat vizsgálja, és amennyiben bármilyen rendellenes működést észlel, az addig generált üzenetet elrejti, és egy sablonválasszal helyettesíti.

Személyes információk maszkolása

Minden bejövő és kimenő üzenet, valamint a belső működéssel kapcsolatos adatok rögzítésre kerülnek egy log táblázatban. A személyes információk nem kerülnek mentésre, hanem a szövegben maszkokkal kerülnek elfedésre annak érdekében, hogy biztosítsuk a felhasználók adatainak védelmét.

Hitelkalkulátorral kiegészített Virtuális Asszisztens folyamat 🧮

Annak érdekében, hogy könnyebben átlássuk a hitelkalkulátor folyamatot, összpontosítsunk most csak arra a részletre, amely akkor kezdődik, amikor az Input Guardrails megerősíti a beérkezett üzenet biztonságosságát, és a Routing a hitel ágra irányítja.

ProjectSettings

Leírás modulok segítségével

A fent részletezett toolok alapján nézzük meg, hogyan néz ki az egész folyamat.

  • Az Input Guardrails megerősíti a beérkezett üzenet biztonságosságát, és a Routing a hitel ágra irányítja.
  • Párhuzamosan lefut egymás mellett a Rule checker, az Intent recognition, az Information extractor és a Scope validator.
  • A Rule checker eredménye (ha valamilyen szabályt megszegett a kérés) és a Scope extractor eredménye (amennyiben a kérés a kalkulátor hatáskörén kívül esik) bekerülnek a hibalistánkba.
  • Az Intent recognition eredménye bekerül a kontextusba.
  • Az Information extractor eredményét pedig lementjük a felhasználói profilba.
  • Ellenőrizzük az information extraction által kinyert értékeket. Amennyiben valamelyik érték nem felel meg a hozzá tartozó értékkészletnek (például valaki 200 milliónál nagyobb hitelt kért, miközben a bank csak 200 millióig hitelez), akkor ez bekerül a hibalistánkba.
  • Ellenőrizzük, hogy volt-e valamilyen hiba (üres-e a hibalistánk).
  • Amennyiben hiba lépett fel, rögtön a válaszadásra ugrunk és a megfelelő hibaüzenetek alapján válaszolunk a felhasználónak.
  • Amennyiben semmilyen hiba nem lépett fel, következik a Tool selector, aki kiválasztja a következő lépést.
  • Ha egy kalkulációt választott, először a kalkuláció előtt megfut a hozzá tartozó input validáció. Ez azért fontos, mert néhány kalkulációhoz külön szabályok tartoznak (például Babaváró esetén maximum 11 millió a felvehető hitelösszeg).
  • Amennyiben itt hibát találunk, rögtön a válaszadásra ugrunk és a megfelelő hibaüzenetek alapján válaszolunk a felhasználónak.
  • Ha nem találtunk hibát, akkor a profilban található információk alapján megfuttatjuk a kalkulációt az Excelünk alapján.
  • A kalkuláció kimenetén szintén validációt végzünk. Ez azért is fontos, mert a kalkuláció során is kijöhet olyan eredmény, amit nem támogatunk. (például a nettó jövedelme alapján a felhasználó több, mint 200 millió hitelre lenne jogosult, ám a bank csak 200 millióig hitelez).
  • Miután lement a kalkuláció, vagy a Tool selector az Answer vagy a Missing information következő lépést választotta, akkor megyünk a válaszadásra.
  • Az Answer tool pedig a hozzá érkezett információk (van-e hiányzó adat, lépett-e fel hiba, kalkulációs eredmény, kalkulációkra vonatkozó egyéb információk) alapján választ ad a felhasználónak.

Egyéb fontos lépések:

  • Amennyiben két kalkuláció közt váltunk (babaváró után csok pluszt kalkuláció jön), a felhasználói profilt kinullázzuk.

Fontos megjegyzések a működéssel kapcsolatban:

  • Az egyes kalkulációkhoz tartoznak AK (abszolút kötelező) mezők, amiket a felhasználónak meg kell adnia ahhoz, hogy számolhassunk.
  • Emellett vannak kötelező és opcionális mezők, amiknél alapértelmezett értékkel számolunk, ezeket a folyamat során a felhasználó kérésére tudjuk változtatni.
  • Vannak fix értékek (például a kamat, amivel számolunk), ezeket nem lehet változtatni.
  • A számítási logika Excelben található, ezt futtatjuk meg a megkapott bemeneti adatok segítségével és innen szedjük a megfelelő kimeneti adatokat.
  • Az egyes toolok a rendelkezésükre álló enumokból választanak, mi pedig ezeket szöveges hibaüzenetekre cseréljük, amit megkap az Answer tool.

Dokumentum feltöltés

TBD