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,tlsCerificateKeyFile ="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 | |
}, | |
{ | |
"test": "ques", | |
"bot": "ans" | |
}]} | |
usrcol.insert_many(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}") | |
def Chatbot(): | |
st.title("chatbot") | |
if query:= st.chat_input("Describe your goal"): | |
answer = bard.get_answer(query) | |
chat_message(query, answer) | |
create_rem(answer) | |
with st.chat_message("assistant"): | |
st.write(answer["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")) | |