| 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() |
|
|
|
|