import streamlit as st 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.")