GoalsAI / app.py
CosmoAI's picture
Update app.py
b249e66
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"))