Spaces:
Sleeping
Sleeping
import os | |
import shutil | |
from langchain.document_loaders import PyPDFLoader | |
from langchain.text_splitter import RecursiveCharacterTextSplitter | |
from langchain_huggingface.embeddings import HuggingFaceEmbeddings | |
from langchain.vectorstores import Chroma | |
def create_vector_db(pdf_path, db_directory): | |
# Delete existing vector database if it exists | |
if os.path.exists(db_directory): | |
print(f"The vector database already exists at {db_directory}. Deleting it...") | |
shutil.rmtree(db_directory) | |
print(f"Deleted the existing vector database at {db_directory}.") | |
# Load the PDF | |
loader = PyPDFLoader(pdf_path) | |
documents = loader.load() | |
# Split the documents into manageable chunks | |
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200) | |
docs = text_splitter.split_documents(documents) | |
# Load the embeddings model | |
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") | |
# Create the vector database without deprecated settings | |
vectordb = Chroma.from_documents( | |
docs, | |
embedding=embeddings, | |
persist_directory=db_directory, | |
) | |
print(f"Vector database created at {db_directory}") | |
# Create vector database for PEI.pdf | |
create_vector_db("PEI.pdf", "./vector_db_PEI") | |
# Create vector database for guia.pdf | |
create_vector_db("guia.pdf", "./vector_db_guia") | |