Resolusi entitas

Graph RAG dengan LangChain dan Neo4j

Adam Cowley

Manager, Developer Education at Neo4j

LLM tidak menyimpan status

Panggilan #1

Daftarkan tokoh dalam teks berikut:

{text}
Tokoh dalam teks ini:

* Sampson - Pelayan keluarga Capulet.
* Gregory - Pelayan lain keluarga Capulet.
* Abram - Pelayan keluarga Montague.
* Balthasar - Pelayan keluarga Montague.

Panggilan #2

Daftarkan tokoh dalam teks berikut:

{text}
Tokoh yang tercantum dalam teks ini:

* Sampson - Pelayan Capulet
* Gregory - Pelayan Capulet
* Abram - Pelayan Montague
* Benvolio - Pelayan Montague
Graph RAG dengan LangChain dan Neo4j

Saran entitas

examples = graph.query("""
MATCH (c:Character)-[:BELONGS_TO]->(f:Family)
RETURN c.id AS id, c.name AS name, f.name AS belongsToFamily
""")

for character in example:
    print(character)
{"id": "romeo-montague", "name": "Romeo", "family": "Montague"},

{"id": "juliet-capulet", "name": "Juliet", "family": "Capulet"},
{"id": "sampson", "name": "Sampson", "family": "Capulet"},
...
Graph RAG dengan LangChain dan Neo4j

Saran entitas

SystemMessagePromptTemplate.from_template("""
Ekstrak informasi yang sesuai dengan entitas berikut.


Abaikan tokoh yang tidak ada dalam daftar berikut:
{examples}
""",
partial_variables={"examples": [ dict(e) for e in examples ]}
)
Graph RAG dengan LangChain dan Neo4j

Resolusi entitas berbasis graf

resolusi entitas 1

Graph RAG dengan LangChain dan Neo4j

Resolusi entitas berbasis graf

resolusi entitas 2

Graph RAG dengan LangChain dan Neo4j

Resolusi entitas berbasis graf

resolusi entitas 3

Graph RAG dengan LangChain dan Neo4j

Resolusi entitas berbasis graf

resolusi entitas 4

Graph RAG dengan LangChain dan Neo4j

Resolusi entitas berbasis graf

resolusi entitas 5

Graph RAG dengan LangChain dan Neo4j

Mengidentifikasi orang serupa

MATCH path = (c:Character {id: "romeo-capulet"})-[r]-(inCommon:Character),

(inCommon)-[r2]-(other:Character)
RETURN c.id AS id, c.name AS name, other.name AS otherName, other.id AS otherId,
c.name = other.name AS shareName,
EXISTS { (c)-[:BELONGS_TO]->(:Family)<-[:BELONGS_TO]-(other) } AS belongToFamily,
count(*) as nodesInCommon,
collect(path) AS paths
ORDER BY nodesInCommon DESC LIMIT 10
Graph RAG dengan LangChain dan Neo4j

Menggunakan relasi kemiripan

diagram graf simpul orang dengan dua simpul orang dan relasi serupa. Keduanya terhubung ke simpul Baris

MATCH (:Character {id: 'romeo-montague'})-[:SIMILAR_TO*0..1]-(character),
  (character)-[:HAS_LINE]->(line),
  (line)-[:SPOKEN_TO]->(target)
RETURN character, line
Graph RAG dengan LangChain dan Neo4j

Ayo berlatih!

Graph RAG dengan LangChain dan Neo4j

Preparing Video For Download...