🗂 Подробнее про DirectoryLoader
📥
В ноутбуке урока, вкратце упомянули о DirectoryLoader'е
, который удобно
использовать для загрузки текстов из директории с файлами, имеющими одинаковый формат
( расширение). По умолчанию этот лоадер работает только с файлами текстовых форматов
(.txt
, .md
и т.п.), но это поведение можно поменять.
Рассмотрим несколько важных параметров этого лоадера:
# Например, в нашей папке лежат несколько Python файлов
from langchain_community.document_loaders import DirectoryLoader, PythonLoader
loader = DirectoryLoader(
'../', # путь к папке с файлами
glob="**/*.py", # расширения файлов
show_progress=True, # показывать прогресс-бар загрузки
use_multithreading=True, # использовать мультипоточную загрузку
loader_cls=PythonLoader, # класс для загрузки файлов в папке
)
- Допустим, у нас есть подобная структура директорий, в которых хранятся файлы разных форматов.
-
Файл с Python-скриптом (ноутбуком) из которого будет запускаться загрузчик
лежит в папке
scripts
. - Названия папок соответствуют формату файлов в них.
Структура директорий (папок):
Выберите верные варианты объявления лоадера (отработает без ошибок):
A
from langchain_community.document_loaders import DirectoryLoader
loader = DirectoryLoader('../documents/md/', glob="**/*.md")
docs = loader.load()
B
from langchain_community.document_loaders import DirectoryLoader, DataFrameLoader
loader = DirectoryLoader(
'../documents/csv/',
glob="**/*.csv",
loader_cls=DataFrameLoader
)
docs = loader.load()
C
from langchain_community.document_loaders import DirectoryLoader
loader = DirectoryLoader('../documents/txt', glob="*/*.txt")
docs = loader.load()
D
from langchain_community.document_loaders import DirectoryLoader, CSVLoader
loader = DirectoryLoader(
'/documents/csv/',
glob="**/*.csv",
loader_cls=CSVLoader
)
docs = loader.load()
E
from langchain_community.document_loaders import DirectoryLoader, UnstructuredPDFLoader
loader = DirectoryLoader(
'../documents/pdf/',
glob="**/*.pdf",
loader_cls=UnstructuredPDFLoader
)
docs = loader.load()
Документация по лоадерам в
LangChain
.
В варианте С появляется ошибка:
ValueError: unstructured package not found, please install it with `pip install unstructured`
Но если поставить эту библиотечку, то вариант С отрабатывает без ошибок.
К чему в итоге причислять этот вариант С? Ведь из ответов он исключён как верный.
@Albert_Murtazin, в варианте С указан путь к файлу с именем txt, а не к директории
@Иван_Александров, в то же время имея 3 файла в директории `documents/txt` вариант С отрабатывает без проблем и подгружает 3 документа. Спорный вариант получается.
@Albert_Murtazin, спасибо, проверим
@Иван_Александров, поправили вариант С, теперь точно упадет))
@Иван_Александров, Отработал без ошибок, хоть и не подгрузил документы)