Spaces:
Sleeping
Sleeping
File size: 1,641 Bytes
0105e3b af09235 7268351 ea4634d 7268351 ea4634d 7268351 ea4634d 7268351 f763dd0 ea4634d f763dd0 7268351 f763dd0 7268351 f763dd0 7268351 f763dd0 7268351 f763dd0 7268351 f763dd0 e94ec88 f763dd0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
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.")
|