LangChain / RAG / Pangkalan Data Vektor · Pelajaran

Dapatan Dokumen Induk dan Tetingkap Ayat

Pisahkan cebisan yang anda cari daripada cebisan yang anda pulangkan supaya LLM mendapat padanan tepat dengan konteks yang kaya.

Pelajaran 4 daripada 413 langkah

Dapatan Dokumen Induk dan Tetingkap Ayat ialah pelajaran LangChain / RAG / Pangkalan Data Vektor percuma di CoddyKit. Ini ialah pelajaran 4 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 LangChain / RAG / Pangkalan Data Vektor, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus LangChain / RAG / Pangkalan Data Vektor merangkumi sejumlah 4 pelajaran.

Dilema Saiz Cebisan

Cebisan kecil membolehkan carian yang tepat tetapi kekurangan konteks; cebisan besar memberikan konteks tetapi mencairkan kerelevanan. Pendapatan semula dokumen induk menyelesaikan pertentangan ini dengan mencari cebisan kecil dan mengembalikan cebisan besar.

Dua Saiz Cebisan

Indekskan cebisan anak yang kecil untuk padanan kesamaan yang tepat, tetapi kekalkan pautan kepada cebisan induk yang lebih besar dan mengelilingi setiap cebisan tersebut.

  • Cari menggunakan pembenaman anak
  • Kembalikan teks induk kepada LLM

ParentDocumentRetriever

LangChain menyediakan pemuat semula yang sedia digunakan. Anda memberikannya pemisah anak, pemisah induk pilihan, stor vektor dan stor dokumen untuk induk.

from langchain.retrievers import ParentDocumentRetriever

retriever = ParentDocumentRetriever(
    vectorstore=vectorstore,
    docstore=store,
    child_splitter=child_splitter,
    parent_splitter=parent_splitter,
)

Menambah Dokumen

Pemuat semula memisahkan setiap dokumen kepada induk dan anak, melakukan pembenaman terhadap anak, kemudian menyimpan induk berdasarkan id supaya induk itu boleh diambil apabila terdapat padanan.

retriever.add_documents(docs)
results = retriever.invoke("What is the refund window?")
print(len(results[0].page_content))  # large parent text

Pendapatan Semula Tetingkap Ayat

Satu variasi mengindeks ayat tunggal tetapi, semasa pendapatan semula, mengembangkan setiap padanan untuk merangkumi ayat di sekelilingnya. Model melihat padanan tepat serta ayat jirannya.

Menyimpan Tetingkap

Semasa pengindeksan, anda menyimpan teks bersebelahan dalam metadata supaya teks itu boleh dicantumkan semula pada masa pertanyaan.

doc.metadata["window"] = " ".join(
    sentences[max(0, i-2): i+3]
)
doc.page_content = sentences[i]

Menukar Kandungan Selepas Carian

Selepas carian kesamaan mengembalikan ayat yang sepadan, gantikan kandungannya dengan tetingkap yang disimpan sebelum menyerahkannya kepada LLM.

for r in results:
    r.page_content = r.metadata["window"]

Bila Menggunakan Setiap Kaedah

Dokumen induk sesuai untuk dokumen berstruktur dengan bahagian semula jadi. Tetingkap ayat sesuai untuk prosa padat yang mengutamakan ayat yang tepat.

Mengelakkan Induk Pendua

Beberapa padanan anak boleh dipetakan kepada induk yang sama. Buang pendua berdasarkan id induk supaya LLM tidak menerima petikan yang sama dua kali.

seen = set()
unique = []
for d in results:
    pid = d.metadata["parent_id"]
    if pid not in seen:
        seen.add(pid)
        unique.append(d)

Kos dan Had Konteks

Mengembalikan induk yang lebih besar menggunakan lebih banyak ruang tetingkap konteks LLM. Seimbangkan saiz induk dengan bajet token anda dan bilangan hasil k.

Menggabungkan Semuanya

Indekskan anak yang terperinci, lakukan pendapatan semula dengan tepat, kemudian kembangkan kepada induk atau tetingkap. Langkah penjanaan anda menerima petikan yang terfokus namun mempunyai konteks.

docs = retriever.invoke("cancellation terms")
context = "\n\n".join(d.page_content for d in docs)
answer = llm.invoke(f"Context:\n{context}\n\nQuestion: ...")

Semakan Pantas

Uji pemahaman anda tentang pendapatan semula terpisah.

Ringkasan

Anda telah belajar memisahkan carian daripada unit yang dikembalikan:

  • Dokumen induk: cari anak, kembalikan induk
  • Tetingkap ayat: padankan ayat, kembangkan kepada ayat jiran
  • Buang pendua induk dan awasi had konteks
Percuma untuk bermula

Pelajari LangChain / RAG / Pangkalan Data Vektor 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 “Dapatan Dokumen Induk dan Tetingkap Ayat” percuma?

Ya — teks penuh “Dapatan Dokumen Induk dan Tetingkap Ayat” 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 LangChain / RAG / Pangkalan Data Vektor, tingkat taraf kepada CoddyKit PRO. Kursus LangChain / RAG / Pangkalan Data Vektor merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Dapatan Dokumen Induk dan Tetingkap Ayat”?

Pisahkan cebisan yang anda cari daripada cebisan yang anda pulangkan supaya LLM mendapat padanan tepat dengan konteks yang kaya. Anda berlatih LangChain / RAG / Pangkalan Data Vektor 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 LangChain / RAG / Pangkalan Data Vektor?

Tiada pengalaman terdahulu diperlukan. Pembelajaran LangChain / RAG / Pangkalan Data Vektor 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 4 daripada 4.

Berapa lamakah pelajaran “Dapatan Dokumen Induk dan Tetingkap Ayat” 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 LangChain / RAG / Pangkalan Data Vektor ini?

Ya. Setiap pelajaran LangChain / RAG / Pangkalan Data Vektor 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. Strategi Pengambilan Berbilang Pertanyaan
  2. Pemampatan Kontekstual dengan LLM
  3. Carian Hibrid dan Pemeringkatan Semula
  4. Dapatan Dokumen Induk dan Tetingkap Ayat
← Kembali ke LangChain / RAG / Pangkalan Data Vektor