LangChain / RAG / vektordatabaser · Lektion

Läsa in olika dokumenttyper

Utforska LangChains dokumentinläsare för PDF-filer, webbsidor, databaser med mera och extrahera innehåll till ditt RAG-system.

Lektion 1 av 410 steg

Läsa in olika dokumenttyper är en gratis lektion i LangChain / RAG / vektordatabaser på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för LangChain / RAG / vektordatabaser, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i LangChain / RAG / vektordatabaser innehåller totalt 4 lektioner.

Dokumentladdare: det första steget

Välkommen till LangChains värld! Innan en LLM kan besvara frågor om Era data måste den först ”läsa” dem. Det är här Document Loaders kommer in.

Dokumentladdare är verktyg som hjälper LangChain att läsa in data från olika källor, till exempel textfiler, PDF-filer, webbsidor eller databaser. De omvandlar rådata till ett standardiserat format som kallas Document-objekt.

Ladda enkla textfiler

Det enklaste sättet att läsa in data är från en vanlig textfil. LangChains TextLoader passar perfekt för detta. Den läser innehållet och kapslar in det i ett Document-objekt.

Prova att köra det här exemplet för att se hur det fungerar:

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)

Förstå Document-objekt

När en laddare bearbetar data skapar den ett eller flera Document-objekt. Dessa objekt är grundläggande i LangChain.

  • page_content: Huvudtexten som extraherats från källan.
  • metadata: En dictionary med ytterligare information, till exempel källfilens sökväg, sidnummer (för PDF-filer), URL (för webbsidor) med mera. Dessa metadata är mycket användbara för spårning och filtrering!

Laddare standardiserar olika typer av data till detta enhetliga format.

Ladda PDF-dokument

PDF-filer är vanliga informationskällor. LangChain tillhandahåller PyPDFLoader för att extrahera text från PDF-filer. Den använder biblioteket pypdf i bakgrunden.

Varje sida i en PDF-fil blir vanligtvis ett separat Document-objekt med metadata som anger sidnumret.

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

Extrahera innehåll från webbsidor

Behöver Ni hämta innehåll från en webbplats? WebBaseLoader hjälper Er! Den kan hämta HTML-innehåll från URL:er och extrahera huvudtexten.

Detta är mycket användbart för RAG-system som behöver hämta aktuell information från internet.

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

Ladda från kataloger

Vad gör Ni om Ni har många filer i en mapp? DirectoryLoader kan bearbeta en hel dokumentkatalog på en gång!

Ni kan ange ett glob-mönster för att filtrera fram specifika filtyper (t.ex. *.txt och *.md). Den kan även använda en specifik laddare för de filer som hittas.

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)

Laddare för databaser och API:er

LangChain är inte bara till för filer! Det erbjuder även laddare för olika databaser och API:er:

  • SQL-databaser: Läs in data direkt från tabeller med SQLDatabaseLoader.
  • NoSQL-databaser: Läs in data från MongoDB, Cassandra med flera.
  • API:er: Hämta data från REST-API:er, Notion, Jira, Confluence med flera.

Dessa laddare låter Er integrera levande, strukturerade data i Er RAG-pipeline och hålla LLM:ens kunskap uppdaterad.

Fler vanliga dokumentladdare

LangChain stöder en omfattande lista över dokumenttyper. Här är några fler populära alternativ:

  • CSVLoader: För kommaseparerade filer.
  • JSONLoader: För strukturerade JSON-data.
  • MarkdownLoader: För Markdown-filer, där strukturen bevaras.
  • EvernoteLoader, GoogleDriveLoader, S3DirectoryLoader: För molnlagring och produktivitetsappar.

Dokumentladdarnas flexibilitet innebär att Ni kan hämta data nästan var som helst ifrån!

Välj rätt laddare

Ni bygger ett RAG-system och behöver läsa in data från tre källor: en lokal mapp med flera textfiler, en PDF-användarhandbok och ett företags offentliga dokumentationswebbplats. Vilka LangChain-laddare passar bäst för respektive källa?

Sammanfattning: läsa in olika typer av data

I den här lektionen har Ni lärt Er vilken viktig roll Document Loaders har i LangChain. Dessa verktyg är det första steget när Ni för in Era data i en LLM-driven applikation.

  • Vi utforskade laddare för textfiler, PDF-filer och webbsidor.
  • Ni såg hur Document-objekt standardiserar data med page_content och metadata.
  • Vi berörde även inläsning från kataloger, databaser och andra olika källor.

Att behärska dokumentinläsning är avgörande för att bygga kraftfulla RAG-system som kan komma åt och förstå ett brett spektrum av information!

Gratis att börja

Lär dig LangChain / RAG / vektordatabaser med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Läsa in olika dokumenttyper” gratis?

Ja – hela texten till ”Läsa in olika dokumenttyper” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i LangChain / RAG / vektordatabaser, kan Ni uppgradera till CoddyKit PRO. Kursen i LangChain / RAG / vektordatabaser innehåller totalt 4 lektioner.

Vad lär jag mig i ”Läsa in olika dokumenttyper”?

Utforska LangChains dokumentinläsare för PDF-filer, webbsidor, databaser med mera och extrahera innehåll till ditt RAG-system. Ni övar på LangChain / RAG / vektordatabaser med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig LangChain / RAG / vektordatabaser?

Du behöver inga förkunskaper. Utbildningen i LangChain / RAG / vektordatabaser på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Läsa in olika dokumenttyper”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här LangChain / RAG / vektordatabaser-lektionen?

Ja. Varje LangChain / RAG / vektordatabaser-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Läsa in olika dokumenttyper
  2. Förstå strategier för textdelning
  3. Anpassa dokumentdelning
  4. Hantera dokumentmetadata och filtrering
← Tillbaka till LangChain / RAG / vektordatabaser