Spaces:
Running
Running
| from langchain_community.vectorstores import FAISS | |
| from langchain_community.document_loaders import PyPDFLoader, TextLoader | |
| from langchain_text_splitters import RecursiveCharacterTextSplitter | |
| from src.tools.hg_llm import get_embeddings | |
| from pathlib import Path | |
| def build_vector_store(data_dir: str = "data/sample_papers"): | |
| embeddings = get_embeddings() | |
| docs = [] | |
| for file in Path(data_dir).glob("*"): | |
| if file.suffix == ".pdf": | |
| loader = PyPDFLoader(str(file)) | |
| elif file.suffix == ".txt": | |
| loader = TextLoader(str(file)) | |
| else: | |
| continue | |
| docs.extend(loader.load()) | |
| splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50) | |
| chunks = splitter.split_documents(docs) | |
| return FAISS.from_documents(chunks, embeddings) | |
| def get_retriever(data_dir: str = "data/sample_papers"): | |
| return build_vector_store(data_dir).as_retriever(search_kwargs={"k": 3}) |