Rendszeráttekintés és Történeti Korpusz
Az Anjou Regesta Platform a késő középkori magyar történelem (1301–1382: I. Károly Róbert és I. Nagy Lajos uralkodása) okleveles regesztáinak feldolgozására, szemantikus keresésére és AI-alapú kutatására létrehozott tudományos infrastruktúra.
Mi az a regeszta?
A regeszta (latinul: regestum) egy oklevél tartalmi kivonata, amely rögzíti az oklevél keltét (év, hó, nap, kiadási helyszín), a kiadót, a címzettet, a jogügylet lényegét (adomány, zálog, pereskedés, privilégium), valamint a hitelesítő és pecsételő személyeket.
Miért volt szükség GraphRAG-ra és MCP-re?
- Nyelvi heterogenitás: A latin és középkori archaikus magyar kifejezések, ragok és elnevezések (pl. castrum, várispánság, homagium) miatt a hagyományos kulcsszavas keresés sok releváns forrást figyelmen kívül hagy.
- Bonyolult kapcsolatháló: Nemesi családok rokonsága, familiárisi kötelékek és birtokcsere-ügyletek relációs táblákban nehezen átláthatók, de tudásgráfban hatékonyan bejárhatók.
- Hallucinációmentes AI-kutatás: A Model Context Protocol (MCP) garantálja, hogy az LLM-ek (Claude, Gemini) közvetlenül a hitelesített forrásszövegekből idézzenek pontos évszámokkal és forrásjelöléssel.
Rendszerarchitektúra és Adatfolyam
A rendszer egymással lazán csatolt, konténerizált mikroszolgáltatásokból áll, melyeket Docker Compose és Traefik fordított proxy fog össze központi SSL titkosítással:
| Szolgáltatás | Technológia | Feladat | Belső / Külső Port |
|---|---|---|---|
| PostgreSQL 18 | postgres:18-bookworm | Regeszták forrásadatai és Keycloak belső DB | 5432 (belső) |
| Neo4j Enterprise | neo4j:latest (APOC) | Dokumentumgráf, vektorindex és Cypher | 7474 (HTTP) / 7687 (Bolt) |
| Ollama | nomic-embed-text | 768 dimenziós szövegbeágyazás | 61000 |
| FastMCP Szerver | Python 3.11 / Starlette | Kereső eszközök SSE protokollal és Keycloak middleware-rel | 8000 |
| Keycloak IAM | quay.io/keycloak:24.0.5 | Identitáskezelés, OAuth2/OIDC, RBAC | 8080 |
| Web Portál | Python 3.12 / FastAPI | Főoldal, profil, kézikönyv és élő playground | 8080 |
Smart Chunking és ETL Munkafolyamat
Az n8n munkafolyamat automatikusan beolvassa a PostgreSQL rekordokat 10-es kötegekben (batch), elvégzi az okos mondat- és szóhatár-tudatos darabolást (Smart Chunking), meghívja az Ollama beágyazó szervert a 768 dimenziós vektorokért, és elmenti a csomópontokat a Neo4j gráfba a megfelelő relációkkal.
Adatmodell és Gráfstruktúra
A Neo4j adatbázisban felépített gráfstruktúra a dokumentum-szintű regesztákat és az azokból kinyert chunkokat hierachikusan rendszerezi:
- •
uuid: Egyedi oklevél azonosító - •
pub_year: Kiadás éve (pl. 1323) - •
issue: Kiadás helye (pl. Temesvár) - •
text: A regeszta teljes forrásszövege
- •
text: Szóhatár-tudatos szövegrészlet - •
embedding: 768 elemű lebegőpontos vektor - • Reláció:
(:ProcessedRegestum)-[:HAS_CHUNK]->(:Chunk)
Keresési Kézikönyv és Minták
A platform két független, egymást kiegészítő keresési módot biztosít a kutatóknak:
A) Full-Text / Lucene Keresés (search_regestum_text)
A Neo4j beépített Lucene indexén fut. Támogatja a speciális szintaxisokat:
B) Szemantikus Vektoros Keresés (search_regestum_vector)
A természetes nyelvű kifejezést az Ollama azonnal 768 dimenziós térbe ágyazza, és a koszinusz hasonlóság alapján megkeresi a legközelebbi chunkokat.
"birtokadományozás háborús érdemekért és hűtlenség miatt elkobzott javak"
Akkor is megtalálja a rozgonyi vagy nógrádi adományleveleket, ha a "háborús érdem" szókapcsolat nem szó szerint így szerepel bennük!
Keycloak Adminisztráció és Szerepkörök
A hitelesítést a központi Keycloak 24 IAM szerver végzi a regesta realm alatt:
Jogosult a regeszta szöveges és szemantikus keresőeszközeinek futtatására az MCP szerveren és ezen a portálon.
Teljes hozzáférés a regesztákhoz, Neo4j sémalekérdezéshez, Cypher futtatáshoz és a Keycloak Admin felülethez.
Új Felhasználó Létrehozása az Adminisztrátori Konzolban
- Nyissa meg a Keycloak Admin Konzolt.
- Válassza ki a bal felső sarokban a regesta realmet.
- A bal menüben kattintson a Users ➔ Create new user gombra.
- Töltse ki az adatokat (Username, Email, First name, Last name, Email Verified = Yes).
- A Credentials fülön állítson be jelszót (Temporary kapcsolót kapcsolja ki).
- A Role mapping fülön rendelje hozzá a user szerepkört.
MCP Kliensek Csatlakoztatása
Az MCP (Model Context Protocol) szabványos SSE csatornán kommunikál. A csatlakozáshoz az mcp-remote segédprogram használható:
Gyakran Ismételt Kérdések (GYIK)
Mi a teendő, ha HTTP 403 Forbidden hibát kapok az MCP-től?
A felhasználói fiókhoz nincs hozzárendelve a user vagy admin szerepkör. Kérje meg a rendszergazdát, hogy a Keycloak Admin felületen adja hozzá a szerepkört!
Hogyan tesztelhetem a rendszert helyi gépen?
Használhatja a fenti "Demó belépés" lehetőséget, amellyel Keycloak kapcsolat nélkül is kipróbálhatja a portált és a szimulált regeszta keresési találatokat.
Milyen időközönként frissül a Neo4j gráf?
Az n8n adatcsatorna időzített crontabbal és kézi eseményvezérelten is indítható, mindig csak a frissen feltöltött regesztákat dolgozza fel inkrementálisan.