import streamlit as st import os # import pandas as pd # from streamlit_option_menu import option_menu from bardapi import Bard # from getvalues import getValues from pymongo import MongoClient # from transformers import pipeline, Conversation st.set_page_config(layout="wide") #Mongo connection url = os.environ["MONGO_CONNECTION_STRING"] client = MongoClient(url,tlsCertificateKeyFile ="cert.pem") #Fetch database db = client["myapp"] #Fetch collections remcol = db["Reminders"] usrcol = db["Users"] notecol = db["Notes"] #Connect with Bard uri = os.environ["BARD_API_KEY"] bard = Bard(token = uri ) #Store user bot chat messages def chat_message(ques, ans): chat = { "user": ques, "bot": ans } usrcol.insert_one(chat) #Creating reminders from the described goal def create_rem(ans): remlist = bard.get_answer(f"Create a daily routine to achieve this goal below and make a list of reminders with values for reminder_message, time, repetition, days\n\nGoal = {ans}") return remlist def Chatbot(): st.title("chatbot") if query:= st.chat_input("Describe your goal"): answer = bard.get_answer(query) chat_message(query, answer) remlist = create_rem(answer) with st.chat_message("assistant"): st.write(remlist["content"]) Chatbot() # classifyr = pipeline("zero-shot-classification") # convo = pipeline("conversational") # # classifi = pipeline(model="facebook/bart-large-mnli") # uri = os.environ["MONGO_CONNECTION_STRING"] # client = MongoClient(uri, tlsCertificateKeyFile="database/cert.pem") # def view_rem(): # allrem = list(col.find()) # remdata = pd.DataFrame(allrem) # st.dataframe(remdata) # def Chatbot(): # st.title("Chatbot") # if user_input := st.chat_input("Describe your goal. e.g: I want to achieve this goal in this time. Be as specific and explanatory as you can."): # bardans = bard.get_answer(user_input)['content'] # anslist = bard.get_answer(f"Make a list of this answer: \n{bardans} \nfor this goal: \n{user_input}\n\nThe list should be in two section, section 1 for all the reminders to track called Daily Routine and section 2 for all information that should be consumed to achieve the goal and stay very focused and motivated with excitement and this section is called Notes")['content'] # listrem = bard.get_answer(f"Act as a ToDo Reminder AI who sets reminders or daily routine based upon the daily routine provided below:\n{anslist} \n\nMake a list of reminders with exact message, time, repetation frequecy, day/s kind of neccessary detail that would be required to set a reminder notification. Make it a numeric list.")['content'] # # result = classifyr(user_input,candidate_labels=["reminders", "notes"]) # with st.chat_message("assistant"): # st.write(f"What to do to achive the goal:\n{bardans}\n\nHow to do it:\n{anslist}\n\nList of Reminders you should make:\n{listrem}") # # with st.chat_message("user"): # # st.write(result["labels"][0]) # # if ans["labels"][0] == "reminders": # # 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(query)["content"] # # with st.chat_message("assistant"): # # st.write(umsg) # # elif ans["labels"][0] == "notes": # # Notes = query.lower().replace( " create a new note", "",).replace(" no new note", "") # Chatbot() # def Create_Reminder(): # st.title("Create Reminder") # message = st.text_input("Share your plan of today") # time = str(st.time_input("Time")) # date = str(st.date_input("Date"))