File size: 2,644 Bytes
54c32b3
f9807fc
 
 
 
 
 
 
 
 
 
 
60682c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54c32b3
60682c0
 
 
 
 
 
 
 
 
 
 
f9807fc
54c32b3
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

import streamlit as st
from chatbot_utils import AmharicChatbot

st.set_page_config(page_title="Amharic SRH Chatbot", layout="centered")

@st.cache_resource
def load_bot():
    return AmharicChatbot("amharic_srh_qa.csv")

bot = load_bot()

st.markdown("""
    <style>
        .chat-container {
            width: 100%;
            max-width: 600px;
            margin: 0 auto;
            background-color: white;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
        }
        .chat-box {
            height: 350px;
            overflow-y: auto;
            border: 1px solid #ddd;
            padding: 10px;
            background-color: #f9f9f9;
            margin-bottom: 10px;
            border-radius: 5px;
        }
        .message {
            margin: 10px 0;
            padding: 10px;
            border-radius: 5px;
            max-width: 70%;
            word-wrap: break-word;
        }
        .user-message {
            background-color: #e1f5fe;
            align-self: flex-end;
            margin-left: auto;
        }
        .bot-message {
            background-color: #f1f1f1;
            align-self: flex-start;
            margin-right: auto;
        }
    </style>
""", unsafe_allow_html=True)

st.markdown('<div class="chat-container">', unsafe_allow_html=True)
st.markdown("## πŸ€– αŠ αˆ›αˆ­αŠ› αŒ€αŠ“ ቻቡቦቡ", unsafe_allow_html=True)
st.markdown("ሡለ α‹ˆαˆŠα‹΅αŠ“ α‹¨αŠ α‰£αˆ‹α‹˜αˆ­ α‰ αˆ½α‰³ αŒ₯ያቄ αŠ αˆŽα‰΅? αŠ₯α‰£αŠ­α‹Ž α‹«α‰€αˆ­α‰‘α’", unsafe_allow_html=True)
st.markdown('<div class="chat-box" id="chat-box">', unsafe_allow_html=True)

if "messages" not in st.session_state:
    st.session_state.messages = []

for msg in st.session_state.messages:
    css_class = "user-message" if msg["sender"] == "user" else "bot-message"
    st.markdown(f'<div class="message {css_class}">{msg["text"]}</div>', unsafe_allow_html=True)

st.markdown('</div>', unsafe_allow_html=True)

with st.form(key="chat_form"):
    user_input = st.text_input("πŸ’¬ αŒ₯α‹«α‰„α‹ŽαŠ• α‹«αˆ΅αŒˆα‰‘:", key="input")
    submit = st.form_submit_button("መልሡ αŠ α‹αŒ£")

    if submit and user_input:
        st.session_state.messages.append({"sender": "user", "text": user_input})
        response = bot.get_answer(user_input)
        if response == "__OUT_OF_SCOPE__":
            response = "α‹­α‰…αˆ­α‰³α£ α‹­αˆ…αŠ•αŠ• αŒ₯ያቄ αˆ›αˆ΅α‰°α‹‹αˆ αŠ αˆα‰»αˆαŠ©αˆα’ αŠ₯α‰£αŠ­α‹Ž α‰ αˆŒαˆ‹ αˆ˜αŠ•αŒˆα‹΅ α‹­αˆžαŠ­αˆ©α’"
        st.session_state.messages.append({"sender": "bot", "text": response})

st.markdown('</div>', unsafe_allow_html=True)