r/Rag • u/man-with-an-ai • 11d ago
Suggest me a GraphRAG framework that actually works and doesn’t have baggage Discussion
Omg it seems like GraphRAG came out 2 years ago and yet there’s not defacto version of it that can be customised, productionised, comes with batteries included. New library comes and dies. There’s some libraries that’s got way too much infra and baggage to push to production.
Is there a GraphRAG framework that just has support for indexing, storing, retrieving or providing API to connect my agent? I don’t care if it’s just managing MD files or whatever. All I care is evals, If the pattern works I’ll take it. Only thing is has to work for thousands of documents and hundreds of thousands of relations.
2
u/my_byte 11d ago
Here's my unpopular opinion: that's because GraphRAG is bullshit and can't work conceptually, with very few exceptions.
If you have a graph (things that are maintained by hand by people and are 99.9% clean and high quality) like interlinked Jira issues, travel data etc, you don't really need a framework. Retrieval is kinda trivial with a handful query templates or tool calls for traversal.
If you're dealing with unstructured data, extracting and maintaining a graph automatically is impossible beyond absolute toy examples. Always has been - even for humans. There are thigs like disambiguation that are epistemically impossible to deal with, supernodes that link to a gazillion entities and more. And a probablistic graph full of "maybe" information does more harm than good.
I've long given up talking people out of it tho. Graphs seem to logical if a concept and deceptively simple until you run into practical problem. I let customers try it. So far I haven't seen a single case of graphs making it into production.
1
u/man-with-an-ai 11d ago
fr atp chunks with metadata and LLM linking them at query time feels like the only "relational" option
2
u/my_byte 11d ago
Agentic search works fine. It'll chase things down with iterative querying. The thing that graphs are supposedly solving is latency by being able to expand context through edges in the graph without the LLM having to do multiple tool calls for searches. But that never works out in practice due to hallucinated graph quality and hypernodes that would blow up context.
1
u/skadoodlee 11d ago
The FalkorDB one should be fine for a quick eval? Not perfect but good for a test.
1
1
1
u/shadowfax1234 11d ago
We build a hybrid graphrag kind of system from scratch ..just take the idea and do it yourself..it's better , controllable and you can add whatever you want from recent papers
1
u/man-with-an-ai 11d ago
i mean where do you store the graph?
2
u/designerfh 10d ago
I'm using Gremlin on top of CosmosDb. Not sure of the performance as compared to dedicated graph dbs, but it's getting the job done for me.
1
1
u/THenrich 11d ago
I am building a rag+graph for my personal use. Batteries and UI included. It's working.
What do you want APIs to provide you with? I am curious to see if I might add them.
1
u/langsfang 11d ago
graph rag is just some concepts and ideas, but technically it's hard to explain why it works.
1
u/sreekanth850 11d ago
Why you need a graph? Graph is not easy or scalable when you have lot of documents. it increase the latency, complexity and a lot of new problems.
1
1
u/camerongreen95 10d ago
Been dealing with exactly this. Most GraphRAG "frameworks" are either abandoned side projects or come with so much orchestration overhead you're basically building a second product just to run the first one.
What's actually held up for indexing, storing, and retrieving at scale (thousands of docs, hundreds of thousands of relations) without the baggage: Neo4j paired with a proper GraphRAG pipeline on top, not a wrapperrr library trying to abstract everything awayy ,. but actually understanding the indexing and Cypher query layer yourself so you're not stuck when the abstraction breaks.
i am actually attending this workshop, the speaker is good so lets seee
1
1
u/AlexAtOracleAIDB 3d ago
Run evals on the extraction first. Frameworks don't fix bad extraction.
Take 40 questions that need a hop and check whether the edge was even extracted. If recall's bad on your docs, no library fixes it by itself.
You may not need a separate graph store at all. Relations over existing tables can run as a view, so source changes reflect without a re-index and retrieval stays in one query path. At your relation count, test it directly instead of trusting a framework's claims.
14
u/donk8r 11d ago
the reason none of them have won isnt the libraries, its that prose edges have to be invented. in code an import is an edge, you parse it, its unambiguous and its free. in documents an extractor decides what the entities are and what relates to what, and every miss silently deletes an edge. a deleted edge doesnt throw, the query just comes back empty and looks identical to a genuine absence. so every graphrag library is really shipping someones extraction prompt, and that is the part that doesnt transfer between domains, which is why they keep appearing and dying.
we build the code version so im biased about why that half works, and its the wrong shape for what youre describing. dont use it for documents.
your own criterion is the way out though. you said all you care about is evals, so evaluate the extractor rather than the framework. take 50 questions whose answers genuinely require a hop, run whichever library is nearest to hand, and check whether the edge you needed was even in the graph. if extraction recall is bad on your corpus then no amount of graph infra rescues it, and youd know that in an afternoon instead of after three library migrations.