import streamlit as st import pandas as pd from db import insert_data_if_empty, get_mongo_client from chatbot import chatbot_response # Import chatbot functionality #### **1. Ensure Data is Inserted Before Display** insert_data_if_empty() #### **2. MongoDB Connection** collection = get_mongo_client() #### **3. Streamlit App UI** # st.title("📊 MongoDB Data Viewer with AI Sentiment Chatbot") # # Show first 5 rows from MongoDB # st.subheader("First 5 Rows from Database") # data = list(collection.find({}, {"_id": 0}).limit(5)) # if data: # st.write(pd.DataFrame(data)) # else: # st.warning("⚠️ No data found. Try refreshing the app.") # # Button to show full MongoDB data # if st.button("Show Complete Data"): # all_data = list(collection.find({}, {"_id": 0})) # st.write(pd.DataFrame(all_data)) #### **4. AI Chatbot with Sentiment Analysis & Topic Extraction** st.subheader("🤖 AI Chatbot with Sentiment Analysis & Topic Extraction") # User input for chatbot user_prompt = st.text_area("Ask AI something or paste text for sentiment analysis:") if st.button("Analyze Sentiment & Get AI Response"): ai_response, sentiment_label, confidence, topics = chatbot_response(user_prompt) if ai_response: st.write("### AI Response:") st.write(ai_response) st.write("### Sentiment Analysis:") st.write(f"**Sentiment:** {sentiment_label} ({confidence:.2f} confidence)") st.write("### Extracted Topics:") st.write(", ".join(topics) if topics else "No topics identified.") else: st.warning("⚠️ Please enter a question or text for analysis.")