Spaces:
Sleeping
Sleeping
| import time | |
| import warnings | |
| import pandas as pd | |
| import streamlit as st | |
| from langchain.memory.chat_message_histories import StreamlitChatMessageHistory | |
| from src.main import get_response | |
| from src.rule_based import simple_chatbot | |
| from src.main import write_answer | |
| warnings.filterwarnings("ignore") | |
| # Streamlit app setup | |
| st.title("FinBuddy") | |
| st.write("I am an AI Assistant helping with answering questions related to financial metrics of MSFT, TSLA, and Apple.") | |
| msgs = StreamlitChatMessageHistory(key="special_app_key") | |
| for msg in msgs.messages: | |
| st.chat_message(msg.type).write(msg.content) | |
| if prompt := st.chat_input(): | |
| start_time = time.time() | |
| st.chat_message("human").write(prompt) | |
| msgs.add_user_message(prompt) | |
| with st.spinner("Waiting for response..."): | |
| # Get response from chatbot | |
| response_text = get_response(prompt) | |
| # enable below one to get the plots or table | |
| #response_text = write_answer(response_text) | |
| # Rule based bot | |
| #response_text = simple_chatbot(prompt) | |
| if response_text: | |
| if 'answer' in response_text: | |
| st.chat_message("ai").write(response_text['answer']) | |
| msgs.add_ai_message(response_text['answer']) | |
| else: | |
| for key, value in response_text.items(): | |
| msgs.add_ai_message(str(response_text)) | |
| end_time = time.time() | |
| st.write(f"Total time {end_time - start_time}") | |
| else: | |
| st.error("No valid response received from the AI.") | |