Skip to content

GraphRAG - vector search #57

@jexp

Description

@jexp

Thanks for adding GraphRAG to RAGbuilder.

I had some questions and suggestions, perhaps you want to chat some time.

  • QQ: in graphrag.full_retriever you fetch the vector store data but don't use it in the method or the returns, looks redundant?
        def full_retriever(question: str):
            graph_data = graph_retriever(question)
            vector_data = [el.page_content for el in vector_retriever.invoke(question)]
            final_data = f'''Graph data:
        {graph_data}
            '''
            return final_data
  • You don't make use of the built in neo4j vector search only the fulltext index - with the vector search you can allow in-graph vector and hybrid search? (you can create vector indexes both for chunks in the lexical graph, for entities in the domain graph and for communities in the topical structures)
  • right now the graph retriever only uses the direct neighbourhood of the nodes, this could be a good hyperparameter to add
  • e.g. we have a number of different retrievers in the llm-graph-builder, see: https://github.com/neo4j-labs/llm-graph-builder/blob/DEV/backend/src/shared/constants.py
  • I saw you copied some code from the neo4j-langchain integrations? Was there a reason (i.e. did you make modifications - if so it might be good to discuss to rather contribute them back upstream?)
  • there is the option to run clustering algorithms to generate cross-document topic summaries across the entity graphs (like in the MSFT GraphRAG paper), see https://neo4j.com/developer-blog/global-graphrag-neo4j-langchain/ (we've also implemented that in https://llm-graph-builder.neo4jlabs.com if you have a graph data science enabled database).

We have documented more GraphRAG patterns, here just in case you want to share your RAG patterns to the catalogue or provide some feedback:

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions