try: cleaned_df = preprocess_excel(tmp_path) vectorstore = build_vectorstore_from_dataframe(cleaned_df) qa = create_qa_pipeline(vectorstore) st.success("✅ File processed and chatbot ready! Ask your questions below.") if "chat_history" not in st.session_state: st.session_state.chat_history = [] with st.chat_message("assistant"): st.markdown("How can I help you with the inspection data?") user_prompt = st.chat_input("Ask a question like 'How many backlog items are marked Yes?' or 'List overdue inspections'.") if user_prompt: st.chat_message("user").markdown(user_prompt) with st.chat_message("assistant"): with st.spinner("Thinking..."): try: answer = qa.run(user_prompt) st.markdown(f"**Answer:** {answer}") st.session_state.chat_history.append((user_prompt, answer)) except Exception as e: st.error(f"Error: {e}") except Exception as e: st.error(f"Error processing file: {e}") finally: os.remove(tmp_path) else: st.info("Upload a file to get started.")