Make y/n configurable (#3178)

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
This commit is contained in:
Eddie Cohen
2023-04-27 15:26:47 -04:00
committed by GitHub
parent 94dc6f19aa
commit 5ce6da95fc
7 changed files with 20 additions and 11 deletions

View File

@@ -13,6 +13,11 @@
## AI_SETTINGS_FILE - Specifies which AI Settings file to use (defaults to ai_settings.yaml) ## AI_SETTINGS_FILE - Specifies which AI Settings file to use (defaults to ai_settings.yaml)
# AI_SETTINGS_FILE=ai_settings.yaml # AI_SETTINGS_FILE=ai_settings.yaml
## AUTHORISE COMMAND KEY - Key to authorise commands
# AUTHORISE_COMMAND_KEY=y
## EXIT_KEY - Key to exit AUTO-GPT
# EXIT_KEY=n
################################################################################ ################################################################################
### LLM PROVIDER ### LLM PROVIDER
################################################################################ ################################################################################

View File

@@ -153,7 +153,7 @@ class Agent:
console_input = clean_input( console_input = clean_input(
Fore.MAGENTA + "Input:" + Style.RESET_ALL Fore.MAGENTA + "Input:" + Style.RESET_ALL
) )
if console_input.lower().strip() == "y": if console_input.lower().strip() == cfg.authorise_key:
user_input = "GENERATE NEXT COMMAND JSON" user_input = "GENERATE NEXT COMMAND JSON"
break break
elif console_input.lower().strip() == "s": elif console_input.lower().strip() == "s":
@@ -171,7 +171,7 @@ class Agent:
Fore.YELLOW, Fore.YELLOW,
"", "",
) )
if self_feedback_resp[0].lower().strip() == "y": if self_feedback_resp[0].lower().strip() == cfg.authorise_key:
user_input = "GENERATE NEXT COMMAND JSON" user_input = "GENERATE NEXT COMMAND JSON"
else: else:
user_input = self_feedback_resp user_input = self_feedback_resp
@@ -179,7 +179,7 @@ class Agent:
elif console_input.lower().strip() == "": elif console_input.lower().strip() == "":
print("Invalid input format.") print("Invalid input format.")
continue continue
elif console_input.lower().startswith("y -"): elif console_input.lower().startswith(f"{cfg.authorise_key} -"):
try: try:
self.next_action_count = abs( self.next_action_count = abs(
int(console_input.split(" ")[1]) int(console_input.split(" ")[1])
@@ -187,12 +187,12 @@ class Agent:
user_input = "GENERATE NEXT COMMAND JSON" user_input = "GENERATE NEXT COMMAND JSON"
except ValueError: except ValueError:
print( print(
"Invalid input format. Please enter 'y -n' where n is" f"Invalid input format. Please enter '{cfg.authorise_key} -N' where N is"
" the number of continuous tasks." " the number of continuous tasks."
) )
continue continue
break break
elif console_input.lower() == "n": elif console_input.lower() == cfg.exit_key:
user_input = "EXIT" user_input = "EXIT"
break break
else: else:

View File

@@ -28,6 +28,8 @@ class Config(metaclass=Singleton):
self.allow_downloads = False self.allow_downloads = False
self.skip_news = False self.skip_news = False
self.authorise_key = os.getenv("AUTHORISE_COMMAND_KEY", "y")
self.exit_key = os.getenv("EXIT_KEY", "n")
self.ai_settings_file = os.getenv("AI_SETTINGS_FILE", "ai_settings.yaml") self.ai_settings_file = os.getenv("AI_SETTINGS_FILE", "ai_settings.yaml")
self.fast_llm_model = os.getenv("FAST_LLM_MODEL", "gpt-3.5-turbo") self.fast_llm_model = os.getenv("FAST_LLM_MODEL", "gpt-3.5-turbo")
self.smart_llm_model = os.getenv("SMART_LLM_MODEL", "gpt-4") self.smart_llm_model = os.getenv("SMART_LLM_MODEL", "gpt-4")

View File

@@ -262,6 +262,6 @@ def denylist_allowlist_check(plugin_name: str, cfg: Config) -> bool:
return True return True
ack = input( ack = input(
f"WARNING: Plugin {plugin_name} found. But not in the" f"WARNING: Plugin {plugin_name} found. But not in the"
" allowlist... Load? (y/n): " f" allowlist... Load? ({cfg.authorise_key}/{cfg.exit_key}): "
) )
return ack.lower() == "y" return ack.lower() == cfg.authorise_key

View File

@@ -108,9 +108,9 @@ Name: {config.ai_name}
Role: {config.ai_role} Role: {config.ai_role}
Goals: {config.ai_goals} Goals: {config.ai_goals}
API Budget: {"infinite" if config.api_budget <= 0 else f"${config.api_budget}"} API Budget: {"infinite" if config.api_budget <= 0 else f"${config.api_budget}"}
Continue (y/n): """ Continue ({CFG.authorise_key}/{CFG.exit_key}): """
) )
if should_continue.lower() == "n": if should_continue.lower() == CFG.exit_key:
config = AIConfig() config = AIConfig()
if not config.ai_name: if not config.ai_name:

View File

@@ -47,14 +47,14 @@ def clean_input(prompt: str = "", talk=False):
"sure", "sure",
"alright", "alright",
]: ]:
return "y" return cfg.authorise_key
elif plugin_response.lower() in [ elif plugin_response.lower() in [
"no", "no",
"nope", "nope",
"n", "n",
"negative", "negative",
]: ]:
return "n" return cfg.exit_key
return plugin_response return plugin_response
# ask for input, default when just pressing Enter is y # ask for input, default when just pressing Enter is y

View File

@@ -25,6 +25,8 @@ def mock_config_denylist_allowlist_check():
plugins_denylist = ["BadPlugin"] plugins_denylist = ["BadPlugin"]
plugins_allowlist = ["GoodPlugin"] plugins_allowlist = ["GoodPlugin"]
authorise_key = "y"
exit_key = "n"
return MockConfig() return MockConfig()