smart-doc-qa / src /loader.py
tanmoy96's picture
Add Dockerfile for HF Spaces deployment
f33866d
Raw
History Blame Contribute Delete
1.16 kB
from langchain_community.document_loaders import PyPDFLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
def load_pdf(file_path: str):
"""
Load a pdf file and return each page as a Document object.
Returns a list of Document objects.
"""
loader = PyPDFLoader(file_path)
documents = loader.load()
print(f" Loaded {len(documents)} pages from {file_path}")
return documents
def split_documents(documents, chunk_size=1000, chunk_overlap=200):
"""
Documents are split into smaller chunks. chunk_size is the maximum length of each chunk and chunk_
overlap is the amount of overlap between consecutive chunks.
"""
splitter = RecursiveCharacterTextSplitter(
chunk_size=chunk_size,
chunk_overlap=chunk_overlap,
)
chunks = splitter.split_documents(documents)
print(f" Split into {len(chunks)} chunks")
return chunks
# Test for the function
if __name__ == "__main__":
docs = load_pdf("/home/playground/Desktop/tonmoy/LLM/Rag Project/smart-doc-qa/data/Md_Reja_E_Rabbi_Tonmoy.pdf")
chunks = split_documents(docs)
print(chunks[0].page_content)