|
|
"""
|
|
|
FINAL SMART RECOMMENDER SYSTEM
|
|
|
Embeddings + Intent + Filtering + Reranking + Keyword Boosting
|
|
|
"""
|
|
|
|
|
|
from filtered_search_engine import SmartRecommender
|
|
|
from reranker import Reranker
|
|
|
from keyword_boosting_layer import apply_keyword_boost
|
|
|
import pandas as pd
|
|
|
|
|
|
class FinalSalahkar:
|
|
|
|
|
|
def __init__(self):
|
|
|
print("β¨ Initializing Final AI Recommender...")
|
|
|
self.engine = SmartRecommender()
|
|
|
self.reranker = Reranker()
|
|
|
self.df = pd.read_csv("salahkar_enhanced.csv")
|
|
|
print("π System Ready!")
|
|
|
|
|
|
def ask(self, query, k=7):
|
|
|
print("\n==============================================")
|
|
|
print(f"π§ INPUT QUERY β {query}")
|
|
|
print("==============================================")
|
|
|
|
|
|
|
|
|
|
|
|
results, intent = self.engine.recommend(query, k=k)
|
|
|
|
|
|
|
|
|
prepared = []
|
|
|
for item in results:
|
|
|
name = item["name"]
|
|
|
|
|
|
row = self.df[self.df["name"] == name].iloc[0]
|
|
|
|
|
|
prepared.append({
|
|
|
"name": name,
|
|
|
"domain": item["domain"],
|
|
|
"category": item["category"],
|
|
|
"region": item["region"],
|
|
|
"embedding_score": item["score"],
|
|
|
"text": row["search_embedding_text"],
|
|
|
"intent": intent
|
|
|
})
|
|
|
|
|
|
|
|
|
ranked = self.reranker.rerank(query, prepared)
|
|
|
|
|
|
|
|
|
boosted = apply_keyword_boost(query, ranked)
|
|
|
|
|
|
|
|
|
print("\nπ FINAL SMART RANKED RESULTS:")
|
|
|
for i, item in enumerate(boosted[:k]):
|
|
|
print(f"{i+1}. {item['name']} | Final Score: {round(item['final_score'], 3)}")
|
|
|
|
|
|
return boosted
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
bot = FinalSalahkar()
|
|
|
|
|
|
bot.ask("romantic historical place india")
|
|
|
bot.ask("spiritual peaceful temple")
|
|
|
bot.ask("best south indian spicy breakfast")
|
|
|
bot.ask("sweet festival food india")
|
|
|
|