import google.generativeai as palm import gradio as gr import os import json from getvalues import getValues from datetime import datetime import uuid # Set your API key palm.configure(api_key=os.environ["PALM_KEY"]) # Select the PaLM 2 model # model = 'models/text-bison-001' # contx = """Act as a friendly personal assistant. # You help users manage their daily tasks by providing them with a variety of features. # Below are the list of features you have: \n # - You can create goals\n # - You can share goals with friends\n # - You can create reminders\n # - You can create routines\n # - You can share reminders with users friends\n # - You can share routines with users friends\n # - You can create todo lists\n # - You can share todo lists with users friends\n # - You can create groups\n # - You can share groups with users friends\n # - You can create communities\n # - You can create notes for user\n # - You can share notes with users friends\n # - You can publish posts on timeline\n # - You can invite friends to this(CosmoAI) app\n # - You can help users purchase coins\n # - You can view your friends\n # - You can view your groups\n # - You can view your communities\n # - You can view your shared reminders\n # - You can view your shared routines\n # - You can view your todo lists\n # - You can view your shared todo lists\n # - You can view your shared notes\n # - You can start a timer or a stopwatch\n\n""" def responsenew(data): idval = uuid.uuid4() print(data) data = data.lower() response = palm.chat( messages=data) print(response) if data is not None: if "remind me" or "remind me to" in data: values = getValues(data) if values[0] is not None: msg = values[0] else: msg = "Reminder Alert" if values[1] is not None: time = values[1] else: time1 = datetime.now() time2 = time1 + timedelta(hours=1) time = time2.strftime("%d-%m-%Y %H:%M:%S.%f") if values[2] is not None: day = values[2] else: day = "today" if values[3] is not None: date = values[3] else: date = datetime.today() if values[4] is not None: reps = values[4] else: reps = "Once" respo = { 'messages': f"Your reminder for {msg} on {time} for {day} has been created successfully.", 'action': "create_reminder", 'function': { 'id': idval, 'sound': 'General', 'subTitle': 'Task', 'type': 'Note', 'title': msg, 'description': '', 'time': time.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': reps, 'reminders': [{ 'time': time.upper(), 'enable': False, 'repeat': reps, 'title': msg, 'id': idval, 'note': '', 'dates': [], }], } } if "add todo" or "add to do" in data: respo = { 'messages': "Todo added!", 'action': "create_todo", 'function': { 'name': 'defaulttodo', 'id': idval, 'subTasks': [{ 'task':data.replace("add todo", "add to do"), 'done': False }], 'shared': [], 'sharedByMe': [], }, } if "note down" in data: respo = { 'messages': "Got it!", 'action': "create_note", 'function': { 'title': 'defaultnote', 'id': idval, 'type': 'Note', 'description': data.replace("note down"), 'time': datetime.now().strftime("%d/%m/%Y"), 'mainTime': datetime.now().strftime("%I:%M %p"), 'complete': False, 'shared': [], 'sharedByMe': [], } } if "add coins" in data: respo = { "message": "Click the button below to view Premium Services and Coin Recharge options: ", "action": "payment", "function": "nothing", } elif "show my friends" in data: respo = { "message": "Here's the list of your friends: ", "action": "show_friends", "function": "nothing", } elif "show my groups" in data: respo = { "message": "You are member of following groups: ", "action": "show_mygroups", "function": "nothing", } elif "show my communities" in data: respo = { "message": "You are part of following communities🫶: ", "action": "show_mycommunities", "function": "nothing", } elif " show shared reminders" in data: respo = { "message": "Here's the list of your shared reminders: ", "action": "shared_reminders", "function": "nothing", } elif "show my routines" in data: respo = { "message": "Here's the list of your routines: ", "action": "myroutines", "function": "nothing", } elif "what is your name" or "what's your name" or "who are you" in data: respo = { "message": "My name is Cosmo. I am your friendly personal assistant.", "action": "nothing", "function": "nothing", } elif "notify" in data: respo = { "message": "Select your friends to notify", "action": "send_notify", "function": "nothing", } elif "show actions" in data: respo = { "message": "Here is list of actions you can use:", "action": "show_actions", "function": "nothing", } else: respo = { "message": response.last, "action": "nothing", "function": "nothing", } else: respo = { "message": "Whoops, seems like we're a bit overloaded! Don't worry, your request is in the queue and we'll get back to you as soon as possible.", "action": "nothing", "function": "nothing", } return json.dumps(respo) # intent = palm.chat( # messages=f""" # Identify the user's intent from text_data below:\n # Arguments: text_data = {data}\n\n # Return the intent as one-word string representing the user's intent, as mentioned below: # * if intent = viewing user's routine return = "my_routines" # * if intent = viewing user's notes return = "view_notes" # * if intent = viewing user's posts return = "view_posts" # * if intent = viewing user's shared notes return = "view_shared_notes" # * if intent = viewing user's todo lists return = "view_todo_lists" # * if intent = viewing user's shared todo lists return = "view_shared_todo_lists" # * if intent = viewing user's shared routines return = "view_shared_routines" # * if intent = creating a goal return = "create_goal" # * if intent = creating a reminder return = "create_reminder" # * if intent = creating a routine return = "create_routine" # * if intent = creating a group return = "create_group" # * if intent = creating a community return = "create_community" # * if intent = creating a note return = "create_note" # * if intent = creating a post return = "create_post" # * if intent = creating a todo list return = "create_todo_list" # * if intent = sharing a reminder return = "share_reminder" # * if intent = sharing a routine return = "share_routine" # * if intent = sharing a group return = "share_group" # * if intent = sharing a todo list return = "share_todo_list" # * if intent = sharing a note return = "share_note" # * if intent = notify then return = "send_notify" # * if intent = show actions then return = "show_actions" # """, # ) # respo = {"message": intent.last, "action": "nothing", "function": "nothing"} # if intent.last is not None: # if "purchase_coins" in intent.last: # respo = { # "message": "Click the button below to view Premium Services and Coin Recharge options: ", # "action": "payment", # "function": "nothing", # } # elif "view_friends" in intent.last: # respo = { # "message": "Here's the list of your friends: ", # "action": "show_friends", # "function": "nothing", # } # elif "view_groups" in intent.last: # respo = { # "message": "You are member of following groups: ", # "action": "show_mygroups", # "function": "nothing", # } # elif "view_communities" in intent.last: # respo = { # "message": "You are part of following communities🫶: ", # "action": "show_mycommunities", # "function": "nothing", # } # elif "shared_reminders" in intent.last: # respo = { # "message": "Here's the list of your shared reminders: ", # "action": "shared_reminders", # "function": "nothing", # } # elif "my_routines" in intent.last: # respo = { # "message": "Here's the list of your routines: ", # "action": "myroutines", # "function": "nothing", # } # # elif "cosmo_name" in intent.last: # # respo = { # # "message": "My name is Cosmo. I am your friendly personal assistant.", # # "action": "nothing", # # "function": "nothing", # # } # elif "send_notify" in intent.last: # respo = { # "message": "Select your friends to notify", # "action": "send_notify", # "function": "nothing", # } # elif "show_actions" in intent.last: # respo = { # "message": "Here is list of actions you can use:", # "action": "show_actions", # "function": "nothing", # } # else: # respo = { # "message": response.last, # "action": "nothing", # "function": "nothing", # } # else: # respo = { # "message": response.last, # "action": "nothing", # "function": "nothing", # } # return json.dumps(respo) gradio_interface = gr.Interface(fn=responsenew, inputs="text", outputs="text") gradio_interface.launch()