import gradio import requests import os import time import uuid from datetime import datetime import json from bardapi import Bard from dotenv import load_dotenv from executequery import ExecuteQuery from getvalues import getValues load_dotenv() bardkey = os.environ.get('_BARD_API_KEY') def bardChat(data): # Create a session object using the requests library session = requests.Session() # Set the headers for the session session.headers = { "Host": "bard.google.com", "X-Same-Domain": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36", "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", "Origin": "https://bard.google.com", "Referer": "https://bard.google.com/", } # Set the "__Secure-1PSID" cookie with the Bard API key session.cookies.set("__Secure-1PSID", bardkey) # Create a Bard object with the session and a timeout of 30 seconds bard = Bard(session=session, timeout=30) answer = bard.get_answer(data)['content'] print(answer) return answer # return json.dumps({'message':answer,'action':'null'}) def responsenew(data): idval = str(uuid.uuid4()) result = ExecuteQuery(data) if result[1] == 'opencosmo': jdata = { "message": bardChat(data), "action": "chitchat", "function": None } return jdata elif result[1] == 'create_reminder': remvalues = getValues(data) jdata = { "message": result[0], "action": "create_reminder", 'function': { 'id': str(uuid.uuid4()), 'sound': 'General', 'subTitle': 'Task', 'type': 'Note', 'title': remvalues[0], 'description': '', 'time': remvalues[1].upper(), 'timestamp' : datetime.now().strftime("%d-%m-%Y %H:%M:%S.%f"), 'enable': False, 'report': [], 'icon': 'https://firebasestorage.googleapis.com/v0/b/cosmo-f5007.appspot.com/o/categories%2FIcons%2Ftaskicon.svg?alt=media&token=56f3fc55-8eda-4463-bceb-7bf3198dff3c', 'color': 'FFD700', 'sharedToMe': [], 'sharedByMe': [], 'repeat': 'Daily', 'reminders': [{ 'time': remvalues[1].upper(), 'enable': False, 'repeat': remvalues[4], 'title': remvalues[0], 'id': str(uuid.uuid4()), 'note': '', 'dates': [], }], } } return jdata elif result[1] == 'create_todo': jdata = { 'messages': result[0], 'action': result[1], 'function': { 'name': 'defaulttodo', 'id': str(uuid.uuid4()), 'subTasks': [{ 'task':remvalues[0].replace("create a todo", ""), 'done': False }], 'shared': [], 'sharedByMe': [], }, } elif result[1] == 'show_routine_today': jdata = { "message": result[0], "action": "show_routine_today", "values": None } return jdata elif result[1] == 'create_note': notevalues = data.lower().replace('create a note ','').replace("remember","").replace('note','').replace('jot down', ''). replace('make a note','') jdata = { 'messages': result[0], 'action': result[1], 'function': { 'title': 'defaultnote', 'id': idval, 'type': 'Note', 'description': notevalues, 'time': datetime.now().strftime("%d/%m/%Y"), 'mainTime': datetime.now().strftime("%I:%M %p"), 'complete': False, 'shared': [], 'sharedByMe': [], } } return jdata elif result[1] == 'show_people': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'show_friends': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'show_allgroups': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'show_mygroups': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'show_allcommunities': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'show_mycommunities': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'name': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'creator': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'commands': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'goodbye': jdata = { 'messages': result[0], 'action': result[1] } return jdata elif result[1] == 'view_commands': jdata = { 'messages': result[0], 'action': result[1] } return jdata # with gr.Blocks() as demo: # chatbot = gr.Chatbot() # msg = gr.Textbox() # # clear = gr.ClearButton([msg, chatbot]) # def respond(message, chat_history): # bot_message = responsenew(message) # chat_history.append((message, bot_message)) # time.sleep(2) # return "", chat_history # msg.submit(respond, [msg, chatbot], [msg, chatbot]) # if __name__ == "__main__": # demo.launch() def responsedata(data): return bardChat(data) gradio_interface = gradio.Interface( fn = responsedata, inputs = "text", outputs = "text" ) gradio_interface.launch()