LangChain / RAG / vektoritietokannat · Oppitunti

Erilaisten dokumenttityyppien lataaminen

Tutustu LangChainin dokumenttilataajiin PDF-tiedostoille, verkkosivuille, tietokannoille ja muille lähteille sekä poimi sisältöä RAG-järjestelmääsi.

Oppitunti 1/410 vaihetta

Erilaisten dokumenttityyppien lataaminen on ilmainen LangChain / RAG / vektoritietokannat-oppitunti CoddyKitissä. Tämä on oppitunti 1/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 LangChain / RAG / vektoritietokannat-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. LangChain / RAG / vektoritietokannat-kurssilla on yhteensä 4 oppituntia.

Dokumenttilataajat: ensimmäinen vaihe

Tervetuloa LangChainin maailmaan! Ennen kuin LLM-malli voi vastata dataanne koskeviin kysymyksiin, sen täytyy ensin ”lukea” data. Tässä dokumenttilataajat astuvat kuvaan.

Dokumenttilataajat ovat työkaluja, joiden avulla LangChain voi tuoda dataa eri lähteistä, kuten tekstitiedostoista, PDF-tiedostoista, verkkosivuista tai tietokannoista. Ne muuntavat raakadatan vakiomuotoon, jota kutsutaan Document-objekteiksi.

Yksinkertaisten tekstitiedostojen lataaminen

Yksinkertaisin tapa ladata dataa on lukea se tavallisesta tekstitiedostosta. LangChainin TextLoader sopii tähän erinomaisesti. Se lukee sisällön ja käärii sen Document-objektiksi.

Kokeilkaa tämän esimerkin suorittamista nähdäksenne, miten se toimii:

import os
from langchain_community.document_loaders import TextLoader

# Create a dummy text file for demonstration
file_content = "Hello CoddyKit learners!\nThis is a sample text file."
file_path = "sample.txt"
with open(file_path, "w") as f:
    f.write(file_content)

# Initialize the TextLoader with the file path
loader = TextLoader(file_path)

# Load the documents
documents = loader.load()

# Print the content of the first document
if documents:
    print(f"Loaded content:\n{documents[0].page_content}")
    print(f"Source: {documents[0].metadata.get('source')}")

# Clean up the dummy file
os.remove(file_path)

Document-objektien ymmärtäminen

Kun lataaja käsittelee dataa, se luo yhden tai useamman Document-objektin. Nämä objektit ovat LangChainin perusta.

  • page_content: Lähteestä poimittu pääteksti.
  • metadata: Lisätietoja sisältävä sanakirja, joka voi sisältää esimerkiksi lähdetiedoston polun, sivunumeron (PDF-tiedostoissa), URL-osoitteen (verkkosivuilla) ja muita tietoja. Metatiedot ovat erittäin hyödyllisiä seurannassa ja suodatuksessa!

Lataajat yhdenmukaistavat erilaiset tiedot tähän yhtenäiseen muotoon.

PDF-dokumenttien lataaminen

PDF-tiedostot ovat yleisiä tietolähteitä. LangChain tarjoaa PyPDFLoader-lataajan tekstin poimimiseen PDF-tiedostoista. Se käyttää taustalla pypdf-kirjastoa.

PDF-tiedoston jokaisesta sivusta muodostetaan yleensä erillinen Document-objekti, jonka metatiedoissa ilmoitetaan sivunumero.

from langchain_community.document_loaders import PyPDFLoader

# To use PyPDFLoader, you'd typically have a PDF file.
# For example, let's imagine 'my_report.pdf' exists.
# loader = PyPDFLoader("my_report.pdf")
# documents = loader.load()

print("PyPDFLoader is used to load text from PDF files.")
print("It often creates one Document per PDF page.")
print("Requires 'pypdf' library (pip install pypdf).")

Verkkosivun sisällön poimiminen

Tarvitsetteko sisältöä verkkosivustolta? WebBaseLoader auttaa! Se voi noutaa HTML-sisältöä URL-osoitteista ja poimia päätekstin.

Tämä on erittäin hyödyllistä RAG-järjestelmissä, joiden on haettava ajantasaista tietoa internetistä.

from langchain_community.document_loaders import WebBaseLoader

# To use WebBaseLoader, you provide a list of URLs.
# loader = WebBaseLoader(["https://www.example.com"])
# documents = loader.load()

print("WebBaseLoader fetches content from specified URLs.")
print("It's great for pulling information from websites.")
print("Requires 'bs4' and 'requests' (pip install beautifulsoup4 requests).")

Lataaminen hakemistoista

Mitä jos kansiossa on paljon tiedostoja? DirectoryLoader voi käsitellä kokonaisen dokumenttihakemiston kerralla!

Voitte määrittää glob-kuvion tiettyjen tiedostotyyppien suodattamista varten (esimerkiksi *.txt ja *.md). Se voi myös käyttää löytyville tiedostoille tiettyä lataajaa.

