Spaces:
Sleeping
Sleeping
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.") | |