지식 그래프 질의하기

LangChain과 Neo4j로 배우는 Graph RAG

Adam Cowley

Manager, Developer Education at Neo4j

Cypher는 ASCII-art로 패턴 매칭합니다

 

사람이 영화에 출연한 그래프 패턴

 

MATCH


LangChain과 Neo4j로 배우는 Graph RAG

Cypher는 ASCII-art로 패턴 매칭합니다

 

사람이 영화에 출연한 그래프 패턴

 

MATCH (        )               (       )


LangChain과 Neo4j로 배우는 Graph RAG

Cypher는 ASCII-art로 패턴 매칭합니다

 

사람이 영화에 출연한 그래프 패턴

 

MATCH ( :Person)               ( :Movie)


LangChain과 Neo4j로 배우는 Graph RAG

Cypher는 ASCII-art로 패턴 매칭합니다

 

사람이 영화에 출연한 그래프 패턴

 

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


LangChain과 Neo4j로 배우는 Graph RAG

Cypher는 ASCII-art로 패턴 매칭합니다

 

사람이 영화에 출연한 그래프 패턴

 

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


LangChain과 Neo4j로 배우는 Graph RAG

Cypher는 ASCII-art로 패턴 매칭합니다

 

사람이 영화에 출연한 그래프 패턴

 

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


LangChain과 Neo4j로 배우는 Graph RAG

결과 필터링

 

사람이 영화에 출연한 그래프 패턴

 

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

WHERE a.name = 'Tom Hanks'
LangChain과 Neo4j로 배우는 Graph RAG

출력 제어하기

 

사람이 영화에 출연한 그래프 패턴

 

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

WHERE a.name = 'Tom Hanks'
RETURN a.name, m.title AS movieTitle, r.roles AS roles
LangChain과 Neo4j로 배우는 Graph RAG

Cypher의 동작 방식

네트워크 중심의 노드와 관계를 확장하여 탐색 경로를 강조하는 다이어그램

LangChain과 Neo4j로 배우는 Graph RAG

CREATE 절

CREATE 절은 그래프에 패턴을 생성합니다

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

CREATE (c:Company {name: "Neo4j"})
CREATE (p)-[:WORKS_FOR]->(c)
LangChain과 Neo4j로 배우는 Graph RAG

MERGE 절

MERGE 절은 그래프에서 패턴을 찾거나 생성합니다

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

MERGE (c:Company {name: "Neo4j"})
LangChain과 Neo4j로 배우는 Graph RAG

LangChain에서 Cypher 실행문

from langchain_neo4j import Neo4jGraph

graph = Neo4jGraph(url=NEO4J_URI, username=NEO4J_USERNAME, password=NEO4J_PASSWORD)
# Execute a Cypher statement
graph.query(

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

연습해 봅시다!

LangChain과 Neo4j로 배우는 Graph RAG

Preparing Video For Download...