เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การสร้าง text chunk

ข้อความจาก Romeo and Juliet ถูกโหลดลงใน lexical graph ที่มีโครงสร้างแบ่งตาม Acts และ Scenes แล้ว แต่ข้อความยังมีขนาดใหญ่เกินไปสำหรับการสร้าง embedding ที่มีความหมาย ให้เติมโค้ดให้สมบูรณ์เพื่อแบ่งข้อความจาก Act I, Scene I ออกเป็น chunk เล็กๆ ตามแต่ละบรรทัด

ฟังก์ชัน visualize_graph() จะแสดง node และ relationship ใน graph document

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Graph RAG ด้วย LangChain และ Neo4j

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เพิ่ม line_node แต่ละตัวเข้าไปใน object graph_document
  • สร้าง relationship แบบ HAS_LINE และ SPOKEN_BY ระหว่าง scene กับ line_node และระหว่าง line_node กับ character ตามลำดับ แล้วเพิ่มเข้าไปใน 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)
แก้ไขและรันโค้ด