Bird
Raised Fist0
LangChainframework~15 mins

Directory loader for bulk documents in LangChain - Mini Project: Build & Apply

Choose your learning style10 modes available
Directory loader for bulk documents
📖 Scenario: You are building a simple tool to load many text documents from a folder all at once. This helps you quickly gather all your notes or files for processing.
🎯 Goal: Create a Python script using langchain that loads all text files from a directory using DirectoryLoader.
📋 What You'll Learn
Create a variable folder_path with the exact string "./documents"
Create a DirectoryLoader instance called loader using folder_path and the TextLoader class
Use the loader.load() method to load all documents into a variable called documents
Add a line to print the number of documents loaded using len(documents)
💡 Why This Matters
🌍 Real World
Loading many documents at once is useful for building search engines, chatbots, or data analysis tools that work with large text collections.
💼 Career
Understanding how to bulk load documents is important for roles in data science, machine learning, and software development involving text processing.
Progress0 / 4 steps
1
Set the folder path
Create a variable called folder_path and set it to the string "./documents".
LangChain
Hint

Use quotes around the folder path string exactly as shown.

2
Create the DirectoryLoader instance
Import DirectoryLoader and TextLoader from langchain.document_loaders. Then create a variable called loader that is a DirectoryLoader using folder_path and TextLoader as the loader class.
LangChain
Hint

Use loader_cls=TextLoader as the argument to specify the loader class.

3
Load documents from the directory
Use the load() method on loader to load all documents and save them in a variable called documents.
LangChain
Hint

Call loader.load() and assign the result to documents.

4
Print the number of loaded documents
Add a line to print the number of documents loaded by printing len(documents).
LangChain
Hint

Use print(len(documents)) to show how many documents were loaded.

Practice

(1/5)
1. What is the main purpose of the DirectoryLoader in Langchain?
easy
A. To convert documents into text format
B. To save documents to a directory
C. To load multiple documents from a folder at once
D. To create a new directory for documents

Solution

  1. Step 1: Understand DirectoryLoader's role

    The DirectoryLoader is designed to read many files from a folder in one go.
  2. Step 2: Compare options with this role

    Only To load multiple documents from a folder at once describes loading multiple documents from a folder, matching DirectoryLoader's purpose.
  3. Final Answer:

    To load multiple documents from a folder at once -> Option C
  4. Quick Check:

    DirectoryLoader loads many files = A [OK]
Hint: DirectoryLoader reads many files from a folder at once [OK]
Common Mistakes:
  • Confusing loading with saving files
  • Thinking it converts file formats
  • Assuming it creates directories
2. Which of the following is the correct way to specify a glob pattern to load only text files using DirectoryLoader?
easy
A. glob='*.txt'
B. glob='text/*'
C. glob='**/*.doc'
D. glob='*.pdf'

Solution

  1. Step 1: Understand glob pattern for text files

    The pattern '*.txt' matches all files ending with .txt in the directory.
  2. Step 2: Evaluate each option

    glob='*.txt' correctly uses '*.txt' to select text files. Others select different or incorrect file types.
  3. Final Answer:

    glob='*.txt' -> Option A
  4. Quick Check:

    Use '*.txt' to pick text files [OK]
Hint: Use '*.txt' to select text files with glob [OK]
Common Mistakes:
  • Using folder names instead of file patterns
  • Using wrong file extensions
  • Confusing recursive patterns with simple glob
3. Given the code snippet:
loader = DirectoryLoader('docs', glob='*.md')
docs = loader.load()

What will docs contain?
medium
A. A list of all markdown (.md) documents in the 'docs' folder
B. A single markdown document from the 'docs' folder
C. An error because glob pattern is incorrect
D. A list of all files in 'docs' regardless of extension

Solution

  1. Step 1: Analyze DirectoryLoader usage

    The DirectoryLoader is set to load files from 'docs' folder with glob '*.md', meaning markdown files only.
  2. Step 2: Understand load() output

    The load() method returns a list of documents matching the glob pattern, so docs will be a list of markdown files.
  3. Final Answer:

    A list of all markdown (.md) documents in the 'docs' folder -> Option A
  4. Quick Check:

    load() returns list of files matching glob [OK]
Hint: load() returns list of files matching glob pattern [OK]
Common Mistakes:
  • Expecting a single document instead of a list
  • Assuming glob pattern is ignored
  • Thinking load() returns file paths instead of documents
4. What is wrong with this code snippet?
loader = DirectoryLoader('files', glob='*.txt')
docs = loader.load
medium
A. Incorrect glob pattern for text files
B. Missing parentheses after load method call
C. DirectoryLoader requires absolute path only
D. load method does not exist in DirectoryLoader

Solution

  1. Step 1: Check method call syntax

    The load method must be called with parentheses: load()
  2. Step 2: Verify other parts

    Glob pattern '*.txt' is correct, DirectoryLoader accepts relative paths, and load() method exists.
  3. Final Answer:

    Missing parentheses after load method call -> Option B
  4. Quick Check:

    Method calls need () to execute [OK]
Hint: Remember to add () when calling methods [OK]
Common Mistakes:
  • Forgetting parentheses on method calls
  • Assuming glob pattern is wrong
  • Thinking DirectoryLoader needs absolute paths
5. You want to load all PDF and text files from a folder named 'resources' using DirectoryLoader. Which code snippet correctly achieves this?
hard
A. loader = DirectoryLoader('resources', glob='*.pdf;*.txt')
B. loader = DirectoryLoader('resources') docs = loader.load() # loads all files
C. loader = DirectoryLoader('resources', glob='*.pdf|*.txt') docs = loader.load()
D. loader = DirectoryLoader('resources', glob='*.pdf') loader2 = DirectoryLoader('resources', glob='*.txt') docs = loader.load() + loader2.load()

Solution

  1. Step 1: Understand glob pattern limitations

    DirectoryLoader's glob does not support multiple patterns separated by ';' or '|'.
  2. Step 2: Check each option

    loader = DirectoryLoader('resources', glob='*.pdf') loader2 = DirectoryLoader('resources', glob='*.txt') docs = loader.load() + loader2.load() loads PDFs and text files separately and combines results, which works correctly. loader = DirectoryLoader('resources') docs = loader.load() # loads all files loads all files but not filtered. Options A and C use invalid glob patterns.
  3. Final Answer:

    loader = DirectoryLoader('resources', glob='*.pdf') loader2 = DirectoryLoader('resources', glob='*.txt') docs = loader.load() + loader2.load() -> Option D
  4. Quick Check:

    Use separate loaders for multiple file types [OK]
Hint: Use separate loaders and combine for multiple file types [OK]
Common Mistakes:
  • Trying to use multiple patterns in one glob string
  • Assuming glob supports ';' or '|' separators
  • Loading all files without filtering
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard