Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) · Pelajaran

Mengendalikan Struktur Dokumen Kompleks

Laksanakan strategi untuk membahagi dan mendapatkan maklumat daripada dokumen rumit dengan berkesan, seperti jadual atau bahagian bersarang.

Pelajaran 3 daripada 411 langkah

Mengendalikan Struktur Dokumen Kompleks ialah pelajaran Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching), dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) merangkumi sejumlah 4 pelajaran.

Melangkaui Teks Ringkas: Dokumen Kompleks

Apabila membina sistem RAG, kita sering berurusan dengan dokumen yang bukan sekadar teks biasa yang mengalir. Fikirkan laporan kewangan, kertas saintifik atau kontrak undang-undang.

Dokumen ini kerap mengandungi jadual, bahagian berhierarki (seperti bab dan subbab), serta struktur rumit yang lain. Kaedah pemecahan teks standard sering menghadapi kesukaran dengan kandungan ini, lalu memutuskan konteks dan menjadikan pengambilan kurang berkesan.

Jadual: Cabaran untuk RAG

Jadual ialah contoh utama struktur kompleks. Jadual membentangkan data dalam format berstruktur seperti grid, yang menjadikan hubungan antara baris dan lajur sangat penting.

  • Konteks Hilang: Alat pemecah berasaskan aksara yang ringkas mungkin memisahkan satu baris jadual, lalu mengasingkan nilai daripada pengepalanya dan menjadikan bahagian tersebut tidak bermakna.
  • Embedding Lemah: Tanpa konteks yang betul, embedding yang dijana untuk serpihan jadual mungkin tidak menggambarkan data dengan tepat.

Strategi Pemecahan yang Menyedari Jadual

Untuk mengendalikan jadual dengan berkesan, kita memerlukan strategi khusus:

  • Pengekstrakan: Kenal pasti dan ekstrak jadual sebagai entiti yang berasingan.
  • Penyirian: Tukarkan jadual kepada format teks yang lebih mesra LLM, seperti Markdown atau JSON berstruktur, sambil mengekalkan hubungannya.
  • Perumusan: Untuk jadual yang sangat besar, jana ringkasan padat untuk di-embed, dengan pautan kembali kepada jadual penuh.

Hal ini memastikan LLM menerima konteks jadual yang lengkap dan bermakna.

Mengekstrak Data Jadual (Python)

Berikut ialah contoh Python ringkas yang menunjukkan cara anda mungkin memproses jadual yang diwakili sebagai rentetan, dengan menukarkannya kepada senarai baris yang lebih berstruktur.

import csv
import io

def process_table_string(table_str):
    # Use StringIO to treat the string as a file
    f = io.StringIO(table_str)
    reader = csv.reader(f, delimiter='|')
    
    rows = []
    for i, row in enumerate(reader):
        # Strip whitespace and filter empty strings
        cleaned_row = [item.strip() for item in row if item.strip()]
        if cleaned_row and i > 0: # Skip header line
            rows.append(cleaned_row)
    return rows

if __name__ == "__main__":
    data = """
    Name   | Age | City   
    -------|-----|--------
    Alice  | 30  | New York
    Bob    | 24  | London 
    Charlie| 35  | Paris  
    """
    
    processed_data = process_table_string(data)
    for row in processed_data:
        print(row)

Memahami Dokumen Berhierarki

Dokumen selalunya mempunyai hierarki semula jadi. Fikirkan sebuah buku yang mempunyai bab, bahagian dan subseksyen. Setiap bahagian dibina berdasarkan bahagian sebelumnya, dan maknanya sering berkait dengan konteks induknya.

Pemecahan standard mungkin memisahkan subseksyen daripada pengepala bahagian utamanya, lalu menjadikan bahagian yang diperoleh kurang bermaklumat atau mengelirukan tanpa konteks yang betul.

Mengekalkan Hierarki Dokumen

Untuk mengendalikan struktur berhierarki dengan berkesan, kita menggunakan pemecahan hierarki:

  • Sempadan Semantik: Daripada menggunakan kiraan aksara tetap, pecahkan berdasarkan pembahagian logik seperti pengepala (H1, H2, H3).
  • Konteks Induk: Sertakan tajuk bahagian induk dalam bahagian anak. Contohnya, bahagian daripada 'Bahagian 2.1' mungkin bermula dengan 'Bab 2: Pengenalan - Bahagian 2.1: Subtopik'.
  • Metadata: Simpan laluan penuh atau tahap hierarki dalam metadata bahagian tersebut.

Pemecahan Mengikut Bahagian (Python)

Contoh Python ini menunjukkan cara ringkas untuk memecahkan dokumen kepada beberapa bahagian berdasarkan pengepala gaya Markdown. Setiap bahagian akan mengandungi kandungan satu bahagian.

