Usando entidades extraídas
A seção Dramatis Personæ do texto descreve os personagens da peça e pode ser considerada uma fonte abrangente e confiável. Ela também traz informações ricas sobre os relacionamentos pessoais entre os personagens.
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.
Complete o código para extrair os personagens do texto personae usando o character_chain e, em seguida, use a lista de personagens para construir uma lista de relacionamentos a partir do texto usando o relationship_chain.
A função visualize_families() exibirá os relacionamentos resultantes em um grafo.
Este exercicio faz parte do curso
Graph RAG com LangChain e Neo4j
Instruções do exercicio
- Invoque
character_chain, passandopersonaepara extrair as entidades de personagens. - Invoque
relationship_chainusando o nome do personagem,personaee os personagens extraídos em formato JSON (character_json) para extrair os relacionamentos entre os três personagens listados e os personagens listados empersonae.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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)