추출한 엔터티 사용하기
텍스트의 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.
character_chain을 사용해 personae 텍스트에서 등장인물을 추출하는 코드를 완성하고, 이어서 이 등장인물 목록을 사용해 relationship_chain으로 텍스트에서 관계 목록을 구축하세요.
visualize_families() 함수는 그래프에서 도출된 관계를 시각화해 보여줍니다.
이 연습은 강의의 일부입니다
LangChain과 Neo4j로 배우는 Graph RAG
연습 안내
character_chain을 호출해personae를 전달하고 등장인물 엔터티를 추출하세요.- 세 등장인물 이름,
personae, 그리고 JSON 형식으로 추출한 등장인물(character_json)을 사용해relationship_chain을 호출하고, 세 등장인물과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)