Semantic Routing
Eszköz konkrétan nem használja, az egész flow-t határozza meg.
A Gurunak nem az összes kérdésre kell válaszolnia, hanem alapvetően csak a bankkal kapcsolatosakra. Továbbá nem is mindig kérdésre válaszol, hanem néha kalkulál is. Ezek az esetek teljesen különböző pipeline-ok alapján futnak, így el kell döntenünk, hogy melyiket futtassuk, melyik segítségével válaszoljunk.
Feldolgozási út kiválasztása
Adott: A felhasználói \(q\) kérdés és a \(H\) korábbi üzenetváltás, illetve üzenetfeldolgozási utak egy \(\mathcal{R}\) halmaza
Feladat: Egy \(R\in \mathcal{R}\) őt kiválasztása, aminek mentén feldolgozásra kerül majd az üzenet.
A megvalósítás
A következő utak állnak rendelkezésre:
Út |
Leírás |
|---|---|
BANK_SPECIFIC_QA |
A Gránit Bankkal, annak termékeivel, illetve általános bankolással kapcsolatos kérdések. |
LOAN_CALCULATOR |
Hitelek paramétereinek számolása. |
PRODUCT_INFO |
Jelenleg definiálva van, de a kódban használaton kívüli, kiválasztás esetén a BANK_SPECIFIC_QA ágon haladunk. |
IRRELEVANT_TOPIC |
A fentebb leírtak közül egyik sem, tehát olyan üzenetek, melyek nem kapcsolódnak a bankoláshoz. |
Az eszköz teljesen LLM alapú: megkérjük az LLM-et (jelenleg gpt-4.1) hogy válasszon a megfelelő irányok közül, melyeket a prompt-ban megpróbálunk jól körülírni.
A konfigurációs beállítások a backend repo-ban, a következő helyen találhatók:
- A fő prompt a tool-configuration.yml fájlban a project.tools.semantic-routing mezőben található.
- Az elérhető utak leírásai a semantic-routing-paths.yml fájlban találhatók.
- 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 SemanticRoutingCallService osztály végzi.