thirukural / app.py
Vikram Thangaraj
Initial commit Thirukural
c43eb47
raw
history blame
2.33 kB
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()