Bắt đầu ngayBắt đầu miễn phí

Tạo các đoạn văn bản (chunks)

Văn bản từ Romeo and Juliet đã được nạp vào một đồ thị từ vựng (lexical graph) với cấu trúc Hồi (Acts) và Cảnh (Scenes), nhưng văn bản vẫn quá lớn để tạo ra các embedding có ý nghĩa. Hoàn thiện mã để tách văn bản từ Hồi I, Cảnh I thành các đoạn nhỏ hơn cho từng dòng.

Hàm visualize_graph() sẽ hiển thị các node và các quan hệ trong tài liệu đồ thị (graph document).

Bài tập này là một phần của khóa học

Graph RAG với LangChain và Neo4j

Xem khóa học

Hướng dẫn bài tập

  • Thêm mỗi line_node vào đối tượng graph_document.
  • Tạo các quan hệ HAS_LINESPOKEN_BY lần lượt giữa mỗi sceneline_node, và giữa line_nodecharacter, rồi thêm chúng vào graph_document.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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)
Chỉnh sửa và Chạy Mã