Abfragen eines Knowledge Graphs

Graph RAG mit LangChain und Neo4j

Adam Cowley

Manager, Developer Education at Neo4j

Cypher ist Mustersuche mit ASCII-Art

 

Ein Graphmuster: Person spielte in Film mit

 

MATCH


Graph RAG mit LangChain und Neo4j

Cypher ist Mustersuche mit ASCII-Art

 

Ein Graphmuster: Person spielte in Film mit

 

MATCH (        )               (       )


Graph RAG mit LangChain und Neo4j

Cypher ist Mustersuche mit ASCII-Art

 

Ein Graphmuster: Person spielte in Film mit

 

MATCH ( :Person)               ( :Movie)


Graph RAG mit LangChain und Neo4j

Cypher ist Mustersuche mit ASCII-Art

 

Ein Graphmuster: Person spielte in Film mit

 

MATCH ( :Person)-            ->( :Movie)


Graph RAG mit LangChain und Neo4j

Cypher ist Mustersuche mit ASCII-Art

 

Ein Graphmuster: Person spielte in Film mit

 

MATCH ( :Person)-[ :ACTED_IN]->( :Movie)


Graph RAG mit LangChain und Neo4j

Cypher ist Mustersuche mit ASCII-Art

 

Ein Graphmuster: Person spielte in Film mit

 

MATCH (a:Person)-[r:ACTED_IN]->(m:Movie)


Graph RAG mit LangChain und Neo4j

Ergebnisse filtern

 

Ein Graphmuster: Person spielte in Film mit

 

MATCH (a:Person)-[r:ACTED_IN]->(m:Movie)

WHERE a.name = 'Tom Hanks'
Graph RAG mit LangChain und Neo4j

Ausgaben steuern

 

Ein Graphmuster: Person spielte in Film mit

 

MATCH (a:Person)-[r:ACTED_IN]->(m:Movie)

WHERE a.name = 'Tom Hanks'
RETURN a.name, m.title AS movieTitle, r.roles AS roles
Graph RAG mit LangChain und Neo4j

Wie Cypher arbeitet

Ein Diagramm, das zeigt, wie ein zentraler Knoten und seine Beziehungen expandiert werden, um den Pfad durchs Netzwerk zu markieren

Graph RAG mit LangChain und Neo4j

Die CREATE-Klausel

Die CREATE-Klausel erstellt ein Muster im Graphen

CREATE (p:Person {name: "Adam"})

CREATE (c:Company {name: "Neo4j"})
CREATE (p)-[:WORKS_FOR]->(c)
Graph RAG mit LangChain und Neo4j

Die MERGE-Klausel

Die MERGE-Klausel findet oder erstellt ein Muster im Graphen

MERGE (p:Person {name: "Adam"})

MERGE (c:Company {name: "Neo4j"})
Graph RAG mit LangChain und Neo4j

Cypher-Anweisungen in LangChain

from langchain_neo4j import Neo4jGraph

graph = Neo4jGraph(url=NEO4J_URI, username=NEO4J_USERNAME, password=NEO4J_PASSWORD)
# Eine Cypher-Anweisung ausführen
graph.query(

"MATCH (p:Person {name: $name}) RETURN p",
{"name": "Your name"}
)
1 Cypher Injection: https://neo4j.com/developer/kb/protecting-against-cypher-injection/
Graph RAG mit LangChain und Neo4j

Lass uns üben!

Graph RAG mit LangChain und Neo4j

Preparing Video For Download...