[{"data":1,"prerenderedAt":720},["ShallowReactive",2],{"blog-knowledge-graph-extraction-llm-hu":3},{"slug":4,"published":5,"updated":6,"minutes":7,"category":8,"tags":9,"keywords":15,"about":26,"sources":36,"cover":73,"og":74,"expertise":75,"locales":76,"lang":79,"title":80,"description":81,"coverAlt":82,"metaTitle":83,"takeaways":84,"faq":90,"toc":106,"blocks":137,"others":465},"knowledge-graph-extraction-llm","2026-09-25","2026-10-12",8,"rag",[10,11,12,13,14],"Knowledge graphs","GraphRAG","Entity resolution","RAG","Neo4j",[16,17,18,19,20,21,22,23,24,25],"knowledge graph extraction with LLMs","GraphRAG indexing","entity resolution knowledge graph","triple extraction prompt","ontology design for LLM extraction","entity deduplication embeddings","knowledge graph provenance","incremental knowledge graph updates","GraphRAG cost","Neo4j SimpleKGPipeline",[27,30,33],{"name":28,"url":29},"Knowledge graph","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKnowledge_graph",{"name":31,"url":32},"Record linkage","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRecord_linkage",{"name":34,"url":35},"Ontology (information science)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOntology_%28information_science%29",[37,40,43,46,49,52,55,58,61,64,67,70],{"title":38,"url":39},"Microsoft GraphRAG: default dataflow","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fgraphrag\u002Fblob\u002Fmain\u002Fdocs\u002Findex\u002Fdefault_dataflow.md",{"title":41,"url":42},"Microsoft GraphRAG on GitHub","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fgraphrag",{"title":44,"url":45},"Microsoft Research: LazyGraphRAG (Nov 2024)","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Flazygraphrag-setting-a-new-standard-for-quality-and-cost\u002F",{"title":47,"url":48},"Microsoft Research: GraphRAG auto-tuning (Sep 2024)","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Fgraphrag-auto-tuning-provides-rapid-adaptation-to-new-domains\u002F",{"title":50,"url":51},"neo4j-graphrag-python on GitHub","https:\u002F\u002Fgithub.com\u002Fneo4j\u002Fneo4j-graphrag-python",{"title":53,"url":54},"Neo4j GraphRAG: knowledge graph builder guide","https:\u002F\u002Fneo4j.com\u002Fdocs\u002Fneo4j-graphrag-python\u002Fcurrent\u002Fuser_guide_kg_builder.html",{"title":56,"url":57},"Splink on GitHub","https:\u002F\u002Fgithub.com\u002Fmoj-analytical-services\u002Fsplink",{"title":59,"url":60},"Google LangExtract on GitHub","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Flangextract",{"title":62,"url":63},"KGGen (arXiv 2502.09956)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.09956",{"title":65,"url":66},"GraphEval (arXiv 2407.10793)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2407.10793",{"title":68,"url":69},"Zep temporal knowledge graph (arXiv 2501.13956)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2501.13956",{"title":71,"url":72},"Kùzu on GitHub","https:\u002F\u002Fgithub.com\u002Fkuzudb\u002Fkuzu","\u002Fimages\u002Fblog\u002Fknowledge-graph-extraction-llm\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fknowledge-graph-extraction-llm\u002Fog.jpg","ai-engineer",[77,78,79],"en","de","hu","Tudásgráf kinyerése LLM-ekkel: ontológia, entitásfeloldás, eredet","Tudásgráf építése LLM-ekkel: minimális ontológia, kinyerő promptok, entitásfeloldás, eredetkövetés, növekményes frissítés, kiértékelés és tárolás.","Csomópontok lépnek ki egy lapkötegből, és hálót alkotnak, ahol két kör eggyé olvad.","Tudásgráf kinyerése LLM-ekkel · Balázs Csorba",[85,86,87,88,89],"Gráfot építeni LLM-mel annyi, mint elemezni, darabolni, kinyerni, feloldani és betölteni; a minőséget az ontológia és az entitásfeloldás sokkal inkább meghatározza, mint a modell.","A séma határozza meg a gráf méretét: egy podcastkorpuszon a GraphRAG alapértelmezett promptja 1796 entitást adott, az automatikusan hangolt promptok 4896-ot.","A GraphRAG beépített feloldása pontos egyezés címre és típusra; a valódi korpuszokhoz fuzzy vagy beágyazásalapú egyeztetés kell, a bizonytalan párokra pedig LLM-es vagy emberi döntés.","Minden csomóponton és élen tartsa meg a forrás szövegegységet, hogy auditálni, törölni és csak a változottakat újra kinyerni tudjon, ne az egész gráfot kelljen újraépíteni.","A teljes GraphRAG-indexelés drága: a Microsoft szerint a LazyGraphRAG indexelése ennek 0,1 százaléka, ezért mielőtt fizet a kinyerésért, ellenőrizze, megéri-e a gráf.",[91,94,97,100,103],{"q":92,"a":93},"Hogyan építsek tudásgráfot LLM-mel?","Bontsa a dokumentumokat szövegegységekre, minden egységből nyerjen ki LLM-mel entitásokat és kapcsolatokat egy rögzített séma szerint, vonja össze és deduplikálja az entitásokat, majd töltse be az eredményt egy gráftárba úgy, hogy minden csomópont és él visszamutasson a forrásszövegére. A minőség nagy részét a séma és a deduplikálás dönti el.",{"q":95,"a":96},"Mi az entitásfeloldás egy tudásgráfban?","Annak eldöntése, mely kinyert említések ugyanarra a valós entitásra utalnak, például „Siemens AG”, „Siemens” és „a müncheni beszállító”. A lehetőségek a pontos névegyezéstől a fuzzy és beágyazásalapú hasonlóságon át a bizonytalan párok LLM-es vagy emberi elbírálásáig terjednek. Nélküle a gráf megtelik duplikált csomópontokkal.",{"q":98,"a":99},"Mennyibe kerül a GraphRAG-indexelés?","A Microsoft nem ad abszolút árat, csak relatív számokat: a LazyGraphRAG indexelése nagyjából annyiba kerül, mint a vektoros RAG, és a teljes GraphRAG-indexelés 0,1 százaléka. A teljes indexelés szövegegységenként több LLM-hívást végez, ezért mielőtt mindent indexelne, mérje meg a korpusza egy mintáján.",{"q":101,"a":102},"Hagyjam, hogy az LLM találja ki a sémát?","Kezdjen egy kicsi, rögzített ontológiával azokból az entitás- és kapcsolattípusokból, amelyekre ténylegesen lekérdez, és az LLM ezt töltse ki. A kötetlen kinyerés sok típust és közel azonos kapcsolatot hoz létre, amelyeket nehéz lekérdezni. A Neo4j folyamata egyszer levezethet egy sémát a szövegből, majd minden darabnál újrahasznosítja.",{"q":104,"a":105},"Hogyan tartsam naprakészen a tudásgráfot?","Minden csomóponton és élen tárolja a forrás szövegegységet és a dokumentumazonosítót, csak az új vagy módosult dokumentumokat nyerje ki, és az új entitásokat a meglévő gráfhoz képest oldja fel, ne építse újra az egészet. A Neo4j feloldói szűrőlekérdezést fogadnak, így az újrafuttatás csak a feloldatlan entitásokat érinti.",[107,110,113,116,119,122,125,128,131,134],{"id":108,"title":109},"what-it-takes-to-build-one","Mi kell a felépítéshez",{"id":111,"title":112},"start-with-a-minimal-ontology","Kezdjen minimális ontológiával",{"id":114,"title":115},"the-extraction-step-in-practice","A kinyerési lépés a gyakorlatban",{"id":117,"title":118},"entity-resolution-and-deduplication","Entitásfeloldás és deduplikálás",{"id":120,"title":121},"provenance-and-incremental-updates","Eredetkövetés és növekményes frissítés",{"id":123,"title":124},"cost","Mibe kerül",{"id":126,"title":127},"evaluating-extraction-quality","A kinyerés minőségének értékelése",{"id":129,"title":130},"storage-choices","Tárolási lehetőségek",{"id":132,"title":133},"a-build-checklist","Építési ellenőrzőlista",{"id":135,"title":136},"sources","Források",[138,147,161,164,172,178,184,187,188,195,214,215,220,232,235,237,238,246,257,260,271,272,275,291,294,295,302,306,307,317,320,323,324,389,396,399,400,419,426,427],{"type":139,"content":140},"paragraph",[141,142,146],"A ",{"tag":143,"children":144},"strong",[145],"tudásgráf kinyerése LLM-ekkel"," a strukturálatlan dokumentumokat olyan entitásokká és típusos kapcsolatokká alakítja, amelyeket egy gráflekérdezés vagy egy GraphRAG-rendszer használni tud. A kinyerő hívás a könnyebbik rész; bármely képes modell hihető hármasokat ad vissza. Hogy a gráf hasznos-e, azt minden más dönti el körülötte: egy lekérdezhetően kicsi séma, egy entitásfeloldás, amely összevonja a háromféleképpen leírt ugyanazon beszállítót, egy eredetkövetés, amely minden élt visszavezet egy mondatra, és egy költségmodell, amely kibír egy újbóli kinyerést.",{"type":139,"content":148},[149,150,155,156,160],"Ez a cikk az építési oldalról szól: minimális ontológia, a kinyerési lépés, entitásfeloldás, eredetkövetés és növekményes frissítés, kiértékelés és tárolás. Hogy egyáltalán gráf kell-e vektoros visszakeresés helyett, azt a ",{"tag":151,"to":152,"children":153},"link","\u002Fblog\u002Fgraphrag-knowledge-graph-rag",[154],"GraphRAG kontra vektoros RAG"," című cikk vitatja meg, a Microsoft eszközét pedig ",{"tag":151,"to":157,"children":158},"\u002Fblog\u002Fgraphrag",[159],"a GraphRAG-ismertető"," mutatja be végig. A verziók és számok 2026 októberi állapotot tükröznek.",{"type":162,"level":163,"id":108,"text":109},"heading",2,{"type":139,"content":165},[166,167,171],"Minden LLM-mel épített gráf ugyanazt a folyamatot követi: dokumentumok elemzése, szövegegységekre bontása, egységenként entitások és kapcsolatok kinyerése, a duplikátumok összevonása és feloldása, végül az eredmény betöltése. A Microsoft GraphRAG alapértelmezett adatfolyama jó referencia: 1200 tokenes szövegegységek, egységenkénti kinyerés, az azonos címmel és típussal rendelkező entitások összevonása, összefoglalt leírások, opcionális állításkinyerés, majd közösségfelismerés és jelentések (",{"tag":168,"href":39,"children":169},"a",[170],"GraphRAG adatfolyam","). Minden kinyert elem hivatkozik a szövegegységekre, így „visszavezeti az eredetet az eredeti forrásszöveghez”.",{"type":173,"src":174,"alt":175,"wide":176,"caption":177},"image","\u002Fimages\u002Fblog\u002Fknowledge-graph-extraction-llm\u002Fdiagram-4.webp","Tudásgráf-építési folyamat Öt lépés balról jobbra: a dokumentumokat eredetazonosítóval ellátott szövegegységekre bontja; egy LLM egységenként entitásokat és kapcsolatokat nyer ki egy rögzített séma szerint; a kinyert elemeket összevonja, leírásaikat összefoglalja; az entitásfeloldás egyezteti a duplikátumokat, előbb pontosan, aztán fuzzy vagy beágyazásalapú módon, a bizonytalan párokról LLM vagy ember dönt; végül a tisztított gráfot minden csomóponton és élen forrásazonosítóval tölti be.",true,"A minőség két ponton dől el: a sémánál a kinyerés előtt, és az entitásfeloldásnál a betöltés előtt.",{"type":139,"content":179},[180,181,183],"A minőség nagy részét két lépés dönti el: az ontológia, amely meghatározza, mit lehet kinyerni, és az entitásfeloldás, amely eldönti, hogy az eredmény egyetlen gráf lesz-e vagy közel azonos csomópontok halmaza. A kinyerő modell kevésbé számít, mint bármelyik. Maga a GraphRAG ma már nagyrészt karbantartási módban van: a README demonstrációként írja le, nem hivatalosan támogatott termékként, és figyelmeztet, hogy az indexelés drága lehet (",{"tag":168,"href":42,"children":182},[11],").",{"type":139,"content":185},[186],"Gráfot akkor érdemes építeni, ha a kérdések kapcsolatokról szólnak, nem szövegrészekről: mely beszállítók szállítanak egy adott szabvány szerint tanúsított alkatrészeket, mely szerződések hivatkoznak egy visszavont előírásra, mely üzemek használnak közös alkatrészt. A vektoros visszakeresés arra válaszol, hogy „keress ehhez hasonló szöveget”; a gráf arra, hogy „kövesd ezeket a kapcsolatokat”. Ha a felhasználók többnyire az első fajta kérdést teszik fel, a lenti kinyerési költség keveset hoz.",{"type":162,"level":163,"id":111,"text":112},{"type":139,"content":189},[190,191,194],"Kezdjen azzal a néhány entitás- és kapcsolattípussal, amelyre ténylegesen lekérdez, mert a séma határozza meg a gráf méretét és hasznosságát is. A Microsoft automatikus hangolásról szóló bejegyzése megmutatja, mennyire: ugyanazon a podcastkorpuszon, GPT-4-Turbóval a GraphRAG hírekre szabott alapértelmezett promptja 1796 entitást, 2851 kapcsolatot és 352 közösséget adott, a területre hangolt promptok viszont 4896-ot, 8210-et és 1027-et (",{"tag":168,"href":48,"children":192},[193],"automatikus hangolás","). A több nem automatikusan jobb; csak akkor jobb, ha a többlet entitásokra a kérdéseinek szüksége van.",{"type":139,"content":196},[197,198,202,203,206,207,210,211,213],"A Neo4j hivatalos GraphRAG-csomagja kifejezetté teszi a sémát: csomóponttípusok, kapcsolattípusok és megengedett minták, például ",{"tag":199,"children":200},"code",[201],"(\"Supplier\",\"SUPPLIES\",\"Product\")",". Az alapértelmezett ",{"tag":199,"children":204},[205],"schema=\"EXTRACTED\""," esetén egy LLM egyszer levezet egy sémát a szövegből, és minden darabnál újrahasznosítja; a ",{"tag":199,"children":208},[209],"schema=\"FREE\""," beállításnál egyáltalán nincs kötés (",{"tag":168,"href":54,"children":212},[14],"). Éles használathoz írja meg a sémát maga, tartsa verziókezelésben, és a változtatást kezelje migrációként. A Jira MCP-szerverem a másik oldalról ugyanezen az elven működik: egy kicsi, típusos, 20 eszközből álló felületet kapó modell abbahagyja a találgatást.",{"type":162,"level":163,"id":114,"text":115},{"type":139,"content":216},[217,218,183],"A kinyerési lépés szövegegységenként egy LLM-hívás, amely strukturált formában adja vissza az entitásokat és kapcsolatokat, néha további menetekkel kiegészítve, amelyek elkapják, amit az első kihagyott. Használjon strukturált kimenetet, ahol a szolgáltató támogatja: a Neo4j folyamata strukturált kimenetet kínáló modelleknél egy Pydantic gráfmodellhez ellenőrzi az eredményt, ahelyett hogy utólag javítaná a JSON-t, a gráfmetszője pedig eldobja a sémát sértő vagy tulajdonság nélküli csomópontokat és kapcsolatokat (",{"tag":168,"href":54,"children":219},[14],{"type":139,"content":221},[222,223,226,227,231],"A forráshoz kötés a másik védőháló. A Google LangExtract minden kinyerést a forrásbeli pontos karaktertartományához rendel, és ha a modell egy kinyerést nem talál meg a bemenetben, az nem kap karakterintervallumot, és ki kell szűrni (",{"tag":168,"href":60,"children":224},[225],"LangExtract","). Ez az egyetlen szabály eltünteti a kitalált kapcsolatok többségét. Ugyanez a minta érvényes a termékadatokra, ahol forrástartomány nélküli érték nem kerülhet a katalógusba, lásd ",{"tag":151,"to":228,"children":229},"\u002Fblog\u002Fllm-product-data-enrichment",[230],"termékadatok gazdagítása LLM-ekkel",".",{"type":139,"content":233},[234],"A darabméret többet számít, mint amilyennek látszik. A kisebb egységek hívásonként kevesebb olvasnivalót adnak a modellnek, és általában növelik az entitások recallját, de szétválasztják azokat a kapcsolatokat, amelyek két vége különböző bekezdésben van; a nagyobb egységek ezeket együtt tartják, és hívásonként többe kerülnek. A GraphRAG 1200 tokenes alapértéke észszerű kezdés; csak azután módosítsa, hogy a dokumentumai egy mintáján megmérte, hány kapcsolat lépi át az egységhatárokat.",{"type":199,"code":236},"# Sketch with neo4j-graphrag: fixed schema, extraction, then resolution limited to new entities\nfrom neo4j_graphrag.experimental.pipeline.kg_builder import SimpleKGPipeline\nfrom neo4j_graphrag.experimental.components.resolver import SinglePropertyExactMatchResolver\n\nschema = {\n    \"node_types\": [\"Supplier\", \"Product\", \"Standard\", \"Plant\"],\n    \"relationship_types\": [\"SUPPLIES\", \"COMPLIES_WITH\", \"PRODUCED_AT\"],\n    \"patterns\": [(\"Supplier\", \"SUPPLIES\", \"Product\"),\n                 (\"Product\", \"COMPLIES_WITH\", \"Standard\"),\n                 (\"Product\", \"PRODUCED_AT\", \"Plant\")],\n}\npipeline = SimpleKGPipeline(llm=llm, driver=driver, embedder=embedder, schema=schema, from_pdf=False)\nawait pipeline.run_async(text=document_text)            # chunks keep their ids in the lexical graph\n\nresolver = SinglePropertyExactMatchResolver(driver, filter_query=\"WHERE NOT entity:Resolved\")\nawait resolver.run()                                    # only touches entities from this run",{"type":162,"level":163,"id":117,"text":118},{"type":139,"content":239},[240,241,243,244,183],"Az entitásfeloldás dönti el, hogy a „Siemens AG”, a „Siemens” és „a müncheni beszállító” egy csomópont lesz-e vagy három. A GraphRAG beépített logikája csak az azonos címmel és típussal rendelkező entitásokat vonja össze (",{"tag":168,"href":39,"children":242},[170],"), ami egy bemutatóhoz elég, valódi korpuszokhoz kevés. A Neo4j csomagja háromféle feloldót kínál: pontos egyezést egy tulajdonságon, szemantikus egyezést spaCy-beágyazásokkal és koszinusz-hasonlósággal, valamint fuzzy egyezést RapidFuzz-zal, amely gyorsabb, de kevésbé pontos (",{"tag":168,"href":54,"children":245},[14],{"type":139,"content":247},[248,249,252,253,231],"Leginkább a rétegzett megközelítés működik: a pontos egyezéseket vonja össze automatikusan, a küszöb fölötti fuzzy és beágyazásalapú egyezéseket javasolja, a bizonytalan középsávot pedig mindkét jelölt kontextusával küldje egy LLM-nek vagy egy embernek. Több strukturált mezővel rendelkező entitásoknál a Splink valószínűségi rekordösszekapcsolása kiforrott, és nagyjából egymillió rekordot kapcsol össze egy laptopon körülbelül egy perc alatt, de a README szerint nem egyetlen, „szózsákot” tartalmazó oszlopra tervezték, így a csak névvel rendelkező entitáscsomópontok kívül esnek az erősségén (",{"tag":168,"href":57,"children":250},[251],"Splink","). Ugyanez az egyeztetési probléma a termékkatalógusokban is felmerül, lásd ",{"tag":151,"to":254,"children":255},"\u002Fblog\u002Fpim-data-quality-llm",[256],"PIM-adatminőség LLM-ekkel",{"type":139,"content":258},[259],"A blokkolás megfizethetővé teszi a feloldást. Minden entitás összevetése minden mással négyzetesen nő, ezért előbb csoportosítsa a jelölteket egy olcsó kulcs szerint, például entitástípus és normalizált névelőtag alapján, vagy a beágyazási tér legközelebbi szomszédai szerint, és csak ezeken a csoportokon belül hasonlítson. A küszöböt ezután címkézett párminta alapján határozza meg, ne megérzésből, mert a helyes vágás más cégnevekre, termékkódokra és személyekre.",{"type":261,"variant":262,"title":263,"body":264},"callout","warn","A feloldók lecserélik a csomópontokat",[265],[266,267,270],"A Neo4j feloldói lecserélik a folyamat által írt csomópontokat, vagyis a feloldás nem csak olvasó lépés. Futtassa megismételhető módon: jelölje meg a feloldott entitásokat, adjon meg egy szűrőlekérdezést, például ",{"tag":199,"children":268},[269],"WHERE NOT entity:Resolved",", hogy az újrafuttatás csak az újakat érintse, és őrizze meg az eredeti említéseket a szövegegységeikkel, hogy egy hibás összevonás visszavonható legyen.",{"type":162,"level":163,"id":120,"text":121},{"type":139,"content":273},[274],"Az eredetkövetés az a gerinc, amely karbantarthatóvá teszi a gráfot. Minden csomóponton és élen tartsa meg a szövegegység- és dokumentumazonosítót, hogy egy válasz hivatkozhasson a mondatára, egy törölt dokumentum pontosan a saját hozzájárulásait távolíthassa el, egy módosult dokumentum pedig a többi érintése nélkül legyen újra kinyerhető. A GraphRAG szövegegységei és a Neo4j lexikai gráfja, amely a darabokat a belőlük kinyert entitásokhoz köti, egyaránt ezt a szerkezetet adják.",{"type":139,"content":276},[277,278,282,283,286,287,231],"A GraphRAG jelenlegi dokumentációjában nem találtam dokumentált növekményes indexelési módot; ami dokumentált, az a saját gráf behozatala és csak a közösségi munkafolyamatok futtatása rajta (",{"tag":168,"href":279,"children":280},"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fgraphrag\u002Fblob\u002Fmain\u002Fdocs\u002Findex\u002Fbyog.md",[281],"BYOG","). A gyakorlatban a növekményes működés azt jelenti, hogy csak az új vagy módosult dokumentumokat nyeri ki, és az entitásaikat a meglévő gráfhoz képest oldja fel. Az időben követett tényeket tároló gráfok élenként érvényességi ablakot adnak hozzá; a Zep Graphiti motorja így tartja meg a történeti kapcsolatokat ágensmemóriához (",{"tag":168,"href":69,"children":284},[285],"Zep-tanulmány","), lásd ",{"tag":151,"to":288,"children":289},"\u002Fblog\u002Fzep",[290],"a Zep-ismertetőt",{"type":139,"content":292},[293],"Az újbóli kinyerés az a költség, amellyel számolni kell. A séma vagy a kinyerő prompt módosítása minden, a régi alatt keletkezett hármast érvénytelenít, ezért a promptokat kezelje kódként, minden kinyert elemen rögzítse a promptverziót, és a teljes újrakinyerést migrációként tervezze, ne meglepetésként.",{"type":162,"level":163,"id":123,"text":124},{"type":139,"content":296},[297,298,301],"A Microsoft nem közöl dokumentumonkénti abszolút árat a GraphRAG-hez, csak relatív számokat, és ezek nagyok. A LazyGraphRAG indexelése nagyjából annyiba kerül, mint a vektoros RAG, és a teljes GraphRAG-indexelés 0,1 százaléka, a LazyGraphRAG-lekérdezések pedig hasonló minőség mellett több mint 700-szor olcsóbbak a GraphRAG globális keresésénél (",{"tag":168,"href":45,"children":299},[300],"LazyGraphRAG","). A gyakorlati szabály: nyerjen ki egy reprezentatív mintát, mérje meg maga a dokumentumonkénti tokenszámot, és szorozzon, mielőtt a teljes korpuszra vállalkozik.",{"type":173,"src":303,"alt":304,"wide":176,"caption":305},"\u002Fimages\u002Fblog\u002Fknowledge-graph-extraction-llm\u002Fdiagram-26.webp","A gráf építésének és lekérdezésének relatív költsége Négy vízszintes sáv a LazyGraphRAG indexeléséhez viszonyítva. A vektoros RAG indexelése nagyjából annyiba kerül, mint a LazyGraphRAG-é, ez egy egység. A teljes GraphRAG-indexelés kb. ezerszer ennyibe, mivel a LazyGraphRAG ennek 0,1 százaléka. Lekérdezési oldalon a GraphRAG globális keresése több mint 700-szor annyiba kerül, mint egy hasonló minőségű LazyGraphRAG-lekérdezés. Egy megjegyzés jelzi, hogy prompt- vagy sémaváltáskor a kinyerés költsége újra felmerül.","Relatív költségek a Microsoft LazyGraphRAG-bejegyzéséből, logaritmikus skálán; dokumentumonkénti abszolút árat nem közöltek.",{"type":162,"level":163,"id":126,"text":127},{"type":139,"content":308},[309,310,313,314,183],"A kinyerés minősége nyitott kutatási kérdés, nem megoldott. A KGGen szerzői megjegyzik, hogy az automatikusan kinyert gráfok minősége kérdéses, és kevés az összevetésre alkalmas, ember által készített gráf; entitásklaszterezéssel csökkentik a ritkaságot, és közzéteszik a szövegből gráfba kinyerést mérő MINE benchmarkot (",{"tag":168,"href":63,"children":311},[312],"KGGen","). A GraphEval a tartalmat hármasokként ábrázolja, hogy hármasszinten találja meg a valószínű hallucinációkat (",{"tag":168,"href":66,"children":315},[316],"GraphEval",{"type":139,"content":318},[319],"A saját gráfhoz egyszerű protokoll működik: futásonként vegyen mintát 50 hármasból, egy ember jelölje mindegyiket helyesnek, hibásnak vagy a forrástartománya által alá nem támasztottnak, és kövesse ezt a pontosságot a prompt- és sémaverziókon át. Egy LLM-bíró előszűrhet, de előbb kalibrálja az emberi címkékhez. Futásonként naplózza az entitások, kapcsolatok, összevonások és az elutasított, forrás nélküli hármasok számát, valamint a promptverziót, hogy egy hirtelen ugrás látható legyen.",{"type":139,"content":321},[322],"A gráfot azokon a kérdéseken is értékelje, amelyek miatt létezik. Írjon tíz-húsz ismert válaszú kapcsolati kérdést, minden újraépítés után futtassa le őket a gráflekérdezésein vagy a GraphRAG-keresésen, és vesse össze az eredményt. A hármaspontosság megmutatja, helyes-e a kinyerés; a kérdéspontosság pedig azt, hogy a séma és a feloldás olyan gráfot hozott-e létre, amely meg tudja válaszolni, amire építette.",{"type":162,"level":163,"id":129,"text":130},{"type":325,"head":326,"rows":337},"table",[327,329,331,333,335],[328],"Komponens",[330],"Szerep",[332],"Licenc",[334],"Eredet",[336],"Entitásfeloldás",[338,349,360,369,378],[339,341,343,345,347],[340],"Microsoft GraphRAG 3.3",[342],"teljes folyamat, karbantartási mód",[344],"MIT",[346],"szövegegységek",[348],"pontos cím és típus",[350,352,354,356,358],[351],"neo4j-graphrag",[353],"moduláris gráfépítő",[355],"Apache-2.0",[357],"lexikai gráf",[359],"pontos, spaCy szemantikus, fuzzy",[361,362,364,365,367],[225],[363],"forráshoz kötött kinyerés",[355],[366],"karaktertartományok",[368],"nincs beépítve",[370,371,373,374,376],[251],[372],"rekordösszekapcsolás",[344],[375],"n. a.",[377],"valószínűségi, több mező",[379,381,383,385,387],[380],"Neo4j, Kùzu, NetworkX",[382],"gráftárolás",[384],"változó; a Kùzu archivált",[386],"tulajdonságként",[388],"a saját folyamaton át",{"type":139,"content":390},[391,392,395],"Tárolásra a Neo4j a szokásos szerveroldali választás, és a hivatalos GraphRAG-csomag is ezt célozza. A Kùzut, egy MIT licencű beágyazott gráfadatbázist, amely helyi folyamatokhoz vonzó volt, archiválták, a README szerint a csapat valami újon dolgozik (",{"tag":168,"href":72,"children":393},[394],"Kùzu","), ezért ne kezdjen rá új munkát. Kis gráfokhoz vagy kísérletekhez elég a memóriában futó NetworkX és lemezen Parquet-fájlok, maga a GraphRAG is Parquet-táblákat ír, amelyek bármelyikbe betölthetők.",{"type":139,"content":397},[398],"Bármelyik tárat választja, a kinyert entitásokat és kapcsolatokat mellette egyszerű fájlokként is tartsa meg, promptverzióval és forrásazonosítókkal. Ez az export teszi lehetővé, hogy a kinyerés újbóli kifizetése nélkül újraépítse a tárat, motort váltson vagy újrafuttassa a feloldást.",{"type":162,"level":163,"id":132,"text":133},{"type":401,"ordered":176,"items":402},"list",[403,405,407,409,411,413,415,417],[404],"Írjon minimális sémát a feltenni kívánt kérdésekből, és verziózza.",[406],"Kezelje a kinyerő promptokat kódként, és minden elemen rögzítse a verziót.",[408],"Használjon strukturált kimenetet, és dobja el a forrástartomány nélküli hármasokat.",[410],"Rétegesen oldja fel az entitásokat, és őrizze meg az eredeti említéseket.",[412],"Minden csomóponton és élen tartsa meg a szövegegység- és dokumentumazonosítót.",[414],"Futásonként mérje a pontosságot 50 mintavételezett hármason.",[416],"A teljes korpusz indexelése előtt árazza be a kinyerést egy mintán.",[418],"Csak az új vagy módosult dokumentumokat nyerje ki, és a meglévő gráfhoz képest oldja fel őket.",{"type":139,"content":420},[421,422,231],"Ha dokumentumokból épít tudásgráfot, és azt szeretné, hogy az első bemutató után is tiszta maradjon, nézze meg a ",{"tag":151,"to":423,"children":424},"\u002Fexpertise\u002Fai-engineer",[425],"MI-mérnöki munkámat",{"type":162,"level":163,"id":135,"text":136},{"type":401,"ordered":176,"items":428},[429,432,435,438,441,444,447,450,453,456,459,462],[430],{"tag":168,"href":39,"children":431},[38],[433],{"tag":168,"href":42,"children":434},[41],[436],{"tag":168,"href":45,"children":437},[44],[439],{"tag":168,"href":48,"children":440},[47],[442],{"tag":168,"href":51,"children":443},[50],[445],{"tag":168,"href":54,"children":446},[53],[448],{"tag":168,"href":57,"children":449},[56],[451],{"tag":168,"href":60,"children":452},[59],[454],{"tag":168,"href":63,"children":455},[62],[457],{"tag":168,"href":66,"children":458},[65],[460],{"tag":168,"href":69,"children":461},[68],[463],{"tag":168,"href":72,"children":464},[71],[466,541,601,659],{"slug":467,"published":468,"minutes":469,"category":8,"tags":470,"keywords":475,"about":488,"sources":498,"cover":535,"og":536,"expertise":75,"locales":537,"lang":79,"title":538,"description":539,"coverAlt":540},"embedding-model-selection-2026","2026-10-17",9,[471,13,472,473,474],"Embeddings","MTEB","Vector search","Model selection",[476,477,478,479,480,481,482,483,484,485,486,487],"best embedding model 2026","how to choose an embedding model","embedding model comparison","MTEB leaderboard explained","RTEB benchmark","open source embedding model","multilingual embedding model","voyage-4 vs openai embeddings","Qwen3-Embedding","EmbeddingGemma","embedding model for RAG","switching embedding models re-embed",[489,492,495],{"name":490,"url":491},"Word embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWord_embedding",{"name":493,"url":494},"Information retrieval","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInformation_retrieval",{"name":496,"url":497},"Discounted cumulative gain","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDiscounted_cumulative_gain",[499,502,505,508,511,514,517,520,523,526,529,532],{"title":500,"url":501},"Enevoldsen et al.: MMTEB, Massive Multilingual Text Embedding Benchmark (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.13595",{"title":503,"url":504},"Hugging Face: Introducing RTEB, a new standard for retrieval evaluation (Oct 2025)","https:\u002F\u002Fhuggingface.co\u002Fblog\u002Frteb",{"title":506,"url":507},"OpenAI: Vector embeddings guide","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fembeddings",{"title":509,"url":510},"OpenAI: API pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fpricing",{"title":512,"url":513},"Voyage AI: The Voyage 4 model family, shared embedding space with MoE architecture (Jan 2026)","https:\u002F\u002Fblog.voyageai.com\u002F2026\u002F01\u002F15\u002Fvoyage-4\u002F",{"title":515,"url":516},"Voyage AI: Text embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fembeddings",{"title":518,"url":519},"Voyage AI: Pricing","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fpricing",{"title":521,"url":522},"Google: Gemini API embeddings documentation","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fembeddings",{"title":524,"url":525},"Google: Gemini API pricing","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing",{"title":527,"url":528},"Cohere: Embed models documentation","https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Fcohere-embed",{"title":530,"url":531},"Qwen: Qwen3-Embedding-8B model card","https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen3-Embedding-8B",{"title":533,"url":534},"Google Developers Blog: Introducing EmbeddingGemma (Sep 2025)","https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fintroducing-embeddinggemma\u002F","\u002Fimages\u002Fblog\u002Fembedding-model-selection-2026\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fembedding-model-selection-2026\u002Fog.jpg",[77,78,79],"Embedding-modell választása 2026-ban: ranglisták, költségek és összehasonlító teszt a saját adatokon","Hogyan válassz embedding-modellt RAG-hoz 2026-ban: mit mond az MTEB és az RTEB, API vagy nyílt súlyok, árak, dimenziók és egy egyhetes összehasonlító teszt.","Három oszlop egymásra rakott kockákból, középen a legmagasabb, mindegyik rövid sávval mérve.",{"slug":542,"published":468,"minutes":543,"category":8,"tags":544,"keywords":548,"about":560,"sources":570,"cover":595,"og":596,"expertise":75,"locales":597,"lang":79,"title":598,"description":599,"coverAlt":600},"contextual-retrieval-late-chunking",10,[13,545,471,546,547],"Chunking","Contextual retrieval","Late chunking",[549,550,551,552,553,554,555,556,557,558,559],"contextual retrieval","anthropic contextual retrieval","late chunking","contextual chunk embeddings","contextual embeddings rag","contextual bm25","chunk context rag","voyage-context-3","voyage-context-4","late chunking vs contextual retrieval","rag chunking context loss",[561,564,567],{"name":562,"url":563},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",{"name":565,"url":566},"Okapi BM25","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOkapi_BM25",{"name":568,"url":569},"Sentence embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSentence_embedding",[571,574,577,580,583,586,589,592],{"title":572,"url":573},"Anthropic: Introducing Contextual Retrieval (Sep 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fcontextual-retrieval",{"title":575,"url":576},"Günther et al.: Late Chunking, Contextual Chunk Embeddings Using Long-Context Embedding Models (2024, rev. 2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2409.04701",{"title":578,"url":579},"Jina AI: Late Chunking in Long-Context Embedding Models (Aug 2024)","https:\u002F\u002Fjina.ai\u002Fnews\u002Flate-chunking-in-long-context-embedding-models\u002F",{"title":581,"url":582},"Voyage AI: Introducing voyage-context-3 (Jul 2025)","https:\u002F\u002Fblog.voyageai.com\u002F2025\u002F07\u002F23\u002Fvoyage-context-3\u002F",{"title":584,"url":585},"Voyage AI: voyage-context-4 (Jun 2026)","https:\u002F\u002Fblog.voyageai.com\u002F2026\u002F06\u002F29\u002Fvoyage-context-4\u002F",{"title":587,"url":588},"Voyage AI: Contextualized chunk embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fcontextualized-chunk-embeddings",{"title":590,"url":591},"Anthropic: Claude API pricing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fpricing",{"title":593,"url":594},"Qu, Tu and Bao: Is Semantic Chunking Worth the Computational Cost? (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.13070","\u002Fimages\u002Fblog\u002Fcontextual-retrieval-late-chunking\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcontextual-retrieval-late-chunking\u002Fog.jpg",[77,78,79],"Kontextuális visszakeresés és késleltetett chunkolás: a RAG-chunkok visszakapják a kontextusukat","A chunkok elveszítik a dokumentumukat. Hogyan javít ezen a contextual retrieval, a late chunking és a kontextusos embedding, mennyibe kerül, és mikor hagyd ki.","Négy szabad négyzet, alul széles kapocs fogja össze, mindegyik felfelé egy nagy laphoz kapcsolódik.",{"slug":602,"published":468,"minutes":469,"category":8,"tags":603,"keywords":607,"about":620,"sources":628,"cover":653,"og":654,"expertise":75,"locales":655,"lang":79,"title":656,"description":657,"coverAlt":658},"rag-access-control-permissions",[13,604,605,606,473],"Access control","Security","Multi-tenancy",[608,609,610,611,612,613,614,615,616,617,618,619],"rag access control","permission aware rag","document level security rag","rag multi tenancy","vector database access control","pgvector row level security","security trimming azure ai search","openfga rag authorization","qdrant multitenancy","pinecone namespaces multitenancy","owasp llm08 vector and embedding weaknesses","rag data leakage",[621,624,627],{"name":622,"url":623},"Access-control list","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAccess-control_list",{"name":625,"url":626},"Multitenancy","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMultitenancy",{"name":562,"url":563},[629,632,635,638,641,644,647,650],{"title":630,"url":631},"OWASP GenAI Security Project: LLM08:2025 Vector and Embedding Weaknesses","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm082025-vector-and-embedding-weaknesses\u002F",{"title":633,"url":634},"PostgreSQL documentation: Row Security Policies","https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fddl-rowsecurity.html",{"title":636,"url":637},"pgvector README: filtering and iterative index scans","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector",{"title":639,"url":640},"Qdrant: Multitenancy and partitions guide","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fguides\u002Fmultiple-partitions\u002F",{"title":642,"url":643},"Pinecone: Implement multitenancy using namespaces","https:\u002F\u002Fdocs.pinecone.io\u002Fguides\u002Findex-data\u002Fimplement-multitenancy",{"title":645,"url":646},"Microsoft Learn: Document-level access control in Azure AI Search","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fsearch\u002Fsearch-document-level-access-overview",{"title":648,"url":649},"OpenFGA: RAG authorization use case","https:\u002F\u002Fopenfga.dev\u002Fdocs\u002Fuse-cases\u002Frag-authorization",{"title":651,"url":652},"Morris et al.: Text Embeddings Reveal (Almost) As Much As Text (EMNLP 2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.06816","\u002Fimages\u002Fblog\u002Frag-access-control-permissions\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-access-control-permissions\u002Fog.jpg",[77,78,79],"Hozzáférés-kezelés RAG-hoz: jogosultságtudatos visszakeresés dokumentumszivárgás nélkül","Hogyan szivárogtatnak dokumentumot a RAG-asszisztensek, és hogyan állítsd meg: ACL minden chunkon, előszűrés, sorszintű biztonság pgvectorban, jogszinkron.","Hét kártya sorban, haton lakat jelvény, a csupasz kártya nyilat küld kifelé.",{"slug":660,"published":468,"minutes":543,"category":8,"tags":661,"keywords":666,"about":678,"sources":686,"cover":713,"og":714,"expertise":715,"locales":716,"lang":79,"title":717,"description":718,"coverAlt":719},"rag-product-catalog-pim-data",[13,662,663,664,665],"PIM","Product data","B2B e-commerce","Metadata filtering",[667,668,669,670,671,672,673,674,675,676,677],"rag product catalog","rag pim data","llm product data","product catalog chatbot","akeneo rag","pimcore ai search","rag structured data","metadata filtering rag","product attributes embeddings","b2b product assistant","etim classification ai",[679,682,683],{"name":680,"url":681},"Product information management","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProduct_information_management",{"name":562,"url":563},{"name":684,"url":685},"ETIM (standard)","https:\u002F\u002Fwww.etim-international.com\u002Fclassification\u002F",[687,690,693,696,698,701,704,707,710],{"title":688,"url":689},"Akeneo API: Products, product values, metric values and product models","https:\u002F\u002Fapi.akeneo.com\u002Fconcepts\u002Fproducts.html",{"title":691,"url":692},"Akeneo Help Center: What about products with variants?","https:\u002F\u002Fhelp.akeneo.com\u002Fserenity-take-the-power-over-your-products\u002Fserenity-what-about-products-with-variants",{"title":694,"url":695},"Pimcore documentation: Classification Store","https:\u002F\u002Fdocs.pimcore.com\u002Fplatform\u002FPimcore\u002FObjects\u002FObject_Classes\u002FData_Types\u002FClassification_Store\u002F",{"title":697,"url":685},"ETIM International: Classification",{"title":699,"url":700},"ETIM International: ETIM releases and the IXF format","https:\u002F\u002Fetim-international.com\u002F?p=754",{"title":702,"url":703},"Reddy et al.: Shopping Queries Dataset, a large-scale ESCI benchmark for improving product search (2022)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.06588",{"title":705,"url":706},"Amazon Science: esci-data repository","https:\u002F\u002Fgithub.com\u002Famazon-science\u002Fesci-data",{"title":708,"url":709},"Qdrant documentation: Filtering","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fconcepts\u002Ffiltering\u002F",{"title":711,"url":712},"Sui et al.: Table Meets LLM, can large language models understand structured table data? (WSDM 2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.13062","\u002Fimages\u002Fblog\u002Frag-product-catalog-pim-data\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-product-catalog-pim-data\u002Fog.jpg","b2b-ecommerce-developer",[77,78,79],"RAG termékkatalógusra: PIM-adatokból megbízható válaszok","A termékadat strukturált, ezért a PDF-szerű chunkolás itt elbukik. Hogyan sorosítsd a PIM-attribútumokat, és hogyan küldd a specifikációs kérdéseket szűrőkhöz.","Kilenc négyzetből álló keret apró jelekkel, alatta tölcsér egyetlen kártyához.",1792342717173]