LangChain / RAG / vectordatabases · Les

Verschillende documenttypen laden

Verken de documentloaders van LangChain voor pdf's, webpagina's, databases en meer, en extraheer content voor uw RAG-systeem.

Les 1 van 410 stappen

Verschillende documenttypen laden is een gratis LangChain / RAG / vectordatabases-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject LangChain / RAG / vectordatabases. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus LangChain / RAG / vectordatabases bevat in totaal 4 lessen.

Documentladers: de eerste stap

Welkom in de wereld van LangChain! Voordat een LLM vragen over je gegevens kan beantwoorden, moet deze de gegevens eerst 'lezen'. Daarvoor zijn documentladers bedoeld.

Documentladers zijn hulpmiddelen die LangChain helpen gegevens uit verschillende bronnen op te nemen, zoals tekstbestanden, PDF's, webpagina's of databases. Ze zetten onbewerkte gegevens om in een gestandaardiseerde indeling die Document-objecten wordt genoemd.

Eenvoudige tekstbestanden laden

De eenvoudigste manier om gegevens te laden is vanuit een tekstbestand zonder opmaak. De TextLoader van LangChain is hiervoor ideaal. Deze leest de inhoud en verpakt die in een Document-object.

Voer dit voorbeeld uit om te zien hoe het werkt:

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-objecten begrijpen

Wanneer een lader gegevens verwerkt, maakt deze een of meer Document-objecten. Deze objecten zijn fundamenteel in LangChain.

  • page_content: Dit is de hoofdtekst die uit je bron is gehaald.
  • metadata: Een woordenboek met aanvullende informatie, zoals het pad naar het bronbestand, het paginanummer (voor PDF's), de URL (voor webpagina's) enzovoort. Deze metagegevens zijn erg handig voor het bijhouden en filteren!

Laders zetten uiteenlopende gegevens om naar deze consistente indeling.

PDF-documenten laden

PDF's zijn veelvoorkomende informatiebronnen. LangChain biedt de PyPDFLoader om tekst uit PDF-bestanden te halen. Deze gebruikt onderliggend de bibliotheek pypdf.

Elke pagina van een PDF wordt meestal een afzonderlijk Document-object, met metagegevens die het paginanummer aangeven.

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).")

Inhoud van webpagina's ophalen

Wil je inhoud van een website ophalen? De WebBaseLoader helpt je daarbij! Deze kan HTML-inhoud van URL's ophalen en de hoofdtekst eruit halen.

Dit is bijzonder nuttig voor RAG-systemen die actuele informatie van internet moeten opvragen.

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).")

Gegevens uit mappen laden

Wat als je veel bestanden in een map hebt? De DirectoryLoader kan een hele map met documenten in één keer verwerken!

Je kunt een glob-patroon opgeven om specifieke bestandstypen te filteren (bijvoorbeeld *.txt en *.md). De lader kan ook een specifieke lader gebruiken voor de gevonden bestanden.

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)

Laders voor databases en API's

LangChain is niet alleen bedoeld voor bestanden! Het biedt ook laders voor verschillende databases en API's:

  • SQL-databases: Laad gegevens rechtstreeks uit tabellen met SQLDatabaseLoader.
  • NoSQL-databases: Laad gegevens uit MongoDB, Cassandra en meer.
  • API's: Haal gegevens op uit REST-API's, Notion, Jira, Confluence enzovoort.

Met deze laders kun je actuele, gestructureerde gegevens in je RAG-pijplijn integreren, zodat de kennis van je LLM actueel blijft.

Meer veelgebruikte documentladers

LangChain ondersteunt een uitgebreide lijst met documenttypen. Hier zijn nog enkele populaire voorbeelden:

  • CSVLoader: Voor bestanden met door komma's gescheiden waarden.
  • JSONLoader: Voor gestructureerde JSON-gegevens.
  • MarkdownLoader: Voor Markdown-bestanden, waarbij hun structuur behouden blijft.
  • EvernoteLoader, GoogleDriveLoader, S3DirectoryLoader: Voor cloudopslag en productiviteitstoepassingen.

Dankzij de flexibiliteit van documentladers kun je vrijwel overal gegevens ophalen!

Kies de juiste lader

Je bouwt een RAG-systeem en moet gegevens uit drie bronnen opnemen: een lokale map met meerdere tekstbestanden, een PDF-gebruikershandleiding en de openbare documentatiewebsite van een bedrijf. Welke LangChain-laders zijn het meest geschikt voor elke bron?

Samenvatting: uiteenlopende gegevens laden

In deze les heb je geleerd over de cruciale rol van documentladers in LangChain. Deze hulpmiddelen zijn de eerste stap om je gegevens in een toepassing op basis van een LLM te krijgen.

  • We hebben laders voor tekstbestanden, PDF's en webpagina's bekeken.
  • Je hebt gezien hoe Document-objecten gegevens standaardiseren met page_content en metadata.
  • We hebben ook het laden uit mappen, databases en andere uiteenlopende bronnen behandeld.

Het beheersen van het laden van documenten is essentieel voor het bouwen van krachtige RAG-systemen die toegang hebben tot een breed scala aan informatie en deze kunnen begrijpen!

Gratis beginnen

Leer LangChain / RAG / vectordatabases met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Verschillende documenttypen laden” gratis?

Ja — de volledige tekst van “Verschillende documenttypen laden” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus LangChain / RAG / vectordatabases wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus LangChain / RAG / vectordatabases bevat in totaal 4 lessen.

Wat leer ik in “Verschillende documenttypen laden”?

Verken de documentloaders van LangChain voor pdf's, webpagina's, databases en meer, en extraheer content voor uw RAG-systeem. Je oefent met LangChain / RAG / vectordatabases door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met LangChain / RAG / vectordatabases te beginnen?

Ervaring vooraf is niet nodig. LangChain / RAG / vectordatabases op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Verschillende documenttypen laden”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over LangChain / RAG / vectordatabases?

Ja. Elke les over LangChain / RAG / vectordatabases bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Verschillende documenttypen laden
  2. Strategieën voor het splitsen van tekst begrijpen
  3. Het splitsen van documenten aanpassen
  4. Documentmetadata en filtering verwerken
← Terug naar LangChain / RAG / vectordatabases