Spaces:
Sleeping
Sleeping
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() |