Egy kérdés útja

Nyolc lépés, a vezérlés végig a kódban.

A nyelvi modell a kérdés átírásában, az osztályozásban, az ellenőrzésekben és a végső válaszban vesz részt. A lépések sorrendjét, az eszközök futtatását, a keresést és a kontextus összeállítását a vezérlő alkalmazás kódja végzi. A paraméterek kinyerése és a fogalmazás a modell feladata, így ezek kimenete futásonként eltérhet, de minden modellkérés és válasz, az eszközök döntései és a pontszámok naplózottak: utólag pontosan visszakövethető, mi történt és miért.

  1. 1
    Nyelv, normalizálás A kérdező nyelvének felismerése, a kérdés átfogalmazása, kulcsszavak és szinonimák gyűjtése, a gyanús kérések jelzése. Itt dől el, hogy kell-e egyáltalán keresni.
  2. 2
    Osztályozás Kérdés vagy utasítás? Az összetett kérdést a rendszer részkérdésekre bontja, és mindegyik saját keresést kap.
  3. 3
    Eszközök Részkérdésenként kiválasztódnak a feladathoz illő eszközök, például mélykeresés vagy külső rendszerek lekérdezése.
  4. 4
    Keresés Kulcsszavas, vektoros és tudásgráf alapú keresés több szinten, pontszám-összevonással és újrarangsorolással.
  5. 5
    Ellenőrzés Ellenőrzi, hogy a talált kontextus elég-e a válaszhoz. Ha nem, a releváns oldalak környezetében keres tovább.
  6. 6
    Kontextus Teljes oldalak, rangsor szerint, a részkérdések eredményeinek egyesítésével.
  7. 7
    Válasz Streamelt, forrásjelölt válasz a helyi nyelvi modelltől, a forrásellenőrzés eredményével együtt.
  8. 8
    Memória A beszélgetés összefoglalója a háttérben frissül, így a következő kérdés a korábbiakra épülhet.

Többszintű gráf-hibrid keresés

A keresés nem egyetlen lépés, hanem több szint együttműködése. A mondat- és az összefoglaló-szintű kulcsszavas keresés (BM25), az oldalak vektoros előszűrése (átlag- és összefoglaló-vektor alapján) és a szelektív tudásgráf-keresés közösen jelöli ki a keresési kört. A költségesebb, mondatszintű vektoros keresés már csak ezen a szűkített körön belül fut.

A tudásgráf (ArangoDB) a dokumentumokból kinyert entitásokat és kapcsolatokat tartalmazza. A rendszer szelektíven használja: csak azokat az oldalakat emeli ki, ahol a fogalom megkülönböztető erejű, így a gyakori fogalmak nem zajosítják a találatokat. Az összefoglalóban és a gráfban megtalált oldalak súlytöbbletet kapnak, a pontszámokat a rendszer összevonja, végül újrarangsoroló modell (BGE reranker) állítja sorba a találatokat. A szöveg-beágyazást E5 Large modell végzi.

Magyar nyelvre optimalizálva

A magyar nyelv ragozó jellegű, ezért a rendszer magyar lemmatizálót és entitás-felismerőt (NER) használ. A kérdésben szereplő ragozott alak így is megtalálja a dokumentumban szereplő szótövet. Az NLP-feldolgozás Apache Spark és SparkNLP alapokon fut.

A tudásbázis magyar nyelvre van optimalizálva, a rendszer azonban felismeri a kérdező nyelvét, és a nyelvi modell fordítási képességének köszönhetően a felhasználó a saját nyelvén kérdezhet és kaphat választ.

Agent-orchestráció, kódban rögzített vezérléssel

A rendszer eszközöket használ, és az összetett kérdéseket részkérdésekre bontja. Minden részkérdés előbb a saját koordinátorán fut át: az kiegészíti vagy lépésekre bontja a feladatot, és csak ezután futnak a feladat saját eszközei, amelyek megkapják a rész-lépések eredményét. A testvér részkérdések egymástól függetlenek, a végső kontextus mindegyik eredményét egyesíti.

Egy eszköz háromféle eredménnyel zárulhat: kontextust ad a válaszhoz, kész választ ad, vagy visszakérdezést kezdeményez. A kész válasz azonnal lezárja a kérést, a felesleges lépések pedig kimaradnak. A sorrendet nem a nyelvi modell, hanem a vezérlő alkalmazás kódja határozza meg.

Kontextus a csatlakoztatott rendszerekből

Nem kell mindent előre feltölteni a tudásbázisba. Az egyedi pluginként fejlesztett agentek a csatlakoztatott rendszerekből is képesek kontextust kérni egy kérdés megválaszolásához, egyedi API-konnektorokon vagy szabványos MCP-szervereken keresztül.

Hogy mikor, melyik rendszerből kell adatot kérni, azt a plugin fejlesztője dönti el, így a tudásbázis és az élő rendszerek adatai egyetlen válaszban találkozhatnak.

Minőségellenőrzés és mélykeresés

A válasz előtt egy minőségellenőrző lépés vizsgálja, hogy a kontextus tartalmazza-e a kért információt, és igazolt-e minden feltétel. Ha az információ nincs kimondva, vagy egy feltétel csak közvetetten igazolt, az ellenőrzés leszállítja a pontszámot.

Ha a kontextus nem elég, a mélykeresés előbb a releváns oldalak közvetlen környezetében keres, és csak ha ott sincs válasz, akkor tágítja a kört. Minden részeredményt az ellenőrző lépés újra megvizsgál a forrásoldalon, az elutasított idézet pedig visszakerül a következő kísérletbe. A végső válaszoló megkapja a kért információt, az idézetet, a döntést és a feltételeket.

Visszakérdezés

