tamilkavithai / app.py
Vikram Thangaraj
update
e2cc5a8
import gradio as gr
from datasets import load_dataset
# Load the Tamil Kavithai Tanglish dataset
hf_dataset = load_dataset("abishekmahi/tamil-kavithai-tanglish", split="train")
df = hf_dataset.to_pandas()
# Ensure columns are strings
df["Content"] = df["Content"].astype(str)
df["Title"] = df["Title"].astype(str)
df["Category"] = df["Category"].astype(str)
df["TanglishTitle"] = df["TanglishTitle"].astype(str)
df["TanglishContent"] = df["TanglishContent"].astype(str)
df["TanglishCategory"] = df["TanglishCategory"].astype(str)
# Define search logic
def search_kavithai(query):
query = query.lower()
result = df[df.apply(lambda row:
query in row["TanglishTitle"].lower() or
query in row["TanglishContent"].lower() or
query in row["TanglishCategory"].lower(), axis=1)]
if result.empty:
return "🙏 Sorry, no matching Kavithai found."
kavithai = result.iloc[0]
return f"""
🏷️ **Title**: {kavithai['Title']}
📜 **Category**: {kavithai['Category']}
📝 **Kavithai**:
{kavithai['Content']}
"""
# Gradio interface
chat_interface = gr.Interface(
fn=search_kavithai,
inputs=gr.Textbox(lines=2, placeholder="Enter a theme, title or word...", label="🔍 Your Query"),
outputs=gr.Textbox(label="📖 Tamil Kavithai"),
title="தமிழ் கவிதை Chatbot ✍️",
description="Search by theme, title or keywords to discover Tamil Kavithai in Tanglish.",
allow_flagging="never"
)
if __name__ == "__main__":
chat_interface.launch()