Subhakanta
Initial commit without data folder
4787e22
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)