Spaces:
Runtime error
Runtime error
| # import google.generativeai as genai | |
| 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 | |
| import google.generativeai as genai | |
| # 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() | |