LLM Graph Builder turns unstructured sources (PDF, DOC, TXT, YouTube videos, Wikipedia, and web pages) into a knowledge graph stored in Neo4j. It uses large language models through LangChain to extract nodes, relationships, and their properties, and it lets you chat with the resulting graph.
The application has a FastAPI backend and a React frontend. You connect to a Neo4j database (5.23 or later with APOC, including Aura instances), upload files from a local machine, GCS, S3, or a web source, choose an LLM, optionally define a schema of node and relationship labels, and generate the graph. Resulting graphs can be viewed in Neo4j Bloom, and a standalone /chat-only route provides a dedicated chat interface.
Supported LLM providers include OpenAI, Gemini, Diffbot, Azure OpenAI, Anthropic, Fireworks, Groq, Amazon Bedrock, Ollama, DeepSeek, and other OpenAI-compatible endpoints. Embedding models can come from OpenAI, Gemini, Amazon Titan, or Sentence Transformers.
Features
- Graph extraction: LLM-driven extraction of entities, relationships, and properties from documents and media
- Schema support: use a custom schema or a saved schema to constrain the generated graph
- Input sources: local files, YouTube, Wikipedia, AWS S3, Google Cloud Storage, and web pages
- Chat modes: vector, graph, graph_vector, fulltext, graph_vector_fulltext, entity_vector, and global_vector retrieval, with source metadata for each answer
- Embedding selection: switch embedding providers from the frontend or pin one in backend configuration
- Token usage tracking: per-user and per-connection daily and monthly consumption when TRACK_USER_USAGE is on
- Deployment options: docker-compose, separate backend and frontend processes, or Google Cloud Run
- Duplicate handling: configurable distance and score thresholds for matching duplicate nodes
