Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| class UIManager: | |
| def __init__(self, state_manager): | |
| self.state_manager = state_manager | |
| def display_sidebar_navigation(self): | |
| st.sidebar.title("Navigation") | |
| return st.sidebar.radio("Go to", ["Home", "Dataset Analysis", "Evaluation Results", "Run Inference", "Dissertation Report"]) | |
| def display_home_page(self): | |
| st.title("MultiModal Learning for Knowledge-Based Visual Question Answering") | |
| st.write("Home page content goes here...") | |
| def display_dissertation_report(self): | |
| st.title("Dissertation Report") | |
| st.write("Click the link below to view the PDF.") | |
| with open("Files/Dissertation Report.pdf", "rb") as file: | |
| st.download_button(label="Download PDF", data=file, file_name="Dissertation_Report.pdf", mime="application/octet-stream") | |
| def display_evaluation_results(self): | |
| st.title("Evaluation Results") | |
| st.write("This is a Place Holder until the contents are uploaded.") | |
| def display_dataset_analysis(self): | |
| st.title("OK-VQA Dataset Analysis") | |
| st.write("This is a Place Holder until the contents are uploaded.") | |
| class StateManager: | |
| def __init__(self): | |
| self.reset_state() | |
| def reset_state(self): | |
| """Resets the state to its initial values.""" | |
| self.current_image = None | |
| self.qa_history = [] | |
| self.analysis_done = False | |
| self.answer_in_progress = False | |
| self.caption = "" | |
| self.detected_objects_str = "" | |
| def set_current_image(self, image): | |
| """Sets the current image and resets relevant state variables.""" | |
| try: | |
| self.current_image = image | |
| self.qa_history = [] | |
| self.analysis_done = False | |
| self.answer_in_progress = False | |
| self.caption = "" | |
| self.detected_objects_str = "" | |
| except Exception as e: | |
| print(f"Error setting current image: {e}") | |
| def add_to_qa_history(self, question, answer): | |
| """Adds a question-answer pair to the history.""" | |
| if question and answer: | |
| self.qa_history.append((question, answer)) | |
| else: | |
| print("Invalid question or answer. Cannot add to history.") | |
| def set_analysis_done(self, status=True): | |
| """Sets the analysis status.""" | |
| self.analysis_done = status | |
| def set_answer_in_progress(self, status=True): | |
| """Sets the answer in progress status.""" | |
| self.answer_in_progress = status | |
| def set_caption(self, caption): | |
| """Sets the image caption.""" | |
| if caption: | |
| self.caption = caption | |
| else: | |
| print("Invalid caption. Cannot set caption.") | |
| def set_detected_objects_str(self, detected_objects_str): | |
| """Sets the detected objects string.""" | |
| if detected_objects_str: | |
| self.detected_objects_str = detected_objects_str | |
| else: | |
| print("Invalid detected objects string. Cannot set detected objects.") | |