mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-18 06:24:20 +01:00
Adds full file I/O
This commit is contained in:
@@ -5,6 +5,7 @@ import datetime
|
|||||||
import agent_manager as agents
|
import agent_manager as agents
|
||||||
import speak
|
import speak
|
||||||
from config import Config
|
from config import Config
|
||||||
|
from file_operations import read_file, write_to_file, append_to_file, delete_file
|
||||||
cfg = Config()
|
cfg = Config()
|
||||||
|
|
||||||
|
|
||||||
@@ -55,8 +56,14 @@ def execute_command(command_name, arguments):
|
|||||||
return get_text_summary(arguments["url"])
|
return get_text_summary(arguments["url"])
|
||||||
elif command_name == "get_hyperlinks":
|
elif command_name == "get_hyperlinks":
|
||||||
return get_hyperlinks(arguments["url"])
|
return get_hyperlinks(arguments["url"])
|
||||||
|
elif command_name == "read_file":
|
||||||
|
return read_file(arguments["file"])
|
||||||
elif command_name == "write_to_file":
|
elif command_name == "write_to_file":
|
||||||
return write_to_file(arguments["file"], arguments["text"])
|
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":
|
elif command_name == "browse_website":
|
||||||
return browse_website(arguments["url"])
|
return browse_website(arguments["url"])
|
||||||
elif command_name == "task_complete":
|
elif command_name == "task_complete":
|
||||||
@@ -130,15 +137,6 @@ def overwrite_memory(key, string):
|
|||||||
print("Invalid key, cannot overwrite memory.")
|
print("Invalid key, cannot overwrite memory.")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def write_to_file(filename, text):
|
|
||||||
try:
|
|
||||||
f = open(filename, "w")
|
|
||||||
f.write(text)
|
|
||||||
f.close()
|
|
||||||
except Exception as e:
|
|
||||||
return "Error: " + str(e)
|
|
||||||
return "File written to successfully."
|
|
||||||
|
|
||||||
def shutdown():
|
def shutdown():
|
||||||
print("Shutting down...")
|
print("Shutting down...")
|
||||||
quit()
|
quit()
|
||||||
|
|||||||
@@ -16,7 +16,10 @@ COMMANDS:
|
|||||||
9. List GPT Agents: "list_agents", args: ""
|
9. List GPT Agents: "list_agents", args: ""
|
||||||
10. Delete GPT Agent: "delete_agent", args: "key": "<key>"
|
10. Delete GPT Agent: "delete_agent", args: "key": "<key>"
|
||||||
11. Write to file: "write_to_file", args: "file": "<file>", "text": "<text>"
|
11. Write to file: "write_to_file", args: "file": "<file>", "text": "<text>"
|
||||||
12. Task Complete (Shutdown): "task_complete", args: "reason": "<reason>"
|
12. Read file: "read_file", args: "file": "<file>"
|
||||||
|
13. Append to file: "append_to_file", args: "file": "<file>", "text": "<text>"
|
||||||
|
14. Delete file: "delete_file", args: "file": "<file>"
|
||||||
|
15. Task Complete (Shutdown): "task_complete", args: "reason": "<reason>"
|
||||||
|
|
||||||
RESOURCES:
|
RESOURCES:
|
||||||
|
|
||||||
@@ -50,4 +53,4 @@ RESPONSE FORMAT:
|
|||||||
"criticism": "constructive self-criticism"
|
"criticism": "constructive self-criticism"
|
||||||
"speak": "thoughts summary to say to user"
|
"speak": "thoughts summary to say to user"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
52
scripts/file_operations.py
Normal file
52
scripts/file_operations.py
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
# Set a dedicated folder for file I/O
|
||||||
|
working_directory = "auto_gpt_workspace"
|
||||||
|
|
||||||
|
if not os.path.exists(working_directory):
|
||||||
|
os.makedirs(working_directory)
|
||||||
|
|
||||||
|
def safe_join(base, *paths):
|
||||||
|
new_path = os.path.join(base, *paths)
|
||||||
|
norm_new_path = os.path.normpath(new_path)
|
||||||
|
|
||||||
|
if os.path.commonprefix([base, norm_new_path]) != base:
|
||||||
|
raise ValueError("Attempted to access outside of working directory.")
|
||||||
|
|
||||||
|
return norm_new_path
|
||||||
|
|
||||||
|
def read_file(filename):
|
||||||
|
try:
|
||||||
|
filepath = safe_join(working_directory, filename)
|
||||||
|
with open(filepath, "r") as f:
|
||||||
|
content = f.read()
|
||||||
|
return content
|
||||||
|
except Exception as e:
|
||||||
|
return "Error: " + str(e)
|
||||||
|
|
||||||
|
def write_to_file(filename, text):
|
||||||
|
try:
|
||||||
|
filepath = safe_join(working_directory, filename)
|
||||||
|
with open(filepath, "w") as f:
|
||||||
|
f.write(text)
|
||||||
|
return "File written to successfully."
|
||||||
|
except Exception as e:
|
||||||
|
return "Error: " + str(e)
|
||||||
|
|
||||||
|
def append_to_file(filename, text):
|
||||||
|
try:
|
||||||
|
filepath = safe_join(working_directory, filename)
|
||||||
|
with open(filepath, "a") as f:
|
||||||
|
f.write(text)
|
||||||
|
return "Text appended successfully."
|
||||||
|
except Exception as e:
|
||||||
|
return "Error: " + str(e)
|
||||||
|
|
||||||
|
def delete_file(filename):
|
||||||
|
try:
|
||||||
|
filepath = safe_join(working_directory, filename)
|
||||||
|
os.remove(filepath)
|
||||||
|
return "File deleted successfully."
|
||||||
|
except Exception as e:
|
||||||
|
return "Error: " + str(e)
|
||||||
Reference in New Issue
Block a user