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.")