def chunk_by_headings(document_text):
    lines = document_text.split('\n')
    chunks = []
    current_chunk = []
    current_heading = ""

    for line in lines:
        if line.startswith('# '): # Main heading
            if current_chunk:
                chunks.append({'heading': current_heading, 'content': '\n'.join(current_chunk).strip()})
            current_heading = line.strip()
            current_chunk = [line]
        elif line.startswith('## '):
            # Sub-heading, can be part of the current chunk, or signal a new sub-chunk
            # For simplicity, we'll just add it to the current chunk content here
            # More advanced logic might create nested chunks or separate entries
            current_chunk.append(line)
        else:
            current_chunk.append(line)
    
    if current_chunk:
        chunks.append({'heading': current_heading, 'content': '\n'.join(current_chunk).strip()})
    return chunks

if __name__ == "__main__":
    doc = """
# Chapter 1: Introduction
This is the introduction text.

## Section 1.1: Background
More details about the background.

# Chapter 2: Methods
Here we describe the methods used.

## Section 2.1: Data Collection
How data was collected.
"""
    
    document_chunks = chunk_by_headings(doc)
    for i, chunk in enumerate(document_chunks):
        print(f"--- Chunk {i+1} ---")
        print(f"Heading: {chunk['heading']}")
        print(f"Content snippet: {chunk['content'][:50]}...")
        print()

Metadata untuk Konteks yang Lebih Kaya

Metadata ialah maklumat tambahan yang dilampirkan pada sesuatu bahagian untuk menerangkannya tanpa menjadi sebahagian daripada teks utama bahagian tersebut. Metadata amat berkuasa untuk dokumen kompleks.

  • Tajuk Dokumen: Daripada dokumen sumber manakah bahagian ini berasal?
  • Nombor Halaman: Di manakah kandungan ini ditemukan dalam dokumen asal?
  • Bahagian/Bab Induk: Apakah konteks lebih besar yang menjadi milik bahagian ini?
  • ID Jadual: Jika kandungan ini ialah jadual, jadual yang manakah?

Metadata membolehkan penapisan bersasar semasa pengambilan dan memberikan konteks berharga kepada LLM.

Melangkaui Pengambilan Vektor Tunggal

Untuk kandungan yang sangat kompleks, bahagian teks ringkas mungkin tidak mencukupi. Pengambilan berbilang vektor ialah teknik lanjutan yang membolehkan anda mencipta pelbagai jenis embedding untuk kandungan yang sama.

Contohnya, anda boleh mempunyai ringkasan kecil dan padat bagi jadual yang di-embed untuk pengambilan pantas, manakala kandungan jadual penuh dan terperinci disimpan secara berasingan. Sistem RAG mendapatkan ringkasan tersebut, kemudian, jika relevan, mendapatkan jadual penuh untuk dihantar kepada LLM.

Semakan Dokumen Kompleks

Anda telah mempelajari pelbagai strategi untuk mengendalikan struktur dokumen kompleks dalam RAG. Mari uji pemahaman anda.

Imbas Kembali: Menguasai Dokumen Kompleks

Tahniah! Anda telah meneroka strategi penting untuk mengendalikan struktur dokumen kompleks dalam RAG.

  • Kita melihat bagaimana jadual boleh kehilangan konteks dengan pemecahan standard dan mempelajari cara mengekstrak serta mensirikan jadual tersebut.
  • Kita membincangkan dokumen bersarang dan kepentingan pemecahan hierarki untuk mengekalkan hubungan.
  • Akhir sekali, kita menekankan keupayaan metadata untuk memperkayakan pecahan dan membolehkan pencarian semula yang lebih tepat.

Dengan menggunakan teknik ini, sistem RAG anda dapat memberikan respons yang lebih tepat dan relevan dari segi konteks, walaupun daripada dokumen yang paling rumit!

Percuma untuk bermula

Pelajari Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Mengendalikan Struktur Dokumen Kompleks” percuma?

Ya — teks penuh “Mengendalikan Struktur Dokumen Kompleks” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching), tingkat taraf kepada CoddyKit PRO. Kursus Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Mengendalikan Struktur Dokumen Kompleks”?

Laksanakan strategi untuk membahagi dan mendapatkan maklumat daripada dokumen rumit dengan berkesan, seperti jadual atau bahagian bersarang. Anda berlatih Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching)?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Mengendalikan Struktur Dokumen Kompleks” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) ini?

Ya. Setiap pelajaran Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching) menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Penulisan Semula Pertanyaan dan Penyusunan Semula
  2. Corak RAG Berbilang Peringkat dan Berasaskan Ejen
  3. Mengendalikan Struktur Dokumen Kompleks
  4. Pertanyaan Kendiri dan Petikan Sumber
← Kembali ke Aplikasi LLM dalam Pengeluaran (RAG + Pangkalan Data Vektor + Caching)