aboutsummaryrefslogtreecommitdiff
path: root/autogpt/configurator.py
diff options
context:
space:
mode:
Diffstat (limited to 'autogpt/configurator.py')
-rw-r--r--autogpt/configurator.py167
1 files changed, 0 insertions, 167 deletions
diff --git a/autogpt/configurator.py b/autogpt/configurator.py
deleted file mode 100644
index fa6b4c588..000000000
--- a/autogpt/configurator.py
+++ /dev/null
@@ -1,167 +0,0 @@
-"""Configurator module."""
-from __future__ import annotations
-
-from typing import TYPE_CHECKING
-
-import click
-from colorama import Back, Fore, Style
-
-from autogpt import utils
-from autogpt.config.config import GPT_3_MODEL, GPT_4_MODEL
-from autogpt.llm.utils import check_model
-from autogpt.logs import logger
-from autogpt.memory.vector import get_supported_memory_backends
-
-if TYPE_CHECKING:
- from autogpt.config import Config
-
-
-def create_config(
- config: Config,
- continuous: bool,
- continuous_limit: int,
- ai_settings_file: str,
- prompt_settings_file: str,
- skip_reprompt: bool,
- speak: bool,
- debug: bool,
- gpt3only: bool,
- gpt4only: bool,
- memory_type: str,
- browser_name: str,
- allow_downloads: bool,
- skip_news: bool,
-) -> None:
- """Updates the config object with the given arguments.
-
- Args:
- continuous (bool): Whether to run in continuous mode
- continuous_limit (int): The number of times to run in continuous mode
- ai_settings_file (str): The path to the ai_settings.yaml file
- prompt_settings_file (str): The path to the prompt_settings.yaml file
- skip_reprompt (bool): Whether to skip the re-prompting messages at the beginning of the script
- speak (bool): Whether to enable speak mode
- debug (bool): Whether to enable debug mode
- gpt3only (bool): Whether to enable GPT3.5 only mode
- gpt4only (bool): Whether to enable GPT4 only mode
- memory_type (str): The type of memory backend to use
- browser_name (str): The name of the browser to use when using selenium to scrape the web
- allow_downloads (bool): Whether to allow Auto-GPT to download files natively
- skips_news (bool): Whether to suppress the output of latest news on startup
- """
- config.debug_mode = False
- config.continuous_mode = False
- config.speak_mode = False
-
- if debug:
- logger.typewriter_log("Debug Mode: ", Fore.GREEN, "ENABLED")
- config.debug_mode = True
-
- if continuous:
- logger.typewriter_log("Continuous Mode: ", Fore.RED, "ENABLED")
- logger.typewriter_log(
- "WARNING: ",
- Fore.RED,
- "Continuous mode is not recommended. It is potentially dangerous and may"
- " cause your AI to run forever or carry out actions you would not usually"
- " authorise. Use at your own risk.",
- )
- config.continuous_mode = True
-
- if continuous_limit:
- logger.typewriter_log(
- "Continuous Limit: ", Fore.GREEN, f"{continuous_limit}"
- )
- config.continuous_limit = continuous_limit
-
- # Check if continuous limit is used without continuous mode
- if continuous_limit and not continuous:
- raise click.UsageError("--continuous-limit can only be used with --continuous")
-
- if speak:
- logger.typewriter_log("Speak Mode: ", Fore.GREEN, "ENABLED")
- config.speak_mode = True
-
- # Set the default LLM models
- if gpt3only:
- logger.typewriter_log("GPT3.5 Only Mode: ", Fore.GREEN, "ENABLED")
- # --gpt3only should always use gpt-3.5-turbo, despite user's FAST_LLM config
- config.fast_llm = GPT_3_MODEL
- config.smart_llm = GPT_3_MODEL
- elif (
- gpt4only
- and check_model(GPT_4_MODEL, model_type="smart_llm", config=config)
- == GPT_4_MODEL
- ):
- logger.typewriter_log("GPT4 Only Mode: ", Fore.GREEN, "ENABLED")
- # --gpt4only should always use gpt-4, despite user's SMART_LLM config
- config.fast_llm = GPT_4_MODEL
- config.smart_llm = GPT_4_MODEL
- else:
- config.fast_llm = check_model(config.fast_llm, "fast_llm", config=config)
- config.smart_llm = check_model(config.smart_llm, "smart_llm", config=config)
-
- if memory_type:
- supported_memory = get_supported_memory_backends()
- chosen = memory_type
- if chosen not in supported_memory:
- logger.typewriter_log(
- "ONLY THE FOLLOWING MEMORY BACKENDS ARE SUPPORTED: ",
- Fore.RED,
- f"{supported_memory}",
- )
- logger.typewriter_log("Defaulting to: ", Fore.YELLOW, config.memory_backend)
- else:
- config.memory_backend = chosen
-
- if skip_reprompt:
- logger.typewriter_log("Skip Re-prompt: ", Fore.GREEN, "ENABLED")
- config.skip_reprompt = True
-
- if ai_settings_file:
- file = ai_settings_file
-
- # Validate file
- (validated, message) = utils.validate_yaml_file(file)
- if not validated:
- logger.typewriter_log("FAILED FILE VALIDATION", Fore.RED, message)
- logger.double_check()
- exit(1)
-
- logger.typewriter_log("Using AI Settings File:", Fore.GREEN, file)
- config.ai_settings_file = file
- config.skip_reprompt = True
-
- if prompt_settings_file:
- file = prompt_settings_file
-
- # Validate file
- (validated, message) = utils.validate_yaml_file(file)
- if not validated:
- logger.typewriter_log("FAILED FILE VALIDATION", Fore.RED, message)
- logger.double_check()
- exit(1)
-
- logger.typewriter_log("Using Prompt Settings File:", Fore.GREEN, file)
- config.prompt_settings_file = file
-
- if browser_name:
- config.selenium_web_browser = browser_name
-
- if allow_downloads:
- logger.typewriter_log("Native Downloading:", Fore.GREEN, "ENABLED")
- logger.typewriter_log(
- "WARNING: ",
- Fore.YELLOW,
- f"{Back.LIGHTYELLOW_EX}Auto-GPT will now be able to download and save files to your machine.{Back.RESET} "
- + "It is recommended that you monitor any files it downloads carefully.",
- )
- logger.typewriter_log(
- "WARNING: ",
- Fore.YELLOW,
- f"{Back.RED + Style.BRIGHT}ALWAYS REMEMBER TO NEVER OPEN FILES YOU AREN'T SURE OF!{Style.RESET_ALL}",
- )
- config.allow_downloads = True
-
- if skip_news:
- config.skip_news = True