Začněte nyníZačněte zdarma

Vytváření textových fragmentů

Text z Romea a Julie byl načten do lexikálního grafu se strukturou aktů a scén, ale text je stále příliš rozsáhlý na to, aby z něj bylo možné generovat smysluplné embeddingy. Dokonči kód tak, aby rozdělil text z 1. aktu, 1. scény na menší fragmenty pro každý řádek.

Funkce visualize_graph() zobrazí uzly a vztahy v dokumentu grafu.

Toto cvičení je součástí kurzu

Graph RAG s LangChain a Neo4j

Zobrazit kurz

Pokyny k cvičení

  • Přidej každý line_node do objektu graph_document.
  • Vytvoř vztahy HAS_LINE a SPOKEN_BY mezi každou scene a line_node, resp. mezi line_node a character, a přidej je do graph_document.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)
Upravit a spustit kód