AI Agents · บทเรียน

ตัวโหลด ตัวแบ่ง และคลังเวกเตอร์

ใช้ DocumentLoaders สำหรับ PDF/HTML, TextSplitters สำหรับแบ่งข้อมูล และ VectorStores สำหรับการค้นคืน

บทเรียน 2 จาก 415 ขั้นตอน

ตัวโหลด ตัวแบ่ง และคลังเวกเตอร์ เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

สามเสาหลักของ RAG ใน LangChain

  1. ตัวโหลดเอกสาร — อ่านข้อมูลดิบเป็น Documents
  2. ตัวแบ่งข้อความ — แบ่ง Documents เป็นส่วนย่อย
  3. คลังเวกเตอร์ — แปลงส่วนย่อยเป็นเวกเตอร์ฝังตัวและทำดัชนี

ตัวโหลดเอกสาร

LangChain มีตัวโหลดมากกว่า 100 รายการ ตัวอย่างเช่น:

from langchain_community.document_loaders import PyPDFLoader, WebBaseLoader, TextLoader

pdf_docs = PyPDFLoader('handbook.pdf').load()
web_docs = WebBaseLoader('https://example.com').load()
md_docs = TextLoader('README.md').load()

ออบเจ็กต์เอกสาร

ตัวโหลดทุกตัวส่งคืนรายการของ Documents:

doc = pdf_docs[0]
print(doc.page_content)   # the text
print(doc.metadata)       # {'source': 'handbook.pdf', 'page': 1}

ตัวโหลดที่ใช้บ่อย

  • PyPDFLoader, UnstructuredFileLoader — ไฟล์ PDF
  • WebBaseLoader, SitemapLoader — หน้าเว็บ
  • NotionLoader, GoogleDriveLoader — บริการซอฟต์แวร์บนคลาวด์
  • GitLoader — คลังโค้ด
  • ตัวโหลดแถวจากฐานข้อมูล — แถวในฐานข้อมูล

ตัวแบ่งข้อความ

แปลง Documents เป็นส่วนย่อยที่เล็กลง:

from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=800,
    chunk_overlap=100,
    separators=['\n\n', '\n', '. ', ' ']
)
chunks = splitter.split_documents(pdf_docs)

ตัวแบ่งเฉพาะทาง

  • MarkdownHeaderTextSplitter — แบ่งตามหัวข้อ
  • RecursiveCharacterTextSplitter — คำนึงถึงย่อหน้าและประโยค
  • ตัวแบ่งข้อความตามหัวข้อ HTML — คำนึงถึงโครงสร้าง HTML
  • แบบเฉพาะภาษา (ไพธอน, Markdown, LaTeX)

การแบ่งที่คำนึงถึงโทเค็น

ใช้ตัวตัดโทเค็นของโมเดลเพื่อแบ่งให้ตรงตามโทเค็นอย่างแม่นยำ:

splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
    encoding_name='cl100k_base',
    chunk_size=400,
    chunk_overlap=50
)

คลังเวกเตอร์

แปลงส่วนย่อยเป็นเวกเตอร์ฝังตัวและจัดเก็บ:

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma

embeddings = OpenAIEmbeddings(model='text-embedding-3-small')
store = Chroma.from_documents(
    documents=chunks,
    embedding=embeddings,
    persist_directory='./db'
)

Retrieval

retriever = store.as_retriever(search_kwargs={'k': 4})
results = retriever.invoke('What is our return policy?')
for d in results:
    print(d.page_content[:200])

การคงอยู่

Chroma จะคงข้อมูลไว้ในดิสก์หากคุณกำหนด persist_directory หากต้องการโหลดกลับมา:

store = Chroma(persist_directory='./db', embedding_function=embeddings)

คลังเวกเตอร์อื่น ๆ

อินเทอร์เฟซเดียวกัน แต่ใช้ระบบเบื้องหลังต่างกัน:

from langchain_community.vectorstores import FAISS, Pinecone, Qdrant, Weaviate

store = FAISS.from_documents(chunks, embeddings)
store.save_local('./faiss_db')

MultiVectorRetriever

ทำดัชนีส่วนย่อยขนาดเล็ก แต่ดึงเอกสารต้นทางขนาดใหญ่:

from langchain.retrievers import MultiVectorRetriever
# Use the parent-child pattern automatically.

ตัวดึงข้อมูลแบบสร้างคำค้นเอง

ให้ LLM สร้างตัวกรองข้อมูลกำกับจากภาษาธรรมชาติ:

from langchain.retrievers.self_query.base import SelfQueryRetriever
# 'What did Alice say in 2023?' -> filter={author: 'Alice', year: 2023}

ผลลัพธ์จากตัวดึงข้อมูล

ตัวดึงข้อมูลของ LangChain ส่งคืนอะไร

สรุปทบทวน

ตัวโหลด + ตัวแบ่งข้อความ + คลังเวกเตอร์ = ชุดเครื่องมือ RAG ครบวงจร ต่อไป: ประกอบสิ่งเหล่านี้ด้วย LCEL ให้เป็นเชนครบถ้วน

เริ่มต้นได้ฟรี

เรียนรู้ AI Agents ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
60
บทเรียน
239

คำถามที่พบบ่อย

บทเรียน “ตัวโหลด ตัวแบ่ง และคลังเวกเตอร์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ตัวโหลด ตัวแบ่ง และคลังเวกเตอร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ตัวโหลด ตัวแบ่ง และคลังเวกเตอร์”

ใช้ DocumentLoaders สำหรับ PDF/HTML, TextSplitters สำหรับแบ่งข้อมูล และ VectorStores สำหรับการค้นคืน คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ตัวโหลด ตัวแบ่ง และคลังเวกเตอร์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สถาปัตยกรรม LangChain: โมเดล พรอมต์ และสายงาน
  2. ตัวโหลด ตัวแบ่ง และคลังเวกเตอร์
  3. LCEL (ภาษานิพจน์ของ LangChain)
  4. การสร้างสายงาน RAG ตั้งแต่ต้นจนจบ
← กลับไปที่ AI Agents