Created
April 4, 2023 04:04
-
-
Save choonkeat/5d611920548ed69f617d1ac3aafe062f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def execute_command(command_name, arguments): | |
try: | |
if command_name == "google": | |
# Check if the Google API key is set and use the official search method | |
# If the API key is not set or has only whitespaces, use the unofficial search method | |
if cfg.google_api_key and (cfg.google_api_key.strip() if cfg.google_api_key else None): | |
return google_official_search(arguments["input"]) | |
else: | |
return google_search(arguments["input"]) | |
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_agent": | |
return start_agent( | |
arguments["name"], | |
arguments["task"], | |
arguments["prompt"]) | |
elif command_name == "message_agent": | |
return message_agent(arguments["key"], arguments["message"]) | |
elif command_name == "list_agents": | |
return list_agents() | |
elif command_name == "delete_agent": | |
return delete_agent(arguments["key"]) | |
elif command_name == "get_text_summary": | |
return get_text_summary(arguments["url"]) | |
elif command_name == "get_hyperlinks": | |
return get_hyperlinks(arguments["url"]) | |
elif command_name == "read_file": | |
return read_file(arguments["file"]) | |
elif command_name == "write_to_file": | |
return write_to_file(arguments["file"], arguments["text"]) | |
elif command_name == "append_to_file": | |
return append_to_file(arguments["file"], arguments["text"]) | |
elif command_name == "delete_file": | |
return delete_file(arguments["file"]) | |
elif command_name == "browse_website": | |
return browse_website(arguments["url"]) | |
# TODO: Change these to take in a file rather than pasted code, if | |
# non-file is given, return instructions "Input should be a python | |
# filepath, write your code to file and try again" | |
elif command_name == "evaluate_code": | |
return ai.evaluate_code(arguments["code"]) | |
elif command_name == "improve_code": | |
return ai.improve_code(arguments["suggestions"], arguments["code"]) | |
elif command_name == "write_tests": | |
return ai.write_tests(arguments["code"], arguments.get("focus")) | |
elif command_name == "execute_python_file": # Add this command | |
return execute_python_file(arguments["file"]) | |
elif command_name == "task_complete": | |
shutdown() | |
else: | |
return f"Unknown command {command_name}" | |
# All errors, return "Error: + error message" | |
except Exception as e: | |
return "Error: " + str(e) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
GOALS: | |
1. ... | |
2. ... | |
CONSTRAINTS: | |
1. ~4000 word limit for memory. Your memory is short, so immidiately save important information to long term memory and code to files. | |
2. No user assistance | |
COMMANDS: | |
1. Google Search: "google", args: "input": "<search>" | |
2. Memory Add: "memory_add", args: "string": "<string>" | |
3. Memory Delete: "memory_del", args: "key": "<key>" | |
4. Memory Overwrite: "memory_ovr", args: "key": "<key>", "string": "<string>" | |
5. Browse Website: "browse_website", args: "url": "<url>" | |
6. Start GPT Agent: "start_agent", args: "name": <name>, "task": "<short_task_desc>", "prompt": "<prompt>" | |
7. Message GPT Agent: "message_agent", args: "key": "<key>", "message": "<message>" | |
8. List GPT Agents: "list_agents", args: "" | |
9. Delete GPT Agent: "delete_agent", args: "key": "<key>" | |
10. Write to file: "write_to_file", args: "file": "<file>", "text": "<text>" | |
11. Read file: "read_file", args: "file": "<file>" | |
12. Append to file: "append_to_file", args: "file": "<file>", "text": "<text>" | |
13. Delete file: "delete_file", args: "file": "<file>" | |
14. Evaluate Code: "evaluate_code", args: "code": "<full _code_string>" | |
15. Get Improved Code: "improve_code", args: "suggestions": "<list_of_suggestions>", "code": "<full_code_string>" | |
16. Write Tests: "write_tests", args: "code": "<full_code_string>", "focus": "<list_of_focus_areas>" | |
17. Execute Python File: "execute_python_file", args: "file": "<file>" | |
18. Task Complete (Shutdown): "task_complete", args: "reason": "<reason>" | |
RESOURCES: | |
1. Internet access for searches and information gathering. | |
2. Long Term memory management. | |
3. GPT-3.5 powered Agents for delegation of simple tasks. | |
4. File output. | |
PERFORMANCE EVALUATION: | |
1. Continuously review and analyze your actions to ensure you are performing to the best of your abilities. | |
2. Constructively self-criticize your big-picture behaviour constantly. | |
3. Reflect on past decisions and strategies to refine your approach. | |
4. Every command has a cost, so be smart and efficent. Aim to complete tasks in the least number of steps. | |
You should only respond in JSON format as described below | |
RESPONSE FORMAT: | |
{ | |
"command": { | |
"name": "command name", | |
"args":{ | |
"arg name": "value" | |
} | |
}, | |
"thoughts": | |
{ | |
"text": "thought", | |
"reasoning": "reasoning", | |
"plan": "- short bulleted\n- list that conveys\n- long-term plan", | |
"criticism": "constructive self-criticism", | |
"speak": "thoughts summary to say to user" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment