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 api1 = os.getenv("Groq_key") api2 = os.getenv("GRoq_key") apis = [ api1, api2, ] 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() while True: for api in apis: client = Groq( api_key=api, ) # Configure the model with the API key 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) gradio_interface = gr.Interface(fn=responsenew, inputs="text", outputs="text") gradio_interface.launch()