diff --git a/scripts/main.py b/scripts/main.py index ca75eb240d..4be0b2aa26 100644 --- a/scripts/main.py +++ b/scripts/main.py @@ -1,6 +1,7 @@ import json import random import commands as cmd +import utils from memory import get_memory import data import chat @@ -143,12 +144,12 @@ def load_variables(config_file="config.yaml"): # Prompt the user for input if config file is missing or empty values if not ai_name: - ai_name = input("Name your AI: ") + ai_name = utils.clean_input("Name your AI: ") if ai_name == "": ai_name = "Entrepreneur-GPT" if not ai_role: - ai_role = input(f"{ai_name} is: ") + ai_role = utils.clean_input(f"{ai_name} is: ") if ai_role == "": ai_role = "an AI designed to autonomously develop and run businesses with the sole goal of increasing your net worth." @@ -158,7 +159,7 @@ def load_variables(config_file="config.yaml"): print("Enter nothing to load defaults, enter nothing when finished.") ai_goals = [] for i in range(5): - ai_goal = input(f"Goal {i+1}: ") + ai_goal = utils.clean_input(f"Goal {i+1}: ") if ai_goal == "": break ai_goals.append(ai_goal) @@ -191,7 +192,7 @@ def construct_prompt(): Fore.GREEN, f"Would you like me to return to being {config.ai_name}?", speak_text=True) - should_continue = input(f"""Continue with the last settings? + should_continue = utils.clean_input(f"""Continue with the last settings? Name: {config.ai_name} Role: {config.ai_role} Goals: {config.ai_goals} @@ -226,7 +227,7 @@ def prompt_user(): "Name your AI: ", Fore.GREEN, "For example, 'Entrepreneur-GPT'") - ai_name = input("AI Name: ") + ai_name = utils.clean_input("AI Name: ") if ai_name == "": ai_name = "Entrepreneur-GPT" @@ -241,7 +242,7 @@ def prompt_user(): "Describe your AI's role: ", Fore.GREEN, "For example, 'an AI designed to autonomously develop and run businesses with the sole goal of increasing your net worth.'") - ai_role = input(f"{ai_name} is: ") + ai_role = utils.clean_input(f"{ai_name} is: ") if ai_role == "": ai_role = "an AI designed to autonomously develop and run businesses with the sole goal of increasing your net worth." @@ -253,7 +254,7 @@ def prompt_user(): print("Enter nothing to load defaults, enter nothing when finished.", flush=True) ai_goals = [] for i in range(5): - ai_goal = input(f"{Fore.LIGHTBLUE_EX}Goal{Style.RESET_ALL} {i+1}: ") + ai_goal = utils.clean_input(f"{Fore.LIGHTBLUE_EX}Goal{Style.RESET_ALL} {i+1}: ") if ai_goal == "": break ai_goals.append(ai_goal) @@ -291,7 +292,7 @@ def parse_arguments(): if args.debug: print_to_console("Debug Mode: ", Fore.GREEN, "ENABLED") - cfg.set_debug_mode(True) + cfg.set_debug_mode(True) if args.gpt3only: print_to_console("GPT3.5 Only Mode: ", Fore.GREEN, "ENABLED") @@ -355,7 +356,7 @@ while True: f"Enter 'y' to authorise command, 'y -N' to run N continuous commands, 'n' to exit program, or enter feedback for {ai_name}...", flush=True) while True: - console_input = input(Fore.MAGENTA + "Input:" + Style.RESET_ALL) + console_input = utils.clean_input(Fore.MAGENTA + "Input:" + Style.RESET_ALL) if console_input.lower() == "y": user_input = "GENERATE NEXT COMMAND JSON" break diff --git a/scripts/utils.py b/scripts/utils.py new file mode 100644 index 0000000000..5039796fbd --- /dev/null +++ b/scripts/utils.py @@ -0,0 +1,8 @@ +def clean_input(prompt: str=''): + try: + return input(prompt) + except KeyboardInterrupt: + print("You interrupted Auto-GPT") + print("Quitting...") + exit(0) +