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} )