Backend / rag.py
PARTHA181098's picture
Create rag.py
eb3816e verified
import pandas as pd
# from langchain.schema import Document
from langchain_core.documents import Document
# from langchain.embeddings import HuggingFaceEmbeddings
from langchain_huggingface import HuggingFaceEmbeddings
# from langchain.vectorstores import FAISS
from langchain_community.vectorstores import FAISS
def load_student_documents(csv_path: str):
df = pd.read_csv(csv_path)
documents = []
for _, row in df.iterrows():
content = (
f"Student record. "
f"Register number {row['Register Number']}. "
f"Name {row['Name']}. "
f"Email {row['EmailID']}. "
f"Department {row['Department']}. "
f"Year {row['Year of Study']}. "
f"Hobby {row['Hobby']}. "
f"Study level {row['Study Level']}. "
f"Sleeptime {row['Sleeptime']}."
)
documents.append(
Document(
page_content=content.strip(),
metadata={"register_number": row["Register Number"]}
)
)
return documents
def create_vectorstore(documents):
embeddings = HuggingFaceEmbeddings(
model_name="sentence-transformers/all-MiniLM-L6-v2"
)
vectorstore = FAISS.from_documents(
documents=documents,
embedding=embeddings
)
return vectorstore
def get_retriever(vectorstore):
return vectorstore.as_retriever(
search_type="mmr",
search_kwargs={"k": 6, "lambda_mult": 0.7}
)