Look-Buy-AI / scripts /05_query_text_index.py
Siddhesh Patil
Initial commit: RAG-based AI assistant with env-based API key handling
333b839
from pathlib import Path
import faiss
import pandas as pd
from sentence_transformers import SentenceTransformer
import numpy as np
INDEX_DIR = Path("data/index_text")
INDEX_PATH = INDEX_DIR / "faiss.index"
META_PATH = INDEX_DIR / "meta.parquet"
MODEL_NAME = "sentence-transformers/all-MiniLM-L6-v2"
def main():
# Load index + metadata
index = faiss.read_index(str(INDEX_PATH))
meta = pd.read_parquet(META_PATH)
# Load embedding model
model = SentenceTransformer(MODEL_NAME)
print("\nType a search query (or 'exit'):\n")
while True:
query = input("🔎 Query> ").strip()
if query.lower() in {"exit", "quit"}:
break
# Embed query
q_emb = model.encode(
[query],
normalize_embeddings=True
).astype("float32")
# Search
scores, idxs = index.search(q_emb, k=5)
print("\nTop results:\n")
for rank, (i, score) in enumerate(zip(idxs[0], scores[0]), 1):
row = meta.iloc[i]
print(f"{rank}. {row['title']}")
print(f" item_id: {row['item_id']}")
print(f" score: {score:.4f}\n")
if __name__ == "__main__":
main()