Graph RAG with LangChain and Neo4j
Adam Cowley
Manager, Developer Education at Neo4j
What does Paul Graham think about Generative AI?
How many Generative AI Startups has Paul Graham invested in?
Text | Vector Embedding |
---|---|
He's just a city boy born | [0.12, -0.34, 0.56, 0.78, ..., -0.91] |
born and raised in South Detroit | [0.22, 0.45, -0.67, 0.11, ..., 0.33] |
He took the midnight train | [-0.55, 0.89, 0.12, -0.44, ..., 0.67] |
going anywhere | [0.78, -0.23, 0.45, 0.91, ..., -0.12] |
Text | Vector Embedding |
---|---|
He's just a city boy born | [0.12, -0.34, 0.56, 0.78, ..., -0.91] |
born and raised in South Detroit | [0.22, 0.45, -0.67, 0.11, ..., 0.33] |
He took the midnight train | [-0.55, 0.89, 0.12, -0.44, ..., 0.67] |
going anywhere | [0.78, -0.23, 0.45, 0.91, ..., -0.12] |
Text | Vector Embedding |
---|---|
He's just a city boy born | [0.12, -0.34, 0.56, 0.78, ..., -0.91] |
born and raised in South Detroit | [0.22, 0.45, -0.67, 0.11, ..., 0.33] |
He took the midnight train | [-0.55, 0.89, 0.12, -0.44, ..., 0.67] |
going anywhere | [0.78, -0.23, 0.45, 0.91, ..., -0.12] |
langchain-neo4j
LangChain integrationfrom langchain_neo4j.graphs.graph_document \ import Node
book = Node(
type="Book",
id=f"9781098127107",
properties={ "title": "Building Knowledge Graphs" }
)
from langchain_neo4j.graphs.graph_document \
import Node, Relationship
book = Node(type="Book", id=f"9781098127107")
jesus = Node(type="Person", id="dr-jesus-barrasa")
jim = Node(type="Person", id="chief-scientist")
for author in [jesus, jim]: relationship = Relationship(
)
from langchain_neo4j.graphs.graph_document \
import Node, Relationship
book = Node(type="Book", id=f"9781098127107")
jesus = Node(type="Person", id="dr-jesus-barrasa")
jim = Node(type="Person", id="chief-scientist")
for author in [jesus, jim]: relationship = Relationship(
source=book,
)
from langchain_neo4j.graphs.graph_document \
import Node, Relationship
book = Node(type="Book", id=f"9781098127107")
jesus = Node(type="Person", id="dr-jesus-barrasa")
jim = Node(type="Person", id="chief-scientist")
for author in [jesus, jim]: relationship = Relationship(
source=book,
target=author,
)
from langchain_neo4j.graphs.graph_document \
import Node, Relationship
book = Node(type="Book", id=f"9781098127107")
jesus = Node(type="Person", id="dr-jesus-barrasa")
jim = Node(type="Person", id="chief-scientist")
for author in [jesus, jim]: relationship = Relationship(
source=book,
target=author,
type="WRITTEN_BY"
properties=dict(...)
)
from langchain_neo4j import Neo4jGraph
graph = Neo4jGraph( url=NEO4J_URI, username=NEO4J_USERNAME, password=NEO4J_PASSWORD )
from langchain_neo4j.graphs.graph_document import GraphDocument
# Wrapper for Nodes and Relationships doc = GraphDocument(
nodes=[book, jesus, jim],
relationships=[jesus_wrote_book, jim_wrote_book]
)
# Save nodes and relationships to the database graph.add_graph_documents([graph_document])
Graph RAG with LangChain and Neo4j