การใช้งาน Entity ที่ดึงออกมา
ส่วน Dramatis Personæ ในบทละครอธิบายตัวละครทั้งหมดในเรื่อง และถือเป็นแหล่งข้อมูลหลักที่ครอบคลุม นอกจากนี้ยังมีข้อมูลเชิงลึกเกี่ยวกับความสัมพันธ์ระหว่างตัวละครด้วย
Dramatis Personæ
ESCALUS, Prince of Verona.
MERCUTIO, kinsman to the Prince, and friend to Romeo.
PARIS, a young Nobleman, kinsman to the Prince.
Page to Paris.
เติมโค้ดให้สมบูรณ์เพื่อดึงข้อมูลตัวละครจากข้อความ personae โดยใช้ character_chain จากนั้นใช้รายชื่อตัวละครที่ได้เพื่อสร้างรายการความสัมพันธ์จากข้อความด้วย relationship_chain
ฟังก์ชัน visualize_families() จะแสดงความสัมพันธ์ที่ได้ในรูปแบบกราฟ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Graph RAG ด้วย LangChain และ Neo4j
คำแนะนำการฝึกหัด
- เรียกใช้
character_chainโดยส่งpersonaeเข้าไปเพื่อดึง entity ของตัวละคร - เรียกใช้
relationship_chainโดยส่งชื่อตัวละคร,personae, และตัวละครที่ดึงมาในรูปแบบ JSON (character_json) เพื่อดึงความสัมพันธ์ระหว่างตัวละครสามตัวที่ระบุไว้กับตัวละครในpersonae
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Extract characters from the personae variable
output = character_chain.____({"personae": ____})
character_json = dumps([dict(character) for character in output.characters])
# Extract the relationships
for character_name in ["Romeo", "Juliet", "Friar Lawrence"]:
relationship_output = relationship_chain.invoke({
"character_name": character_name,
"personae": ____,
"characters": ____
})
for relationship in relationship_output.relationships:
all_relationships.append(relationship)
visualize_families(all_relationships, output)