시작하기무료로 시작하기

텍스트 청크 만들기

Romeo and Juliet의 텍스트가 막(Act)과 장(Scene) 구조의 렉시컬 그래프로 로드되어 있지만, 아직 임베딩을 만들기에는 텍스트가 너무 큽니다. 1막 1장의 텍스트를 각 대사 줄(line) 단위의 더 작은 청크로 나누도록 코드를 완성하세요.

visualize_graph() 함수는 그래프 문서의 노드와 관계를 시각화해 보여줍니다.

이 연습은 강의의 일부입니다

LangChain과 Neo4j로 배우는 Graph RAG

강의 보기

연습 안내

  • line_nodegraph_document 객체에 추가하세요.
  • sceneline_node, 그리고 line_nodecharacter 사이에 각각 HAS_LINESPOKEN_BY 관계를 생성하고 graph_document에 추가하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

graph_document = GraphDocument(nodes=[scene], relationships=[])
characters = {}

for i, line in enumerate(lines[20:40]): 
    character, text = get_character_and_line(line)

    line_node = Node(type="Line", id=f"{scene.id}-line-{i}", properties={"raw": line,"character": character, "text": text, "caption": f"{text[:15]}..."})

    if character not in characters:
        character_node = Node(type="Character", id=character, properties={"name": character})
        characters[character] = character_node
        graph_document.nodes.append(character_node)

    # Add nodes to the array
    graph_document.____.append(____)

    # Add relationship to the array
    graph_document.____.extend(
        [Relationship(source=scene, target=line_node, type="____"),
        Relationship(source=line_node, target=characters[character], type="SPOKEN_BY")]
    )

visualize_graph(graph_document)
코드 편집 및 실행