Usare le entità estratte
La sezione Dramatis Personæ del testo descrive i personaggi della pièce e può essere considerata una fonte completa e affidabile. Contiene anche informazioni ricche sulle relazioni personali tra i personaggi.
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.
Completa il codice per estrarre i personaggi dal testo personae usando character_chain, quindi usa l’elenco dei personaggi per costruire un elenco di relazioni dal testo usando relationship_chain.
La funzione visualize_families() mostrerà le relazioni risultanti in un grafo.
Questo esercizio fa parte del corso
Graph RAG con LangChain e Neo4j
Istruzioni dell'esercizio
- Esegui
character_chain, passandoglipersonaeper estrarre le entità dei personaggi. - Esegui
relationship_chainsul nome del personaggio, supersonaee sui personaggi estratti in formato JSON (character_json) per estrarre le relazioni tra i tre personaggi elencati e quelli elencati inpersonae.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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)