Aryan2301/YouTube_RAG_Intelligence
0
1from langchain_community.vectorstores import Chroma2from core.embeddings import load_embeddings3from core.chunking import create_timestamp_aware_chunks4from langchain_community.retrievers import BM25Retriever5 6def build_retrievers(video_id: str, transcript_segments: list):7 """8 Builds and returns both Semantic (FAISS) and Sparse (BM25) retrievers.9 """10 # 1. Create timestamp-aware chunks11 documents = create_timestamp_aware_chunks(video_id, transcript_segments)12 13 if not documents:14 raise ValueError("No valid chunks created from transcript segments.")15 16 # 2. Build Semantic Store (Chroma)17 embeddings = load_embeddings()18 vector_store = Chroma.from_documents(documents, embeddings)19 20 # 3. Build Sparse Retriever (BM25)21 try:22 bm25_retriever = BM25Retriever.from_documents(documents)23 except ImportError:24 bm25_retriever = None25 26 return vector_store, bm25_retriever