import os
import shutil
from langchain_community.document_loaders import DirectoryLoader, TextLoader

# Create a dummy directory and files
dir_path = "temp_docs"
os.makedirs(dir_path, exist_ok=True)
with open(os.path.join(dir_path, "doc1.txt"), "w") as f:
    f.write("Content of document 1.")
with open(os.path.join(dir_path, "doc2.txt"), "w") as f:
    f.write("Content of document 2.")

# Initialize DirectoryLoader for .txt files
loader = DirectoryLoader(
    dir_path, glob="*.txt", loader_cls=TextLoader
)

# Load documents from the directory
documents = loader.load()

print(f"Found {len(documents)} documents in '{dir_path}'.")
for i, doc in enumerate(documents):
    print(f"Doc {i+1}: {doc.page_content}")

# Clean up the dummy directory
shutil.rmtree(dir_path)

Tietokanta- ja API-lataajat

LangChain ei ole tarkoitettu vain tiedostoille! Se tarjoaa lataajia myös erilaisille tietokannoille ja API-rajapinnoille:

  • SQL-tietokannat: Lataa dataa suoraan tauluista SQLDatabaseLoader-lataajan avulla.
  • NoSQL-tietokannat: Lataa dataa MongoDB:stä, Cassandrasta ja muista lähteistä.
  • API:t: Nouda dataa REST API -rajapinnoista, Notionista, Jirasta, Confluencesta ja muista lähteistä.

Näiden lataajien avulla voitte integroida reaaliaikaista, jäsenneltyä dataa RAG-putkeenne ja pitää LLM-mallin tiedot ajan tasalla.

Muita yleisiä dokumenttilataajia

LangChain tukee laajaa valikoimaa dokumenttityyppejä. Tässä on muutamia muita suosittuja vaihtoehtoja:

  • CSVLoader: Pilkuilla erotelluille arvotiedostoille.
  • JSONLoader: Jäsennellylle JSON-datalle.
  • MarkdownLoader: Markdown-tiedostoille niiden rakennetta säilyttäen.
  • EvernoteLoader, GoogleDriveLoader, S3DirectoryLoader: Pilvitallennukseen ja tuottavuussovelluksiin.

Dokumenttilataajien joustavuuden ansiosta voitte tuoda dataa lähes mistä tahansa!

Valitkaa oikea lataaja

Olette rakentamassa RAG-järjestelmää ja tarvitsette dataa kolmesta lähteestä: paikallisesta kansiosta, jossa on useita tekstitiedostoja, PDF-muotoisesta käyttöoppaasta sekä yrityksen julkiselta dokumentaatiosivustolta. Mitkä LangChain-lataajat sopisivat parhaiten kuhunkin lähteeseen?

Kertaus: monipuolisen datan lataaminen

Tässä oppitunnissa opitte dokumenttilataajien tärkeästä roolista LangChainissa. Nämä työkalut ovat ensimmäinen vaihe datan tuomisessa LLM-pohjaiseen sovellukseen.

  • Tutustuimme tekstitiedostojen, PDF-tiedostojen ja verkkosivujen lataajiin.
  • Näitte, kuinka Document-objektit yhdenmukaistavat datan page_content- ja metadata-kenttien avulla.
  • Tarkastelimme myös datan lataamista hakemistoista, tietokannoista ja muista monipuolisista lähteistä.

Dokumenttien lataamisen hallitseminen on avain tehokkaiden RAG-järjestelmien rakentamiseen, jotta ne voivat käyttää ja ymmärtää monenlaista tietoa!

Aloita maksutta

Opi LangChain / RAG / vektoritietokannat 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
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Erilaisten dokumenttityyppien lataaminen” ilmainen?

Kyllä – oppitunnin ”Erilaisten dokumenttityyppien lataaminen” 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 LangChain / RAG / vektoritietokannat-kurssin, päivitä CoddyKit PROhon. LangChain / RAG / vektoritietokannat-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Erilaisten dokumenttityyppien lataaminen”?

Tutustu LangChainin dokumenttilataajiin PDF-tiedostoille, verkkosivuille, tietokannoille ja muille lähteille sekä poimi sisältöä RAG-järjestelmääsi. Harjoittelet LangChain / RAG / vektoritietokannat-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni LangChain / RAG / vektoritietokannat-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin LangChain / RAG / vektoritietokannat-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Erilaisten dokumenttityyppien lataaminen”-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ä LangChain / RAG / vektoritietokannat-oppitunnilla?

Kyllä. Jokainen LangChain / RAG / vektoritietokannat-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. Erilaisten dokumenttityyppien lataaminen
  2. Tekstin jakamisen strategioiden ymmärtäminen
  3. Dokumenttien jaon mukauttaminen
  4. Dokumenttien metatietojen käsittely ja suodatus
← Takaisin: LangChain / RAG / vektoritietokannat