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