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
- Loadery dokumentów — odczytują surowe dane do obiektów Documents
- Dzielniki tekstu — dzielą obiekty Documents na fragmenty
- 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
- Architektura LangChain: modele, prompty, łańcuchy
- Loadery, splittery i magazyny wektorowe
- LCEL (LangChain Expression Language)
- Budowanie łańcucha RAG od początku do końca