|
import streamlit as st |
|
from src import utils |
|
from src.llm import EmotionalChatbot |
|
from src.log import logger |
|
|
|
|
|
st.set_page_config( |
|
page_title="Emotional Intelligence Bot", |
|
page_icon="π€", |
|
layout="wide" |
|
) |
|
|
|
|
|
if "chat_history" not in st.session_state: |
|
st.session_state.chat_history = [] |
|
|
|
try: |
|
|
|
chatbot = EmotionalChatbot(chat_history=st.session_state.chat_history) |
|
except Exception as e: |
|
logger.critical("Failed to initialize the chatbot", exc_info=True) |
|
st.error("Unable to initialize the bot. Check logs for more details.") |
|
|
|
st.markdown(utils.styles(), unsafe_allow_html=True) |
|
|
|
st.header(":rainbow[Lumina] - :blue[EI Bot] π€") |
|
|
|
st.sidebar.markdown(utils.sidebar_markdown()) |
|
|
|
|
|
for message in st.session_state.chat_history: |
|
for role, content in message.items(): |
|
with st.chat_message(role): |
|
st.write(content) |
|
|
|
|
|
user_input = st.chat_input("Chat With Lumina...") |
|
if user_input: |
|
with st.chat_message("user"): |
|
st.write(user_input) |
|
|
|
|
|
try: |
|
with st.spinner("Thinking..."): |
|
response = chatbot.generate_response(user_input) |
|
message = {'human':user_input, 'AI':response} |
|
st.session_state.chat_history.append(message) |
|
with st.chat_message("assistant"): |
|
st.write(response) |
|
except Exception as e: |
|
logger.error(f"Error generating bot response: {e}") |
|
st.error("An error occurred. Check logs for more details.") |
|
|