Ha egy eszköz azt jelzi, hogy hiányzik egy adat, a rendszer elmenti a teljes feladatot és a részben kitöltött kérést, és a kérdés kimegy a felhasználónak. A válasz gyors úton jut vissza ugyanahhoz az eszközhöz, amely újra kérdezhet, vagy végrehajtja a feladatot. Több kérdés is követheti egymást, körönként egy.

Miért a kód vezérel, és nem a modell?

Sok mai megoldás a nyelvi modellre bízza a folyamat irányítását: a modell dönti el, mikor hív eszközt, és milyen lépéseket tesz. Ez gyors prototípushoz jó, éles környezetben viszont a folyamat nem determinisztikus, nehezen naplózható, és a modell cseréje vagy frissítése megváltoztathatja a működést.

A Privát AI rendszer-alapú: az eszközöket a vezérlő alkalmazás aktiválja, koordinálja és sorrendezi. A nyelvi modell jól körülhatárolt feladatokat kap, például a kérdés nyelvének felismerését, normalizálását, a paraméterek kinyerését, az osztályozást és a végső választ. Minden döntés, prioritás és elágazás a kódban él, naplózható és tesztelhető, így a működés akkor is kiszámítható marad, ha a mögöttes modell változik.

Több domain, adatszintű elkülönítéssel

Egyetlen telepítésen belül több, egymástól adatszinten elkülönített domain futhat. Egy kórház például ugyanazon a rendszeren üzemeltethet betegdokumentációs, belső szabályzati és HR domaint is. Az elkülönítés az adatokon érvényesül: a keresés, az eszközök aktiválása és a tudásbázis tartalma mind a domain határán belül marad, az egyik domain adataihoz a másik kérései nem férnek hozzá.

A felhasználó a bejelentkezéskor, az integrációs hívások pedig a kérésben határozzák meg, melyik domainnel dolgoznak.

System: szűkítés a domainen belül

A domainen belül a system tovább szűkíti a hatókört. Egy egészségügyi domainben például a belgyógyászat és a kardiológia külön system lehet: azonos infrastruktúrán, de elkülönített adatkészlettel és akár eltérő eszközökkel. Ha a kérés system-szűrőt tartalmaz, a keresés és az eszközök aktiválása csak az adott system adataira és tool-jaira terjed ki.

Dokumentumok betöltése

A tudásbázis PDF- és DOCX-dokumentumokból, valamint weboldalakból építhető. A betöltés mögött egy LibreOffice-alapú konvertáló mikroszolgáltatás áll, ezért mindazokat a formátumokat támogatjuk, amelyeket a LibreOffice kezelni tud. A táblázatok felismerése OCR-rel is működik, így a szkennelt anyagok sem maradnak ki. A válasz igény szerint letölthető PDF-dokumentumként vagy strukturált (Markdown, JSON) kimenetként is elkérhető.

Fogalmak röviden

  • Domain: egymástól adatszinten elkülönített tudásterület, például betegdokumentáció vagy HR.
  • System: a domainen belüli további szűkítés, például egy szakterület.
  • Tool (eszköz, agent): a platform alapegysége, egy feladatot megvalósító agent. Kontextust ad a válaszhoz, kész választ ad, vagy visszakérdez.
  • Plugin: csomagolási egység, amely egy vagy több tool-t tartalmazhat, és futás közben tölthető be.

Minőségbiztosítás minden válasz mögött

Minden válasz mögött automatikus relevancia-értékelés fut, amely önhangoló küszöbbel figyeli a találatok minőségét. Gyenge találatnál a rendszer mélyebb, kiegészítő elemzést indít, mielőtt válaszolna. A beépített hűség-ellenőrzés azt méri, mennyire támaszkodik a válasz ténylegesen a visszakeresett forrásokra, ez csökkenti a hallucináció kockázatát.

Beépített minőségmérés

A platform metrika modulja a keresés minőségét szabványos információ-visszakeresési mutatókkal (MRR, MAP, nDCG, Success@k) méri, kérdéstípusonként és keresési módszerenként: BM25, vektoros és az összevont, újrarangsorolt keresés. A mérések Grafana műszerfalon követhetők.

Grafana műszerfal: MRR és MAP mutatók kérdéstípusonként, BM25, vektoros és újrarangsorolt keresés összehasonlítása
A metrika modul Grafana műszerfala: keresési módszerek összevetése kérdéstípusonként (demó tudásbázison, illusztráció).

Nyelvi modell: az Önök választása

A modellt vLLM szolgálja ki, OpenAI-kompatibilis interfésszel. Bármilyen nyílt modell használható, például Gemma, Llama, Mistral, Qwen vagy DeepSeek. A modell cserélhető anélkül, hogy a platform többi része változna.

Kész chatbot felület

A platform kész, azonnal használható chatfelülettel érkezik: streamelt válaszok, beszélgetés-előzmények, forrásmegjelenítés, világos és sötét téma. Külön fejlesztés nélkül is használható, ugyanakkor a platform API-n keresztül bármely meglévő rendszerbe beépíthető.

A beszélgetés-memóriát Redis adja.

Adminisztrációs felület

Az admin felületen kezelhető a teljes rendszer: itt hozhatók létre a domainek, itt tölthető fel az induló dokumentumkészlet, és itt szerkeszthetők a tudásbázis elemei is. Ugyanitt kezelhetők a felhasználók, a szerepkörök és a rendszerpromptok.

Ha a szervezet saját forrásból dolgozna, plugin fejlesztésével egyedi ingestion pipeline is kialakítható. Az integrációkról a fejlesztőknek szóló oldalon, a biztonsági megoldásokról a Biztonság oldalon olvashat.

Egyeztessünk, és megmutatjuk élőben.

A konzultáció és a demó mindig személyes, egyeztetett időpontban zajlik.

Frissítve: