Lataajat, jakajat ja vektorivarastot
Käyttäkää DocumentLoaders-lataajia PDF- ja HTML-tiedostoihin, TextSplitters-jakajia pilkontaan ja VectorStores-vektorivarastoja hakuun.
Lataajat, jakajat ja vektorivarastot on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Osaa tämän oppitunnin sisällöstä ei ole vielä käännetty, joten se näytetään englanniksi.
LangChainin RAG:n kolme pilaria
- Dokumenttien lataajat — lukevat raakadatasta Document-objekteja
- Tekstin jakajat — jakavat Document-objektit osiin
- Vektorivarastot — upottavat ja indeksoivat osat
Dokumenttien lataajat
LangChain sisältää yli 100 lataajaa. Esimerkkejä:
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()Document-objekti
Jokainen lataaja palauttaa luettelon Document-objekteja:
doc = pdf_docs[0]
print(doc.page_content) # the text
print(doc.metadata) # {'source': 'handbook.pdf', 'page': 1}Yleiset lataajat
- PyPDFLoader, UnstructuredFileLoader — PDF-tiedostot
- WebBaseLoader, SitemapLoader — verkkosivut
- NotionLoader, GoogleDriveLoader — SaaS-palvelut
- GitLoader — koodivarastot
- SQLDatabaseLoader — tietokantarivit
Tekstin jakajat
Muunna Document-objektit pienemmiksi osiksi:
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
chunk_size=800,
chunk_overlap=100,
separators=['\n\n', '\n', '. ', ' ']
)
chunks = splitter.split_documents(pdf_docs)Erikoistuneet jakajat
- MarkdownHeaderTextSplitter — jakaa otsikoiden perusteella
- RecursiveCharacterTextSplitter — huomioi kappaleet ja lauseet
- HTMLHeaderTextSplitter — huomioi HTML-rakenteen
- Kielikohtaiset (Python, Markdown, LaTeX)
Tokeneihin perustuva jako
Käyttäkää mallin tokenisaattoria tarkasti tokeneihin perustuviin jakoihin:
splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
encoding_name='cl100k_base',
chunk_size=400,
chunk_overlap=50
)Vektorivarastot
Upottakaa ja tallentakaa osat:
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])Pysyvyys
Chroma tallentaa tiedot levylle, jos annatte sille persist_directory-hakemiston. Ladataaksenne tiedot uudelleen:
store = Chroma(persist_directory='./db', embedding_function=embeddings)Muut vektorivarastot
Sama rajapinta, eri taustajärjestelmä:
from langchain_community.vectorstores import FAISS, Pinecone, Qdrant, Weaviate
store = FAISS.from_documents(chunks, embeddings)
store.save_local('./faiss_db')MultiVectorRetriever
Indeksoikaa pienet osat, mutta hakekaa suuremmat pääosat:
from langchain.retrievers import MultiVectorRetriever
# Use the parent-child pattern automatically.Self-Query Retrieverit
Antakaa LLM:n tuottaa metadatansuodattimet luonnollisen kielen perusteella:
from langchain.retrievers.self_query.base import SelfQueryRetriever
# 'What did Alice say in 2023?' -> filter={author: 'Alice', year: 2023}Retrieverin tulos
Mitä LangChainin retriever palauttaa?
Kertaus
Lataajat + jakajat + vektorivarastot = kokonainen RAG-pino. Seuraavaksi: niiden yhdistäminen LCEL:llä täydelliseksi ketjuksi.
Opi Tekoälyagentit tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 60
- Oppitunnit
- 239
Usein kysytyt kysymykset
Onko oppitunti ”Lataajat, jakajat ja vektorivarastot” ilmainen?
Kyllä – oppitunnin ”Lataajat, jakajat ja vektorivarastot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Lataajat, jakajat ja vektorivarastot”?
Käyttäkää DocumentLoaders-lataajia PDF- ja HTML-tiedostoihin, TextSplitters-jakajia pilkontaan ja VectorStores-vektorivarastoja hakuun. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Lataajat, jakajat ja vektorivarastot”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit-oppitunnilla?
Kyllä. Jokainen Tekoälyagentit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- LangChain-arkkitehtuuri: mallit, kehotteet ja ketjut
- Lataajat, jakajat ja vektorivarastot
- LCEL (LangChain Expression Language)
- RAG-ketjun rakentaminen alusta loppuun