from groq import Groq import gradio as gr import os import json import random from getvalues import getValues from datetime import datetime, timedelta import uuid import re # Set your API key # Or use `os.getenv('GOOGLE_API_KEY')` to fetch an environment variable. # GOOGLE_API_KEY=os.getenv('GEMINI_KEY') # genai.configure(api_key=GOOGLE_API_KEY) # model = genai.GenerativeModel('gemini-pro') # Select the PaLM 2 model # model = 'models/text-bison-001' api1 = os.getenv("Groq_key") api2 = os.getenv("GRoq_key") apis = [ api1, api2, ] # 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 = random.randint(1, 1000000000) print(f"\n\n{data}") newdata = data.replace("'", '"') items = json.loads(newdata) query = items['text'] query = query.lower() # try: # items = json.loads(newdata) # query = items['text'] # query = query.lower() # print(query) # except json.JSONDecodeError as e: # print("Invalid JSON:", e) while True: for api in apis: client = Groq( api_key=api, ) # Configure the model with the API key # query = st.text_input("Enter your query") # prmptquery= f"Answer this query with wisdom, love and compassion, in context to bhagwat geeta, provide references of shloks from chapters of bhagwat geeta which is relevant to the query. Query= {query}" try: response = client.chat.completions.create( messages=[ { "role": "user", "content": query, } ], model="mixtral-8x7b-32768", ) answer = response.choices[0].message.content except Exception as e: print(f"API call failed for: {e}") if answer: break if answer: break print(f"\n{answer}") if query is not None: if "remind me" in query: values = getValues(query) if values[0] is not None: msg = values[0] else: msg = "Reminder Alert" if values[1] is not None: time = values[1] else: time = "5:00 PM" # time = 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 = { 'message': f"Message: {msg} \nTime: {time} \nDay: {day} \nCreated 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': [], }], } } elif "add to do" in query: replaced_string = text.replace("add todo", "").replace("add to do","") # 1. Replace "note down" with an empty string: replaced_string = text.replace("note down", "") # 2. Split the string into words: words = replaced_string.split() # 3. Extract the first two words: first_two_words = words[:2] # Get the first two elements of the list # 4. Join the words back into a string (if needed): result_string = " ".join(first_two_words) respo = { 'message': "Todo added!", 'action': "create_todo", 'function': { 'name': result_string, 'id': idval, 'subTasks': [{ 'task':replaced_string, 'done': False }], 'shared': [], 'sharedByMe': [], }, } elif "note down" in query: # 1. Replace "note down" with an empty string: replaced_string = text.replace("note down", "") # 2. Split the string into words: words = replaced_string.split() # 3. Extract the first two words: first_two_words = words[:2] # Get the first two elements of the list # 4. Join the words back into a string (if needed): result_string = " ".join(first_two_words) respo = { 'message': "Got it! Saved to your notes.", 'action': "create_note", 'function': { 'title': result_string, 'id': idval, 'type': 'Note', 'description': replaced_string, 'time': datetime.now().strftime("%d/%m/%Y"), 'mainTime': datetime.now().strftime("%I:%M %p"), 'complete': False, 'shared': [], 'sharedByMe': [], } } elif "add coins" in query: respo = { "message": "Click the button below to view Premium Services and Coin Recharge options: ", "action": "payment", "function": "nothing", } elif "show my friends" in query: respo = { "message": "Here's the list of your friends: ", "action": "show_friends", "function": "nothing", } elif "show my groups" in query: respo = { "message": "You are member of following groups: ", "action": "show_mygroups", "function": "nothing", } elif "show my communities" in query: respo = { "message": "You are part of following communities🫶: ", "action": "show_mycommunities", "function": "nothing", } elif "show shared reminders" in query: respo = { "message": "Here's the list of your shared reminders: ", "action": "shared_reminders", "function": "nothing", } elif "create a post" in query: respo = { "message": "Sure!", "action": "create_post", "function": "nothing", } elif "show my routines" in query: 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 query: respo = { "message": "Select your friends to notify", "action": "send_notify", "function": "nothing", } elif "show actions" in query: respo = { "message": "Here is list of actions you can use:", "action": "show_actions", "function": "nothing", } else: respo = { "message": answer, "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()