Utiliser les entités extraites
La section Dramatis Personæ du texte décrit les personnages de la pièce et peut être considérée comme une source de vérité complète. Elle contient aussi de précieuses informations sur les relations entre les personnages.
Dramatis Personæ
ESCALUS, Prince de Vérone.
MERCUTIO, parent du Prince, et ami de Roméo.
PARIS, jeune noble, parent du Prince.
Page de Paris.
Complétez le code pour extraire les personnages du texte personae à l’aide de character_chain, puis utilisez cette liste de personnages pour construire une liste de relations à partir du texte avec relationship_chain.
La fonction visualize_families() affichera les relations obtenues sous forme de graphe.
Cet exercice fait partie du cours
<cours>Graph RAG avec LangChain et Neo4j</cours>Instructions de l’exercice
- Appelez
character_chainen lui passantpersonaepour extraire les entités correspondant aux personnages. - Appelez
relationship_chainavec le nom du personnage,personae, et les personnages extraits au format JSON (character_json) pour extraire les relations entre les trois personnages listés et ceux indiqués danspersonae.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)