ग्राफ़-आधारित एंटिटी रेज़ोल्यूशन
अरे नहीं! बिल्कुल सटीक प्रॉम्प्ट, कुछ फ्यू-शॉट उदाहरण, और पूरी उम्मीद के बावजूद, LLM ने अब भी Romeo Capulet नाम का एक कैरेक्टर गढ़ दिया है और उसे डेटाबेस में कुछ पंक्तियाँ दे दी हैं.
{
"id": "romeo-capulet",
"name": "Romeo Capulet",
"family": "Montague"
}
अच्छी बात यह है कि आप नॉलेज ग्राफ़ में मौजूद रिलेशनशिप्स का उपयोग करके तय कर सकते हैं कि यह नोड शायद Romeo Montague नाम के किसी अन्य नोड का गलती से बना डुप्लिकेट तो नहीं.
similarity_cypher Cypher स्टेटमेंट MEMBER_OF और INTERACTS_WITH रिलेशनशिप्स का उपयोग करके एक मनमाना समानता स्कोर बनाता है, जिसकी ये विशेषताएँ हैं:
| स्थिति | Cypher | पॉइंट्स मॉडिफ़ायर |
|---|---|---|
उसी परिवार के साथ MEMBER_OF रिलेशनशिप |
af = bf |
+1 |
| समान name प्रॉपर्टी | a.name = b.name |
+2 |
जिन कैरेक्टर्स से a और b इंटरैक्ट करते हैं, उनका प्रतिशत |
size(inCommon) / size(aInteractsWith) |
b के उस प्रतिशत से गुणा किया जाएगा, जिनसे a इंटरैक्ट करता है |
आपके डोमेन ज्ञान के अनुसार, 2 का स्कोर मज़बूत सहसंबंध दर्शाता है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
LangChain और Neo4j के साथ Graph RAG
अभ्यास निर्देश
graphको Cypher क्वेरी (similarity_cypher) के साथ क्वेरी करें ताकि"romeo-capulet"और अन्य कैरेक्टर नोड्स के बीच समानता स्कोर निकाले जा सकें.resultsकी हरrowसे क्रम में"bId","bFamily", और"score"निकालें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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['____'])