Kihagyás

Tool Selector

gpt-4.1

Előfeltételek: Kezdeti adatgyűjtés

Az adatgyűjtés egy bonyolult, ugyanakkor a válaszadás minőségének szempontjából igen fontos feladat, ugyanis ha a megfelelő adat nem lett megtalálva, akkor az hiányos válaszhoz, rosszabb esetben hallucinációkhoz vezethet. Ugyanakkor az nem várható el, hogy az adatgyűjtési rendszer tökéletes, és mindent elsőre megtalál.

Elégséges források

Adott: Szöveges chunk-ok egy \(\mathcal{D}\) halmaza, egy \(q\) kérdés és a \(H\) korábbi üzenetváltás.

Feladat: Eldönteni, hogy \(\mathcal{D}\)-ben megtalálható-e minden információ, ami ahhoz szükséges, hogy \(q\)-ra megfelelő választ lehessen adni.

A megvalósítás

Az eszköz teljesen LLM alapú: megkérjük az LLM-et (jelenleg gpt-4.1) hogy döntse el, rendelkezésre áll-e minden szükséges adat a válaszadáshoz. Amennyiben igen, a válaszadás következik, ellenkező esetben az utólagos adatgyűjtés

A konfigurációs beállítások a backend repo-ban, elsődlegesen a tool-configuration.yml fájlban találhatók, a project.tools.choose mezőben. A használt OpenAI modellt az eszköz a az application.yml fájl project.openai.models.chat-model mezőjéből örökli. A végrehajtást a ChooseToolService osztály végzi.

Az eszköz története

A modul már a Guru (illetve Virtuális Asszisztens) legelső verziójában is szerepelt. Ekkor célja picit más volt: kiválasztani a következő lépést a rendelkezésre álló információk alapján. Más szóval többé kevésbé ez látta el „gondolkodási motor“ szerepét, és mint olyan, több opció állt rendelkezésére (szöveges adatgyűjtés, SQL adatgyűjtés, válaszadás), illetve több minden lépés (a válaszadáson kívül) ide futott be, hogy ismét eldöntsük, kell-e következő.

Ezzel több probléma is volt, melyek fő forrása, hogy az akkori gpt-3.5 nem volt elég kompetens ahhoz, hogy tudja, mikor kell abbahagyni a visszakérdezést. Így néha hiányos adathalmazból kezdődött meg a válaszadás, vagy épp ellenkezőleg, túl sok adatgyűjtési lépés futott, ami a futási időt rontja jelentősen. Továbbá ez utóbbi nem modellspecifikus: ha sokszor fut az adatgyűjtés, sokkal hosszabb lesz a válaszadás is.

Az eszköz jelenlegi állapota tehát az eredeti funkció erősen megcsonkolt változata. Az iterációk száma legfeljebb 1 lett, illetve az eszközök halmaza kimerül a hibrid keresés meghívásában. Mindenesetre az eredeti név megmaradt, ezért hívja a kód „choose tool“-nak, a dokumentáció „tool selector“-nak.