all projects

// RAG

FinGraphRAG

Portfolio risk & market analysis via GraphRAG

GraphRAGNeo4jQdrantFastAPIReactPythonDocker

Overview

Vector RAG is great until a question requires reasoning across relationships — "which of my holdings are most exposed to the same supply chain disruption?" needs a graph, not cosine similarity. FinGraphRAG combines both.

Architecture

  • Knowledge graph (Neo4j) — companies, sectors, holdings, events, suppliers, executives, and the edges between them
  • Vector index (Qdrant) — embeddings over news, filings, and analyst commentary
  • Hybrid retrieval — graph traversal narrows the candidate set, then vector search ranks by semantic relevance
  • Reasoning layer — LLM composes a final answer with citations to both graph paths and source documents

What it does well

  • Sector exposure — "What % of my portfolio is exposed to lithium pricing?" pulls the graph path through suppliers and end-markets
  • Event impact — "How might the new EU AI Act affect my holdings?" reasons across regulatory edges
  • Structured outputs — every answer cites its sources; the UI lets you click through to the underlying graph subgraph

Lessons

Building a useful KG is more work than building the RAG layer on top. The entity resolution and edge typing decisions are the project. Once the graph is right, the rest follows.

// SCREENSHOTS

FinGraphRAG screenshot
FinGraphRAG screenshot