0Pricing
AI Agents · Lekcja

Loadery, splittery i magazyny wektorowe

Używaj DocumentLoaders do plików PDF/HTML, TextSplitters do dzielenia tekstu na fragmenty oraz VectorStores do wyszukiwania.

Loadery, splittery i magazyny wektorowe to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Trzy filary RAG w LangChain

  1. Loadery dokumentów — odczytują surowe dane do obiektów Documents
  2. Dzielniki tekstu — dzielą obiekty Documents na fragmenty
  3. Magazyny wektorowe — generują embeddingi fragmentów i indeksują je

Loadery dokumentów

LangChain ma ponad 100 loaderów. Przykłady:

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()

Obiekt Document

Każdy loader zwraca listę obiektów Documents:

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

Popularne loadery

  • PyPDFLoader, UnstructuredFileLoader — pliki PDF
  • WebBaseLoader, SitemapLoader — strony internetowe
  • NotionLoader, GoogleDriveLoader — usługi SaaS
  • GitLoader — repozytoria kodu
  • SQLDatabaseLoader — wiersze z bazy danych

Dzielniki tekstu

Konwertują obiekty Documents na mniejsze fragmenty:

from langchain.text_splitter import RecursiveCharacterTextSplitter

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

Wyspecjalizowane dzielniki

  • MarkdownHeaderTextSplitter — dzieli według nagłówków
  • RecursiveCharacterTextSplitter — uwzględnia akapity i zdania
  • HTMLHeaderTextSplitter — uwzględnia strukturę HTML
  • Wersje zależne od języka (Python, Markdown, LaTeX)

Dzielenie z uwzględnieniem tokenów

Użyj tokenizera modelu, aby dzielić tekst z dokładnością do tokena:

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

Magazyny wektorowe

Generuj embeddingi fragmentów i przechowuj je:

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])

Trwałość danych

Chroma zapisuje dane na dysku, jeśli przekażesz jej persist_directory. Aby je ponownie wczytać:

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

Inne magazyny wektorowe

Ten sam interfejs, inny backend:

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

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

MultiVectorRetriever

Indeksuj małe fragmenty, ale pobieraj większe dokumenty nadrzędne:

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

Retrievery z samodzielnym tworzeniem zapytań

Pozwól modelowi LLM generować filtry metadanych na podstawie języka naturalnego:

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

Wynik retrievera

Co zwraca retriever LangChain?

Podsumowanie

Loadery + dzielniki + magazyny wektorowe = kompletny stos RAG. Dalej: połączenie ich za pomocą LCEL w kompletny łańcuch.

Często zadawane pytania

Czy lekcja „Loadery, splittery i magazyny wektorowe” jest bezpłatna?

Tak — pełny tekst „Loadery, splittery i magazyny wektorowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Loadery, splittery i magazyny wektorowe”?

Używaj DocumentLoaders do plików PDF/HTML, TextSplitters do dzielenia tekstu na fragmenty oraz VectorStores do wyszukiwania. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Loadery, splittery i magazyny wektorowe”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Architektura LangChain: modele, prompty, łańcuchy
  2. Loadery, splittery i magazyny wektorowe
  3. LCEL (LangChain Expression Language)
  4. Budowanie łańcucha RAG od początku do końca
← Powrót do AI Agents