Varlık eşleştirme

LangChain ve Neo4j ile Graph RAG

Adam Cowley

Manager, Developer Education at Neo4j

BBM'ler durum tutmaz

Çağrı #1

Aşağıdaki metindeki karakterleri listeleyin:

{text}
Bu metindeki karakterler:

* Sampson - Capulet hanesinin hizmetkârı.
* Gregory - Capulet hanesinin diğer hizmetkârı.
* Abram - Montague hanesinin hizmetkârı.
* Balthasar - Montague hanesinin hizmetkârı.

Çağrı #2

Aşağıdaki metindeki karakterleri listeleyin:

{text}
Bu metinde listelenen karakterler:

* Sampson - Capulet hizmetkârı
* Gregory - Capulet hizmetkârı
* Abram - Montague hizmetkârı
* Benvolio - Montague hizmetkârı
LangChain ve Neo4j ile Graph RAG

Varlık önerileri

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"},
...
LangChain ve Neo4j ile Graph RAG

Varlık önerileri

SystemMessagePromptTemplate.from_template("""
Aşağıdaki varlıklara karşılık gelen bilgileri çıkarın.


Aşağıdaki listede yer almayan karakterleri yok sayın:
{examples}
""",
partial_variables={"examples": [ dict(e) for e in examples ]}
)
LangChain ve Neo4j ile Graph RAG

Grafa dayalı varlık eşleştirme

varlık_eşleştirme1.jpg

LangChain ve Neo4j ile Graph RAG

Grafa dayalı varlık eşleştirme

varlık_eşleştirme2.jpg

LangChain ve Neo4j ile Graph RAG

Grafa dayalı varlık eşleştirme

varlık_eşleştirme3.jpg

LangChain ve Neo4j ile Graph RAG

Grafa dayalı varlık eşleştirme

varlık_eşleştirme4.jpg

LangChain ve Neo4j ile Graph RAG

Grafa dayalı varlık eşleştirme

varlık_eşleştirme5.jpg

LangChain ve Neo4j ile Graph RAG

Benzer kişileri belirleme

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
LangChain ve Neo4j ile Graph RAG

Benzerlik ilişkilerini kullanma

iki kişi düğümü ve aralarında benzer ilişkisi olan, her ikisi de Replik düğümlerine bağlı kişi düğümlerinden oluşan bir grafik diyagramı

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

Hadi pratik yapalım!

LangChain ve Neo4j ile Graph RAG

Preparing Video For Download...