import os from langchain_community.vectorstores import FAISS from langchain_huggingface import HuggingFaceEmbeddings # Hàm khởi tạo retriever def load_retriever(): embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") vectorstore_path = "vectorstore" # Kiểm tra nếu tồn tại index.faiss mới load if os.path.exists(vectorstore_path) and os.path.exists(os.path.join(vectorstore_path, "index.faiss")): retriever = FAISS.load_local(vectorstore_path, embeddings, allow_dangerous_deserialization=True).as_retriever(search_kwargs={"k": 5}) print("✅ Đã load vectorstore thành công.") else: retriever = None print("⚠️ Vectorstore chưa tồn tại. Hãy upload tài liệu trước khi tìm kiếm.") return retriever # Lần đầu load retriever retriever = load_retriever() # Hàm reload retriever khi thêm tài liệu def reload_retriever(): global retriever retriever = load_retriever() # Hàm retrieve_docs để lấy tài liệu def retrieve_docs(query): if retriever: return retriever.get_relevant_documents(query) else: print("⚠️ Chưa có vectorstore để tìm kiếm. Bạn cần tải tài liệu trước.") return []