from langchain_community.vectorstores import FAISS from langchain_huggingface import HuggingFaceEmbeddings # Load embeddings and vector DB embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") db = FAISS.load_local("vectorStore", embeddings, allow_dangerous_deserialization=True) # Ask a query query = "how many cyclone struck odisha in 2015" results = db.similarity_search_with_score(query, k=5) # Combine results into one paragraph # answer = " ".join([doc.page_content for doc in results]) # Apply similarity threshold THRESHOLD = 0.75 filtered = [] for doc, score in results: print(f"šŸ”Ž Retrieved (distance={score:.4f}): {doc.metadata}") # debug if score <= THRESHOLD: # <-- check for "closer than threshold" filtered.append(doc) if not filtered: answer = "I don't know. This information is not available in my knowledge base." else: answer = "\n\n".join([doc.page_content for doc in filtered]) print(f"\nšŸ” Query: {query}") print(f"\nšŸ“ Answer:\n{answer}") # for i, doc in enumerate(results, 1): # print(f"\nResult {i}:") # print(f"Source: {doc.metadata}") # print(f"Content: {doc.page_content[:300]}...") # it gives query aswell as metadata also # print(f"\nšŸ” Query: {query}") # for i, doc in enumerate(results, 2): # print(f"\n--- Result {i} ---") # print(doc.page_content[:700]) # show first 500 characters # print("Source:", doc.metadata)