การค้นหาข้อมูลใน knowledge graph

Graph RAG ด้วย LangChain และ Neo4j

Adam Cowley

Manager, Developer Education at Neo4j

Cypher คือการจับคู่รูปแบบด้วย ASCII-art

 

รูปแบบกราฟของ Person acted in Movie

 

MATCH


Graph RAG ด้วย LangChain และ Neo4j

Cypher คือการจับคู่รูปแบบด้วย ASCII-art

 

รูปแบบกราฟของ Person acted in Movie

 

MATCH (        )               (       )


Graph RAG ด้วย LangChain และ Neo4j

Cypher คือการจับคู่รูปแบบด้วย ASCII-art

 

รูปแบบกราฟของ Person acted in Movie

 

MATCH ( :Person)               ( :Movie)


Graph RAG ด้วย LangChain และ Neo4j

Cypher คือการจับคู่รูปแบบด้วย ASCII-art

 

รูปแบบกราฟของ Person acted in Movie

 

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


Graph RAG ด้วย LangChain และ Neo4j

Cypher คือการจับคู่รูปแบบด้วย ASCII-art

 

รูปแบบกราฟของ Person acted in Movie

 

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


Graph RAG ด้วย LangChain และ Neo4j

Cypher คือการจับคู่รูปแบบด้วย ASCII-art

 

รูปแบบกราฟของ Person acted in Movie

 

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


Graph RAG ด้วย LangChain และ Neo4j

การกรองผลลัพธ์

 

รูปแบบกราฟของ Person acted in Movie

 

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

WHERE a.name = 'Tom Hanks'
Graph RAG ด้วย LangChain และ Neo4j

การควบคุมผลลัพธ์

 

รูปแบบกราฟของ Person acted in Movie

 

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 ด้วย LangChain และ Neo4j

Cypher ทำงานอย่างไร

ไดอะแกรมแสดงโหนดตรงกลางเครือข่ายและความสัมพันธ์ที่ขยายออกเพื่อเน้นเส้นทางที่ผ่านในเครือข่าย

Graph RAG ด้วย LangChain และ Neo4j

คลอส CREATE

คลอส CREATE ใช้สร้างรูปแบบในกราฟ

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

CREATE (c:Company {name: "Neo4j"})
CREATE (p)-[:WORKS_FOR]->(c)
Graph RAG ด้วย LangChain และ Neo4j

คลอส MERGE

คลอส MERGE จะค้นหา หรือสร้าง รูปแบบในกราฟ

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

MERGE (c:Company {name: "Neo4j"})
Graph RAG ด้วย LangChain และ Neo4j

คำสั่ง Cypher ใน LangChain

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/
Graph RAG ด้วย LangChain และ Neo4j

มาฝึกกันเถอะ!

Graph RAG ด้วย LangChain และ Neo4j

Preparing Video For Download...