Spaces:
Build error
Build error
File size: 3,093 Bytes
bcf74cc |
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
import streamlit as st
import random
import re
# Page config
st.set_page_config(
page_title="Nepali Chatbot",
page_icon="🇳🇵"
)
# Simple responses
nepali_greetings = ["नमस्ते! कस्तो छ?", "नमस्कार! राम्रो छु।", "हाल कस्तो छ?"]
english_greetings = ["Hello! How are you?", "Hi there!", "Hey! How's it going?"]
nepali_responses = [
"त्यो राम्रो छ!",
"बुझें। अरू के भन्न चाहनुहुन्छ?",
"धन्यवाद साझा गर्नुभएकोमा!",
"त्यो दिलचस्प छ!"
]
english_responses = [
"That's great!",
"I understand. What else would you like to say?",
"Thanks for sharing!",
"That's interesting!"
]
def is_nepali(text):
return bool(re.search(r'[\u0900-\u097F]', text))
def get_response(message):
if not message:
return "Please say something!"
message_lower = message.lower()
# Check for greetings
if any(word in message_lower for word in ["hello", "hi", "hey"]) or "नमस्ते" in message or "नमस्कार" in message:
return random.choice(nepali_greetings if is_nepali(message) else english_greetings)
# Regular responses
if is_nepali(message):
return random.choice(nepali_responses)
else:
return random.choice(english_responses)
# Title
st.title("🇳🇵 Simple Nepali Chatbot")
st.write("**Chat in Nepali or English! / नेपाली वा अंग्रेजीमा कुरा गर्नुहोस्!**")
# Initialize chat history
if "messages" not in st.session_state:
st.session_state.messages = []
# Display chat messages
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.write(message["content"])
# Chat input
if prompt := st.chat_input("Type here... / यहाँ लेख्नुहोस्..."):
# Add user message
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.write(prompt)
# Generate response
response = get_response(prompt)
st.session_state.messages.append({"role": "assistant", "content": response})
with st.chat_message("assistant"):
st.write(response)
# Sidebar with examples
with st.sidebar:
st.header("Examples / उदाहरण")
if st.button("नमस्ते!"):
st.session_state.messages.append({"role": "user", "content": "नमस्ते!"})
st.session_state.messages.append({"role": "assistant", "content": get_response("नमस्ते!")})
st.rerun()
if st.button("Hello!"):
st.session_state.messages.append({"role": "user", "content": "Hello!"})
st.session_state.messages.append({"role": "assistant", "content": get_response("Hello!")})
st.rerun()
if st.button("Clear / सफा गर्नुहोस्"):
st.session_state.messages = []
st.rerun() |