| | """Main script for the autogpt package.""" |
| | import click |
| |
|
| |
|
| | @click.group(invoke_without_command=True) |
| | @click.option("-c", "--continuous", is_flag=True, help="Enable Continuous Mode") |
| | @click.option( |
| | "--skip-reprompt", |
| | "-y", |
| | is_flag=True, |
| | help="Skips the re-prompting messages at the beginning of the script", |
| | ) |
| | @click.option( |
| | "--ai-settings", |
| | "-C", |
| | help="Specifies which ai_settings.yaml file to use, will also automatically skip the re-prompt.", |
| | ) |
| | @click.option( |
| | "-l", |
| | "--continuous-limit", |
| | type=int, |
| | help="Defines the number of times to run in continuous mode", |
| | ) |
| | @click.option("--speak", is_flag=True, help="Enable Speak Mode") |
| | @click.option("--debug", is_flag=True, help="Enable Debug Mode") |
| | @click.option("--gpt3only", is_flag=True, help="Enable GPT3.5 Only Mode") |
| | @click.option("--gpt4only", is_flag=True, help="Enable GPT4 Only Mode") |
| | @click.option( |
| | "--use-memory", |
| | "-m", |
| | "memory_type", |
| | type=str, |
| | help="Defines which Memory backend to use", |
| | ) |
| | @click.option( |
| | "-b", |
| | "--browser-name", |
| | help="Specifies which web-browser to use when using selenium to scrape the web.", |
| | ) |
| | @click.option( |
| | "--allow-downloads", |
| | is_flag=True, |
| | help="Dangerous: Allows Auto-GPT to download files natively.", |
| | ) |
| | @click.option( |
| | "--skip-news", |
| | is_flag=True, |
| | help="Specifies whether to suppress the output of latest news on startup.", |
| | ) |
| | @click.pass_context |
| | def main( |
| | ctx: click.Context, |
| | continuous: bool, |
| | continuous_limit: int, |
| | ai_settings: 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: |
| | """ |
| | Welcome to AutoGPT an experimental open-source application showcasing the capabilities of the GPT-4 pushing the boundaries of AI. |
| | |
| | Start an Auto-GPT assistant. |
| | """ |
| | |
| | import logging |
| |
|
| | from colorama import Fore |
| |
|
| | from autogpt.agent.agent import Agent |
| | from autogpt.config import Config, check_openai_api_key |
| | from autogpt.configurator import create_config |
| | from autogpt.logs import logger |
| | from autogpt.memory import get_memory |
| | from autogpt.prompt import construct_prompt |
| | from autogpt.utils import get_current_git_branch, get_latest_bulletin |
| |
|
| | if ctx.invoked_subcommand is None: |
| | cfg = Config() |
| | |
| | check_openai_api_key() |
| | create_config( |
| | continuous, |
| | continuous_limit, |
| | ai_settings, |
| | skip_reprompt, |
| | speak, |
| | debug, |
| | gpt3only, |
| | gpt4only, |
| | memory_type, |
| | browser_name, |
| | allow_downloads, |
| | skip_news, |
| | ) |
| | logger.set_level(logging.DEBUG if cfg.debug_mode else logging.INFO) |
| | ai_name = "" |
| | if not cfg.skip_news: |
| | motd = get_latest_bulletin() |
| | if motd: |
| | logger.typewriter_log("NEWS: ", Fore.GREEN, motd) |
| | git_branch = get_current_git_branch() |
| | if git_branch and git_branch != "stable": |
| | logger.typewriter_log( |
| | "WARNING: ", |
| | Fore.RED, |
| | f"You are running on `{git_branch}` branch " |
| | "- this is not a supported branch.", |
| | ) |
| | system_prompt = construct_prompt() |
| | |
| | |
| | full_message_history = [] |
| | next_action_count = 0 |
| | |
| | triggering_prompt = ( |
| | "Determine which next command to use, and respond using the" |
| | " format specified above:" |
| | ) |
| | |
| | |
| | memory = get_memory(cfg, init=True) |
| | logger.typewriter_log( |
| | "Using memory of type:", Fore.GREEN, f"{memory.__class__.__name__}" |
| | ) |
| | logger.typewriter_log("Using Browser:", Fore.GREEN, cfg.selenium_web_browser) |
| | agent = Agent( |
| | ai_name=ai_name, |
| | memory=memory, |
| | full_message_history=full_message_history, |
| | next_action_count=next_action_count, |
| | system_prompt=system_prompt, |
| | triggering_prompt=triggering_prompt, |
| | ) |
| | agent.start_interaction_loop() |
| |
|
| |
|
| | if __name__ == "__main__": |
| | main() |
| |
|