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 référence complète. Elle contient aussi des renseignements précieux sur les relations personnelles entre les personnages.
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.
Complétez le code pour extraire les personnages à partir du texte personae en utilisant character_chain, puis utilisez la liste des personnages pour construire une liste de relations à partir du texte avec relationship_chain.
La fonction visualize_families() affichera les relations obtenues dans un graphe.
Cette activité fait partie du cours
Graph RAG avec LangChain et Neo4j
Instructions de l’exercice
- Appelez
character_chainen lui transmettantpersonaeafin d'extraire les entités de type personnage. - Appelez
relationship_chainen lui passant le nom du personnage,personae, et les personnages extraits au format JSON (character_json) pour extraire les relations entre les trois personnages indiqués et ceux listé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)