Tekoälyagentit · Oppitunti

Lataajat, jakajat ja vektorivarastot

Käyttäkää DocumentLoaders-lataajia PDF- ja HTML-tiedostoihin, TextSplitters-jakajia pilkontaan ja VectorStores-vektorivarastoja hakuun.

Oppitunti 2/415 vaihetta

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

  1. Dokumenttien lataajat — lukevat raakadatasta Document-objekteja
  2. Tekstin jakajat — jakavat Document-objektit osiin
  3. 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.

Aloita maksutta

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

  1. LangChain-arkkitehtuuri: mallit, kehotteet ja ketjut
  2. Lataajat, jakajat ja vektorivarastot
  3. LCEL (LangChain Expression Language)
  4. RAG-ketjun rakentaminen alusta loppuun
← Takaisin: Tekoälyagentit