Penyelesaian entitas berbasis grafik
Aduh! Meskipun prompt sudah sangat kuat, dengan contoh few-shot dan harapan setinggi langit, LLM masih berhalusinasi menciptakan tokoh bernama Romeo Capulet dan memberinya beberapa dialog di basis data.
{
"id": "romeo-capulet",
"name": "Romeo Capulet",
"family": "Montague"
}
Untungnya, Anda dapat menggunakan relasi dalam knowledge graph untuk menentukan apakah node ini kemungkinan merupakan duplikat tidak sengaja dari tokoh lain bernama Romeo Montague.
Pernyataan Cypher similarity_cypher menggunakan relasi MEMBER_OF dan INTERACTS_WITH untuk membangun skor kemiripan arbitrer dengan karakteristik berikut:
| Kondisi | Cypher | Pengubah Poin |
|---|---|---|
Relasi MEMBER_OF ke keluarga yang sama |
af = bf |
+1 |
| Properti nama yang sama | a.name = b.name |
+2 |
Persentase karakter yang berinteraksi dengan a dan b |
size(inCommon) / size(aInteractsWith) |
Dikalikan dengan persentase b yang berinteraksi dengan a |
Berdasarkan pengetahuan domain Anda, skor 2 menunjukkan korelasi yang kuat.
Latihan ini merupakan bagian dari kursus
Graph RAG dengan LangChain dan Neo4j
Instruksi latihan
- Lakukan kueri pada
graphdengan kueri Cypher (similarity_cypher) untuk menghitung skor kemiripan antara"romeo-capulet"dan node karakter lainnya. - Ekstrak
"bId","bFamily", dan"score", dalam urutan tersebut, dari setiaprowdiresults.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# Query the graph with similarity_cypher
result = ____
# Extract and print the results
for row in result:
print(row['____'], 'from', row['____'], 'has similarity score of ', row['____'])