File size: 1,551 Bytes
3a66a27
43dad90
1c5a2c6
 
 
4025e7c
aa9dedc
b3290b7
 
aa9dedc
3c44f18
9b13e73
3c44f18
aa9dedc
a83414f
aa9dedc
 
 
1c5a2c6
 
 
 
 
cf012cb
fc43010
3a66a27
b3290b7
 
 
 
43dad90
 
 
4025e7c
cd43b43
4025e7c
7dc69fc
4025e7c
 
aa9dedc
4025e7c
 
 
 
0c9f179
8557bb7
3c44f18
 
 
b3290b7
 
 
 
 
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
51
52
53
54
55
import streamlit as st
import os 
from transformers import pipeline
from bardapi import Bard 
import os 
from getvalues import getValues
from pymongo import MongoClient
from streamlit_option_menu import option_menu
import pandas as pd 

if "user" not in st.session_state:
    st.session_state.user = "Guest"

uri = os.environ.get("MONGO_CONNECTION_STRING")
conn = MongoClient(uri, tlsCertificateKeyFile="database/cert.pem")

db = conn["myapp"]
col = db["reminders"]

bardkey = os.environ.get("BARD_API_KEY")

bard = Bard(token=bardkey)


classifi = pipeline(model="facebook/bart-large-mnli")

def view_rem():
    allrem = list(col.find())
    remdata = pd.DataFrame(allrem)
    st.dataframe(remdata)

def chatbot():
    st.title("ChatBot")
    if query := st.chat_input("Enter your message"):
        ans = classifi(query, candidate_labels=["Reminder", "General Conversation"])
        if ans["labels"][0] == "Reminder":
            values = getValues(query.lower())
            with st.chat_message("assistant"):
                st.write(values)
                col.insert_one(values)
        elif ans["labels"][0] == "General Conversation":
            umsg = bard.get_answer(message)["content"]
            with st.chat_message("assistant"):
                st.write(umsg)
            
if st.session_state.user == "Guest":            
    with st.sidebar:
        selected = option_menu(None, options=["Chatbot", "View Reminders"])
        
    if selected == "Chatbot":
        chatbot()
    elif selected == "View Reminders":
        view_rem()