Files
Auto-GPT/AutonomousAI/commands.py
2023-03-29 02:40:46 +01:00

124 lines
4.2 KiB
Python

import browse
import json
import memory as mem
import datetime
def get_command(response):
try:
response_json = json.loads(response)
command = response_json["command"]
command_name = command["name"]
arguments = command["args"]
return command_name, arguments
except json.decoder.JSONDecodeError:
return "Error: Invalid JSON"
# All other errors, return "Error: + error message"
except Exception as e:
return "Error: " + str(e)
def execute_command(command_name, arguments):
try:
if command_name == "google":
return google_search(arguments["input"])
elif command_name == "check_news":
return check_news(arguments["source"])
elif command_name == "check_notifications":
return check_notifications(arguments["website"])
elif command_name == "memory_add":
return commit_memory(arguments["string"])
elif command_name == "memory_del":
return delete_memory(arguments["key"])
elif command_name == "memory_ovr":
return overwrite_memory(arguments["key"], arguments["string"])
elif command_name == "start_instance":
return start_instance(arguments["name"], arguments["prompt"])
elif command_name == "manage_instances":
return manage_instances(arguments["action"])
elif command_name == "navigate_website":
return navigate_website(arguments["action"], arguments["username"])
elif command_name == "register_account":
return register_account(arguments["username"], arguments["website"])
elif command_name == "transcribe_summarise":
return transcribe_summarise(arguments["url"])
else:
return f"unknown command {command_name}"
# All other errors, return "Error: + error message"
except Exception as e:
return "Error: " + str(e)
def get_datetime():
return "Current date and time: " + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
### Implemented Commands: ###
def google_search(query, num_results = 3):
search_results = []
for j in browse.search(query, num_results=num_results):
search_results.append(j)
return json.dumps(search_results, ensure_ascii=False, indent=4)
def transcribe_summarise(url):
text = browse.scrape_main_content(url)
summary = browse.summarize_text(text)
return """ "Result" : """ + summary
def check_news(source):
print("Checking news from BBC world instead of " + source)
_text= transcribe_summarise("https://www.bbc.com/news/world")
return _text
def commit_memory(string):
_text = "Committing memory with string " + string
mem.permanent_memory.append(string)
print(_text)
return _text
def delete_memory(key):
if key >= 0 and key < len(mem.permanent_memory):
_text = "Deleting memory with key " + str(key)
del mem.permanent_memory[key]
print(_text)
return _text
else:
print("Invalid key, cannot delete memory.")
return None
def overwrite_memory(key, string):
if key >= 0 and key < len(mem.permanent_memory):
_text = "Overwriting memory with key " + str(key) + " and string " + string
mem.permanent_memory[key] = string
print(_text)
return _text
else:
print("Invalid key, cannot overwrite memory.")
return None
### TODO: Not Yet Implemented: ###
def start_instance(name, prompt):
_text = "Starting instance with name " + name + " and prompt " + prompt
print(_text)
return "Command not implemented yet."
def manage_instances(action):
_text = "Managing instances with action " + action
print(_text)
return _text
def navigate_website(action, username):
_text = "Navigating website with action " + action + " and username " + username
print(_text)
return "Command not implemented yet."
def register_account(username, website):
_text = "Registering account with username " + username + " and website " + website
print(_text)
return "Command not implemented yet."
def check_notifications(website):
_text = "Checking notifications from " + website
print(_text)
return "Command not implemented yet."