cv-chatbot / src /ingest.py
hinogi's picture
Upload folder using huggingface_hub
a9d5b70 verified
Raw History Blame Contribute Delete
1.14 kB
from langchain_community.document_loaders import PyPDFLoader
from langchain_huggingface import HuggingFaceEmbeddings
from langchain_chroma import Chroma
from langchain_text_splitters import RecursiveCharacterTextSplitter
def ingest_documents(pdf_path: str):
loader = PyPDFLoader(pdf_path)
documents = loader.load()
print(f"{len(documents)} Dokumente eingelesen")
return documents
def generate_chunks(documents):
splitter = RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=50)
chunks = splitter.split_documents(documents)
return chunks
def generate_embeddings(chunks, persist_dir: str = "./chroma_db"):
embeddings = HuggingFaceEmbeddings(
model_name="sentence-transformers/all-MiniLM-L6-v2"
)
vectorstore = Chroma.from_documents(
documents=chunks, embedding=embeddings, persist_directory=persist_dir
)
print(f"{len(chunks)} Chunks gespeichert")
return vectorstore
if __name__ == "__main__":
documents = ingest_documents("docs/Stefan_Schneider_Lebenslauf.pdf")
chunks = generate_chunks(documents)
store = generate_embeddings(chunks)