Cosm-OS / app.py
CosmoAI's picture
Update app.py (#1)
b9f335d verified
raw
history blame
8.47 kB
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()