Chargement de différents types de documents
Explorez les chargeurs de documents de LangChain pour les PDF, les pages web, les bases de données et bien plus encore, afin d’en extraire le contenu pour votre système RAG.
Chargement de différents types de documents est une leçon LangChain / RAG / Vector DBs gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage LangChain / RAG / Vector DBs, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours LangChain / RAG / Vector DBs comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Document Loaders: The First Step
Welcome to the world of LangChain! Before an LLM can answer questions about your data, it needs to 'read' it. This is where Document Loaders come in.
Document loaders are tools that help LangChain ingest data from various sources like text files, PDFs, web pages, or databases. They convert raw data into a standardized format called Document objects.
Loading Simple Text Files
The simplest way to load data is from a plain text file. LangChain's TextLoader is perfect for this. It reads the content and wraps it into a Document object.
Try running this example to see how it works:
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)Understanding Document Objects
When a loader processes data, it creates one or more Document objects. These objects are fundamental in LangChain.
page_content: This is the main text extracted from your source.metadata: A dictionary containing additional information like the source file path, page number (for PDFs), URL (for web pages), etc. This metadata is super useful for tracking and filtering!
Loaders standardize diverse data into this consistent format.
Loading PDF Documents
PDFs are common sources of information. LangChain provides the PyPDFLoader to extract text from PDF files. It uses the pypdf library under the hood.
Each page of a PDF typically becomes a separate Document object, with metadata indicating the page number.
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).")Extracting Web Page Content
Need to get content from a website? The WebBaseLoader is your friend! It can fetch HTML content from URLs and extract the main text.
This is extremely useful for RAG systems that need to query up-to-date information from the 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).")Loading from Directories
What if you have many files in a folder? The DirectoryLoader can process an entire directory of documents at once!
You can specify a glob pattern to filter for specific file types (e.g., *.txt, *.md). It can also use a specific loader for the files it finds.
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)Database and API Loaders
LangChain isn't just for files! It also offers loaders for various databases and APIs:
- SQL Databases: Load data directly from tables using
SQLDatabaseLoader. - NoSQL Databases: Load from MongoDB, Cassandra, and more.
- APIs: Fetch data from REST APIs, Notion, Jira, Confluence, etc.
These loaders allow you to integrate live, structured data into your RAG pipeline, keeping your LLM's knowledge up-to-date.
More Common Document Loaders
LangChain supports an extensive list of document types. Here are a few more popular ones:
- CSVLoader: For comma-separated value files.
- JSONLoader: For structured JSON data.
- MarkdownLoader: For Markdown files, respecting their structure.
- EvernoteLoader, GoogleDriveLoader, S3DirectoryLoader: For cloud storage and productivity apps.
The flexibility of document loaders means you can pull data from almost anywhere!
Choose the Right Loader
You're building a RAG system and need to ingest data from three sources: a local folder with multiple text files, a PDF user manual, and a company's public documentation website. Which LangChain loaders would be most appropriate for each source?
Recap: Loading Diverse Data
In this lesson, you learned about the crucial role of Document Loaders in LangChain. These tools are the first step in bringing your data into an LLM-powered application.
- We explored loaders for text files, PDFs, and web pages.
- You saw how
Documentobjects standardize data withpage_contentandmetadata. - We also touched upon loading from directories, databases, and other diverse sources.
Mastering document loading is key to building powerful RAG systems that can access and understand a wide range of information!
Questions Fréquemment Posées
La leçon « Chargement de différents types de documents » est-elle gratuite ?
Oui — le texte complet de « Chargement de différents types de documents » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours LangChain / RAG / Vector DBs, passe à CoddyKit PRO. Le cours LangChain / RAG / Vector DBs comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Chargement de différents types de documents » ?
Explorez les chargeurs de documents de LangChain pour les PDF, les pages web, les bases de données et bien plus encore, afin d’en extraire le contenu pour votre système RAG. Tu pratiques LangChain / RAG / Vector DBs avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer LangChain / RAG / Vector DBs ?
Aucune expérience préalable n'est requise. LangChain / RAG / Vector DBs sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Chargement de différents types de documents » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon LangChain / RAG / Vector DBs ?
Oui. Chaque leçon LangChain / RAG / Vector DBs inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Chargement de différents types de documents
- Comprendre les stratégies de découpage du texte
- Personnalisation du découpage des documents
- Gérer les métadonnées des documents et le filtrage