Skip to main content

Neo4j

This page covers how to use the Neo4j ecosystem within LangChain.

What is Neo4j?

Neo4j in a nutshell:

  • Neo4j is an open-source database management system that specializes in graph database technology.
  • Neo4j allows you to represent and store data in nodes and edges, making it ideal for handling connected data and relationships.
  • Neo4j provides a Cypher Query Language, making it easy to interact with and query your graph data.
  • With Neo4j, you can achieve high-performance graph traversals and queries, suitable for production-level systems.
  • Get started quickly with Neo4j by visiting their website.

Installation and Setup​

  • Install the Python SDK with pip install neo4j

Wrappers​

VectorStore​

There exists a wrapper around Neo4j vector index, allowing you to use it as a vectorstore, whether for semantic search or example selection.

To import this vectorstore:

from langchain_community.vectorstores import Neo4jVector

For a more detailed walkthrough of the Neo4j vector index wrapper, see documentation

GraphCypherQAChain​

There exists a wrapper around Neo4j graph database that allows you to generate Cypher statements based on the user input and use them to retrieve relevant information from the database.

from langchain_community.graphs import Neo4jGraph
from langchain.chains import GraphCypherQAChain

For a more detailed walkthrough of Cypher generating chain, see documentation

Constructing a knowledge graph from text​

Text data often contain rich relationships and insights that can be useful for various analytics, recommendation engines, or knowledge management applications. Diffbot's NLP API allows for the extraction of entities, relationships, and semantic meaning from unstructured text data. By coupling Diffbot's NLP API with Neo4j, a graph database, you can create powerful, dynamic graph structures based on the information extracted from text. These graph structures are fully queryable and can be integrated into various applications.

from langchain_community.graphs import Neo4jGraph
from langchain_experimental.graph_transformers.diffbot import DiffbotGraphTransformer

For a more detailed walkthrough generating graphs from text, see documentation