Rabbook / rag /loaders.py
Matcry's picture
Deploy snapshot
c76423f
Raw
History Blame Contribute Delete
1.12 kB
import mimetypes
import os
from langchain_community.document_loaders import PyPDFLoader, TextLoader
def load_documents(data_dir):
"""
Load supported documents from a file path or directory.
"""
documents = []
data_dir = str(data_dir)
if data_dir.endswith(".txt") or data_dir.endswith(".pdf"):
loader = _build_loader(data_dir)
return loader.load() if loader else []
if os.path.isdir(data_dir):
for root, _, files in os.walk(data_dir):
for file_name in files:
file_path = os.path.join(root, file_name)
loader = _build_loader(file_path)
if loader is None:
continue
documents.extend(loader.load())
return documents
print(f"Invalid path: {data_dir}")
return []
def _build_loader(file_path):
data_type = mimetypes.guess_type(file_path)[0]
if data_type == "text/plain":
return TextLoader(file_path)
if data_type == "application/pdf":
return PyPDFLoader(file_path)
print(f"Unsupported file type: {file_path}")
return None