import gradio as gr from datasets import load_dataset # Load the Hugging Face dataset hf_dataset = load_dataset("Selvakumarduraipandian/Thirukural", split="train") df = hf_dataset.to_pandas() # Optional: lowercase for easier matching df["Kural"] = df["Kural"].astype(str) df["Vilakam"] = df["Vilakam"].astype(str) df["Kalaingar_Urai"] = df["Kalaingar_Urai"].astype(str) df["Parimezhalagar_Urai"] = df["Parimezhalagar_Urai"].astype(str) df["Solomon_Pappaiya"] = df["Solomon_Pappaiya"].astype(str) # Define search logic def search_thirukural(query): query = query.lower() result = df[df.apply(lambda row: query in row["Kural"].lower() or query in row["Vilakam"].lower() or query in row["Kalaingar_Urai"].lower() or query in row["Parimezhalagar_Urai"].lower() or query in row["Solomon_Pappaiya"].lower() or query == str(row["ID"]), axis=1)] if result.empty: return "🙏 மன்னிக்கவும், பொருத்தமான குறள் எதுவும் இல்லை." kural_row = result.iloc[0] return f""" 📜 **குறள் #{kural_row['ID']}** - {kural_row['Kural']} 🔹 **விளக்கம்**: { kural_row['Vilakam'] } 🗣️ **கலைஞர் உரை**: { kural_row['Kalaingar_Urai'] } 🗣️ **பரிமேழலகர் உரை**: { kural_row['Parimezhalagar_Urai'] } 🗣️ **சாலமன் பாப்பையா உரை**: { kural_row['Solomon_Pappaiya'] } """ # Gradio interface chat_interface = gr.Interface( fn=search_thirukural, inputs=gr.Textbox(lines=2, placeholder="உங்கள் கேள்வி / குறள் எண் / சொல்லை உள்ளிடவும்", label="🔍 உங்கள் உள்ளீடு"), outputs=gr.Textbox(label="📖 திருக்குறள் விளக்கம்"), title="திருக்குறள் Chatbot 📜", description="திருக்குறளின் பல்வேறு உரைகளுடன் ஒரு உரையாடல் அனுபவம். ஒரு சொல் அல்லது குறள் எண் மூலம் தேடுங்கள்.", allow_flagging="never" ) if __name__ == "__main__": chat_interface.launch()