File size: 2,332 Bytes
9efaf2a
 
 
c43eb47
 
 
 
 
 
 
 
 
 
 
 
9efaf2a
 
c43eb47
 
 
 
 
 
 
 
 
 
 
 
9efaf2a
c43eb47
9efaf2a
c43eb47
 
9efaf2a
c43eb47
 
9efaf2a
c43eb47
 
9efaf2a
c43eb47
 
9efaf2a
 
 
 
 
c43eb47
9efaf2a
 
c43eb47
9efaf2a
 
 
 
c43eb47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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()