Skip to main content

GraphAide

GraphAide Logo

Build knowledge graphs from any document with LLMs and Neo4j. GraphAide is a multi-agentic system that extracts entities and relationships from diverse sources, constructs knowledge graphs, and enables natural language reasoning over them—all with minimal setup.

30-Second Example

from graphaide import GraphAide, ModelConfig, GraphDBConfig, get_sample_data_path

# Setup (once)
graphaide = GraphAide(
    model_config=ModelConfig(provider="openai", model_name="gpt-4o"),
    graphdb_config=GraphDBConfig(uri="neo4j://localhost:7687", username="neo4j", password="password"),
)

# Extract from sample document
sample_pdf = get_sample_data_path("PNNL_About.pdf")
sample_ontology = get_sample_data_path("ontology_cyber.nt")
result = graphaide.extract(file_path=sample_pdf, ontology_path=sample_ontology)
print(f"✓ Extracted {len(result.nodes)} entities, {len(result.edges)} relationships")

# Load to Neo4j
graphaide.ingest(file_path=sample_pdf, ontology_path=sample_ontology)

# Query the graph
answer = graphaide.query("What organizations are mentioned?")
print(f"✓ Answer: {answer.answer}")

What It Does

  • Extract entities & relationships from PDFs, text, images, or web data
  • Ground entities to Wikidata for semantic enrichment
  • Load to Neo4j for queryable knowledge graphs
  • Reason over graphs with natural language questions
  • Track chunk provenance for result attribution

Supported Providers

LLM Embedding Vector Store
OpenAI, Anthropic, Google, AWS Bedrock, LMStudio OpenAI, Sentence Transformers, AWS Bedrock ChromaDB, Qdrant

Documentation

📚 Quick links:

Install

pip install graphaide

See QUICKSTART.md for detailed setup, Docker, and environment configuration.

Use Cases

  • Knowledge Graph Generation — Extract structured data from documents into queryable graphs
  • Semantic Search — Find related entities and concepts across datasets
  • Domain-Specific Reasoning — Answer questions requiring cross-document reasoning
  • Data Integration — Merge disparate sources with automated entity grounding
  • Compliance & Audit — Track relationships and dependencies with provenance

Architecture

GraphAide uses a multi-agent architecture orchestrated by LangGraph:

Document → [FileLoader] → [Extractor] → [Nodes4EdgesLoader] 
         → [NodesLoader] → [EdgesLoader] → Neo4j
         ↓
      [VectorDB] ← [Embeddings] ← RAG Context

Factory pattern manages LLMs, vector stores, and graph databases:

  • ModelFactory — Loads LLMs from OpenAI, Anthropic, Google, AWS Bedrock, or local LMStudio
  • GraphDBFactory — Manages Neo4j/Neptune connections
  • VectorStoreFactory — Manages ChromaDB or Qdrant vector indices
  • AgentFactory — Builds extraction, loading, and query agents

Agents communicate via KGGenerationState (append-only shared state with reducers):

  • raw_text, file_path — Input document
  • nodes, edges — Extracted entities and relationships
  • rag_context — Ontology constraints and Wikidata metadata
  • messages — Status and debug info

Tested Configurations

Provider LLM Embedding
OpenAI gpt-4o, gpt-4o-mini text-embedding-3-small
Anthropic claude-3-5-sonnet claude-3-5-sonnet (native)
AWS Bedrock anthropic.claude-3-5-sonnet amazon.titan-embed-text-v1
LMStudio (local) google/gemma-3-27b:2 text-embedding-nomic-embed-text-v1.5

Run Modes

Mode Command
CLI graphaide extract doc.pdf
Docker docker compose up then docker exec
Python from graphaide import GraphAide
REST graphaide serve → http://localhost:8000

Support

Please reach out to Sumit.Purohit@pnnl.gov for any questions.

Authors and acknowledgment

Please reach out to Sumit.Purohit@pnnl.gov for any questions.

Citation

If you use GraphAide in your research, please cite:

@inproceedings{purohit2024graphaide,
  title={GraphAide: Advanced Graph-Assisted Query and Reasoning System},
  author={Purohit, Sumit and Chin, George and Mackey, Patrick S and Cottam, Joseph A},
  booktitle={2024 IEEE International Conference on Big Data (BigData)},
  pages={3485--3493},
  year={2024},
  organization={IEEE}
}

The research described in this paper is partially supported by the Resilience Through Data Driven, Intelligently Designed Control (RD2C) Initiative at Pacific Northwest National Laboratory (PNNL) and the United States federal government. Pacific Northwest National Laboratory is a multiprogram national laboratory operated for the US Department of Energy (DOE) by Battelle Memorial Institute under Contract No. DEAC05-76RL01830. PNNL Information Release PNNL-SA205147.

License

Please refer LICENSE and DISCLAIMER files for details.

Project status

Active development

Metadata

Release files for graphaide 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for graphaide 0.5.0
File Size Uploaded Provenance Actions
graphaide-0.5.0.tar.gz 419.7 kB Without provenance Details for graphaide-0.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for graphaide 0.5.0
File Interpreter ABI Platform Actions
graphaide-0.5.0-py3-none-any.whl Python 3 none any Details for graphaide-0.5.0-py3-none-any.whl

Total release size: 863.8 kB

Release files / graphaide-0.5.0.tar.gz

Download URL graphaide-0.5.0.tar.gz
Size 419.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4b1c9f575c750864119b4db217cec104811e056b9acf0b1c88ce85642e4dbd0c
BLAKE2b-256 checksum
How to use checksums
cd3201d51629961dfc25904d1d4b4b7710c759f0242924d3c78ded2c5d04418d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Release files / graphaide-0.5.0-py3-none-any.whl

Download URL graphaide-0.5.0-py3-none-any.whl
Size 444.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ed64ce07fee08bd49d2945e0720a88724e7e180a4d4e0c4373675985a4e592fc
BLAKE2b-256 checksum
How to use checksums
54b7bb1894ad2b882dfebefc11d56c8c525ebe794721de63c4865bb29c05a6c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Security for graphaide 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page